Add Q/R flag boolean and change other flags to boolean.

This commit is contained in:
Tom Pusateri 2018-01-06 13:48:20 -05:00
parent 549d46e241
commit 2474fead8f
2 changed files with 16 additions and 14 deletions

View File

@ -127,14 +127,15 @@ header.decode = function (buf, offset) {
id: buf.readUInt16BE(offset),
type: flags & RESPONSE_FLAG ? 'response' : 'query',
flags: flags & 32767,
flag_qr: ((flags >> 15) & 0x1) === 1,
opcode: (flags >> 11) & 0xf,
flag_auth: (flags >> 10) & 0x1,
flag_trunc: (flags >> 9) & 0x1,
flag_rd: (flags >> 8) & 0x1,
flag_ra: (flags >> 7) & 0x1,
flag_z: (flags >> 6) & 0x1,
flag_ad: (flags >> 5) & 0x1,
flag_cd: (flags >> 4) & 0x1,
flag_auth: ((flags >> 10) & 0x1) === 1,
flag_trunc: ((flags >> 9) & 0x1) === 1,
flag_rd: ((flags >> 8) & 0x1) === 1,
flag_ra: ((flags >> 7) & 0x1) === 1,
flag_z: ((flags >> 6) & 0x1) === 1,
flag_ad: ((flags >> 5) & 0x1) === 1,
flag_cd: ((flags >> 4) & 0x1) === 1,
rcode: rcodes.toString(flags & 0xf),
questions: new Array(buf.readUInt16BE(offset + 4)),
answers: new Array(buf.readUInt16BE(offset + 6)),

15
test.js
View File

@ -194,13 +194,14 @@ tape('rcode', function (t) {
var val = packet.decode(buf)
t.ok(val.type === 'response', 'decode type')
t.ok(val.opcode === 0, 'decode opcode')
t.ok(val.flag_auth === 1, 'decode flag_auth')
t.ok(val.flag_trunc === 0, 'decode flag_trunc')
t.ok(val.flag_rd === 0, 'decode flag_rd')
t.ok(val.flag_ra === 1, 'decode flag_ra')
t.ok(val.flag_z === 0, 'decode flag_z')
t.ok(val.flag_ad === 0, 'decode flag_ad')
t.ok(val.flag_cd === 0, 'decode flag_cd')
t.ok(val.flag_qr === true, 'decode flag_auth')
t.ok(val.flag_auth === true, 'decode flag_auth')
t.ok(val.flag_trunc === false, 'decode flag_trunc')
t.ok(val.flag_rd === false, 'decode flag_rd')
t.ok(val.flag_ra === true, 'decode flag_ra')
t.ok(val.flag_z === false, 'decode flag_z')
t.ok(val.flag_ad === false, 'decode flag_ad')
t.ok(val.flag_cd === false, 'decode flag_cd')
t.ok(val.rcode === 'NOERROR', 'decode rcode')
t.end()
})