summaryrefslogtreecommitdiffstats
path: root/testing/xpcshell/dns-packet/rcodes.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testing/xpcshell/dns-packet/rcodes.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/xpcshell/dns-packet/rcodes.js b/testing/xpcshell/dns-packet/rcodes.js
new file mode 100644
index 0000000000..0500887c2a
--- /dev/null
+++ b/testing/xpcshell/dns-packet/rcodes.js
@@ -0,0 +1,50 @@
+'use strict'
+
+/*
+ * Traditional DNS header RCODEs (4-bits) defined by IANA in
+ * https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml
+ */
+
+exports.toString = function (rcode) {
+ switch (rcode) {
+ case 0: return 'NOERROR'
+ case 1: return 'FORMERR'
+ case 2: return 'SERVFAIL'
+ case 3: return 'NXDOMAIN'
+ case 4: return 'NOTIMP'
+ case 5: return 'REFUSED'
+ case 6: return 'YXDOMAIN'
+ case 7: return 'YXRRSET'
+ case 8: return 'NXRRSET'
+ case 9: return 'NOTAUTH'
+ case 10: return 'NOTZONE'
+ case 11: return 'RCODE_11'
+ case 12: return 'RCODE_12'
+ case 13: return 'RCODE_13'
+ case 14: return 'RCODE_14'
+ case 15: return 'RCODE_15'
+ }
+ return 'RCODE_' + rcode
+}
+
+exports.toRcode = function (code) {
+ switch (code.toUpperCase()) {
+ case 'NOERROR': return 0
+ case 'FORMERR': return 1
+ case 'SERVFAIL': return 2
+ case 'NXDOMAIN': return 3
+ case 'NOTIMP': return 4
+ case 'REFUSED': return 5
+ case 'YXDOMAIN': return 6
+ case 'YXRRSET': return 7
+ case 'NXRRSET': return 8
+ case 'NOTAUTH': return 9
+ case 'NOTZONE': return 10
+ case 'RCODE_11': return 11
+ case 'RCODE_12': return 12
+ case 'RCODE_13': return 13
+ case 'RCODE_14': return 14
+ case 'RCODE_15': return 15
+ }
+ return 0
+}