dns-packet-typescript
Version:
An abstract-encoding compliant module for encoding / decoding DNS packets
45 lines • 1.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.encodingLength = exports.decode = exports.encode = void 0;
function encode(data, buf, offset) {
if (offset === void 0) { offset = 0; }
if (!buf)
buf = Buffer.allocUnsafe(encodingLength(data));
if (!offset)
offset = 0;
if (typeof data === 'string')
data = Buffer.from(data);
if (!data)
data = Buffer.allocUnsafe(0);
var oldOffset = offset;
offset += 2;
var len = data.length;
data.copy(buf, offset, 0, len);
offset += len;
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 len = buf.readUInt16BE(offset);
offset += 2;
var data = buf.slice(offset, offset + len);
offset += len;
decode.bytes = offset - oldOffset;
return data;
}
exports.decode = decode;
decode.bytes = 0;
function encodingLength(data) {
if (!data)
return 2;
return (Buffer.isBuffer(data) ? data.length : Buffer.byteLength(data)) + 2;
}
exports.encodingLength = encodingLength;
//# sourceMappingURL=rnull.js.map
;