dns-packet-typescript
Version:
An abstract-encoding compliant module for encoding / decoding DNS packets
46 lines • 1.41 kB
JavaScript
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
;