dns-suite.js/parser/type.ns.js

24 lines
820 B
JavaScript
Raw Normal View History

2018-03-19 16:31:44 +00:00
// (function (exports) {
2017-01-27 02:18:46 +00:00
'use strict';
2017-02-02 03:32:01 +00:00
2017-10-09 19:48:54 +00:00
// FORMAT:
// name ttl class rr name
// foo. 15 IN NS www.example.com.
2017-01-27 02:18:46 +00:00
// Comes in variable lengths. It is the name of the primary Master for the Domain.
// For example 'ns1.example.com'
// It may be a label, pointer or any combination
2017-02-18 02:38:47 +00:00
var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS;
2017-01-27 02:18:46 +00:00
2017-02-17 23:13:57 +00:00
exports.DNS_PARSER_TYPE_NS = function (ab , packet, record) {
2017-10-09 19:48:54 +00:00
var labelInfo = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' });
if (record.trunc) {
throw new Error("RDATA type NS must be `null`-terminated, not truncated by rdata length.");
}
record.data = labelInfo.name;
return record;
2017-01-27 02:18:46 +00:00
};
2018-03-19 16:31:44 +00:00
// }('undefined' !== typeof window ? window : exports));