UNPKG

dns-packet-typescript

Version:

An abstract-encoding compliant module for encoding / decoding DNS packets

46 lines 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.encodingLength = exports.decode = exports.encode = void 0; var name = require("./name"); function encode(data, buf, offset) { if (offset === void 0) { offset = 0; } if (!buf) { buf = Buffer.allocUnsafe(encodingLength(data)); } if (!offset) { offset = 0; } var oldOffset = offset; offset += 2; // Leave space for length name.encode(data.mbox || '.', buf, offset); offset += name.encode.bytes; name.encode(data.txt || '.', buf, offset); offset += name.encode.bytes; encode.bytes = offset - oldOffset; buf.writeUInt16BE(encode.bytes - 2, oldOffset); return buf; } exports.encode = encode; encode.bytes = 0; function decode(buf, offset) { if (offset === void 0) { offset = 0; } if (!offset) { offset = 0; } var oldOffset = offset; var data = {}; offset += 2; data.mbox = name.decode(buf, offset) || '.'; offset += name.decode.bytes; data.txt = name.decode(buf, offset) || '.'; offset += name.decode.bytes; decode.bytes = offset - oldOffset; return data; } exports.decode = decode; decode.bytes = 0; function encodingLength(data) { return 2 + name.encodingLength(data.mbox || '.') + name.encodingLength(data.txt || '.'); } exports.encodingLength = encodingLength; //# sourceMappingURL=rrp.js.map