diff --git a/index.js b/index.js index b66e442..72f9346 100644 --- a/index.js +++ b/index.js @@ -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)), diff --git a/test.js b/test.js index a5ee614..996acad 100644 --- a/test.js +++ b/test.js @@ -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() })