UNPKG

dns-packet-typescript

Version:

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

46 lines 1.31 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; buf.writeUInt16BE(data.preference || 0, offset); offset += 2; name.encode(data.exchange, buf, offset); offset += name.encode.bytes; buf.writeUInt16BE(offset - oldOffset - 2, oldOffset); encode.bytes = offset - 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.preference = buf.readUInt16BE(offset); offset += 2; data.exchange = name.decode(buf, offset); offset += name.decode.bytes; decode.bytes = offset - oldOffset; return data; } exports.decode = decode; decode.bytes = 0; function encodingLength(data) { return 4 + name.encodingLength(data.exchange); } exports.encodingLength = encodingLength; //# sourceMappingURL=rmx.js.map