summaryrefslogtreecommitdiffstats
path: root/testing/xpcshell/dns-packet/opcodes.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testing/xpcshell/dns-packet/opcodes.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/xpcshell/dns-packet/opcodes.js b/testing/xpcshell/dns-packet/opcodes.js
new file mode 100644
index 0000000000..32b0a1b4de
--- /dev/null
+++ b/testing/xpcshell/dns-packet/opcodes.js
@@ -0,0 +1,50 @@
+'use strict'
+
+/*
+ * Traditional DNS header OPCODEs (4-bits) defined by IANA in
+ * https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-5
+ */
+
+exports.toString = function (opcode) {
+ switch (opcode) {
+ case 0: return 'QUERY'
+ case 1: return 'IQUERY'
+ case 2: return 'STATUS'
+ case 3: return 'OPCODE_3'
+ case 4: return 'NOTIFY'
+ case 5: return 'UPDATE'
+ case 6: return 'OPCODE_6'
+ case 7: return 'OPCODE_7'
+ case 8: return 'OPCODE_8'
+ case 9: return 'OPCODE_9'
+ case 10: return 'OPCODE_10'
+ case 11: return 'OPCODE_11'
+ case 12: return 'OPCODE_12'
+ case 13: return 'OPCODE_13'
+ case 14: return 'OPCODE_14'
+ case 15: return 'OPCODE_15'
+ }
+ return 'OPCODE_' + opcode
+}
+
+exports.toOpcode = function (code) {
+ switch (code.toUpperCase()) {
+ case 'QUERY': return 0
+ case 'IQUERY': return 1
+ case 'STATUS': return 2
+ case 'OPCODE_3': return 3
+ case 'NOTIFY': return 4
+ case 'UPDATE': return 5
+ case 'OPCODE_6': return 6
+ case 'OPCODE_7': return 7
+ case 'OPCODE_8': return 8
+ case 'OPCODE_9': return 9
+ case 'OPCODE_10': return 10
+ case 'OPCODE_11': return 11
+ case 'OPCODE_12': return 12
+ case 'OPCODE_13': return 13
+ case 'OPCODE_14': return 14
+ case 'OPCODE_15': return 15
+ }
+ return 0
+}