UNPKG

dns-packet-typescript

Version:

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

63 lines 1.97 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; name.encode(data.mname, buf, offset); offset += name.encode.bytes; name.encode(data.rname, buf, offset); offset += name.encode.bytes; buf.writeUInt32BE(data.serial || 0, offset); offset += 4; buf.writeUInt32BE(data.refresh || 0, offset); offset += 4; buf.writeUInt32BE(data.retry || 0, offset); offset += 4; buf.writeUInt32BE(data.expire || 0, offset); offset += 4; buf.writeUInt32BE(data.minimum || 0, offset); offset += 4; 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.mname = name.decode(buf, offset); offset += name.decode.bytes; data.rname = name.decode(buf, offset); offset += name.decode.bytes; data.serial = buf.readUInt32BE(offset); offset += 4; data.refresh = buf.readUInt32BE(offset); offset += 4; data.retry = buf.readUInt32BE(offset); offset += 4; data.expire = buf.readUInt32BE(offset); offset += 4; data.minimum = buf.readUInt32BE(offset); offset += 4; decode.bytes = offset - oldOffset; return data; } exports.decode = decode; decode.bytes = 0; function encodingLength(data) { return 22 + name.encodingLength(data.mname) + name.encodingLength(data.rname); } exports.encodingLength = encodingLength; //# sourceMappingURL=rsoa.js.map