diff --git a/dns.rdata.parse.js b/dns.rdata.parse.js index 4ebe0ee..47b86ba 100644 --- a/dns.rdata.parse.js +++ b/dns.rdata.parse.js @@ -22,12 +22,15 @@ exports.DNS_RDATA_PARSE = function (ab, packet, record) { } try { - parser = exports['DNS_TYPE_' + record.typeName] + parser = exports['DNS_PARSER_TYPE_' + record.typeName] || require('./parser/type.' + record.typeName.toLowerCase())['DNS_PARSER_TYPE_' + record.typeName]; } catch (e) { /*console.error(e)*/ } if (!parser) { + if (require) { + require('./parser/type.' + record.typeName.toLowerCase()); + } throw new Error("Parser for DNS Type " + record.typeName + " could not be loaded." + " Did you include ?" + " (or perhaps we plan to implement it and haven't yet - in which case please open an issue)" diff --git a/parser/type.TEMPLATE.js b/parser/type.TEMPLATE.js index c4bf6a0..8b9b3a7 100644 --- a/parser/type.TEMPLATE.js +++ b/parser/type.TEMPLATE.js @@ -9,7 +9,7 @@ // (meaning text that will be represented as a period-separated // domain name, i.e. www.google.com) then you will need to use // `unpackLabels`, which has compression pointer support -var unpackLabels = exports.DNS_UNPACK_LABELS || require('./dns.unpack-labels.js').DNS_UNPACK_LABELS; +var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS; // The parser receives exactly 3 parameters as follows: // diff --git a/parser/type.cname.js b/parser/type.cname.js index b2b35ab..e99700d 100644 --- a/parser/type.cname.js +++ b/parser/type.cname.js @@ -5,7 +5,7 @@ // Canonical name which may lie outside the current zone. // Canonical simply means the expected or real name. -var unpackLabels = exports.DNS_UNPACK_LABELS || require('./dns.unpack-labels.js').DNS_UNPACK_LABELS; +var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS; exports.DNS_PARSER_TYPE_CNAME = function (ab, packet, record) { record.data = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }).name; return record; diff --git a/parser/type.mx.js b/parser/type.mx.js index 140d5b5..63363b5 100644 --- a/parser/type.mx.js +++ b/parser/type.mx.js @@ -9,7 +9,7 @@ // May be a label, pointer or any combination // ab is arrayBuffer, packet is Object, Record is Object -var unpackLabels = exports.DNS_UNPACK_LABELS || require('./dns.unpack-labels.js').DNS_UNPACK_LABELS; +var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS; exports.DNS_PARSER_TYPE_MX = function (ab, packet, record) { var rdataAb = ab.slice(record.rdstart, record.rdstart + record.rdlength); diff --git a/parser/type.ns.js b/parser/type.ns.js index 930b9cf..e03d102 100644 --- a/parser/type.ns.js +++ b/parser/type.ns.js @@ -4,7 +4,7 @@ // 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 -var unpackLabels = exports.DNS_UNPACK_LABELS || require('./dns.unpack-labels.js').DNS_UNPACK_LABELS; +var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS; exports.DNS_PARSER_TYPE_NS = function (ab , packet, record) { diff --git a/parser/type.ptr.js b/parser/type.ptr.js index 1ca5db2..1e6e068 100644 --- a/parser/type.ptr.js +++ b/parser/type.ptr.js @@ -9,7 +9,7 @@ // ame ttl class rr name // 15 IN PTR www.example.com. -var unpackLabels = exports.DNS_UNPACK_LABELS || require('./dns.unpack-labels.js').DNS_UNPACK_LABELS; +var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS; exports.DNS_PARSER_TYPE_PTR = function (ab, pack, record) { record.data = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }).name; return record; diff --git a/parser/type.srv.js b/parser/type.srv.js index a4b6403..3628d82 100644 --- a/parser/type.srv.js +++ b/parser/type.srv.js @@ -4,7 +4,7 @@ // SRV identifies the host(s) that will support a particular service. It // is a general purpose RR to discover any service. -var unpackLabels = exports.DNS_UNPACK_LABELS || require('./dns.unpack-labels.js').DNS_UNPACK_LABELS; +var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS; exports.DNS_PARSER_TYPE_SRV = function (ab, packet, record) { diff --git a/parser/type.txt.js b/parser/type.txt.js index b8a0e9d..7cb9ea7 100644 --- a/parser/type.txt.js +++ b/parser/type.txt.js @@ -5,9 +5,9 @@ // with a host or other name, such as a human readable information about a server // network, data center, and other accounting information. -var unpackLabels = exports.DNS_UNPACK_LABELS || require('./dns.unpack-labels.js').DNS_UNPACK_LABELS; +var unpackLabels = exports.DNS_UNPACK_LABELS || require('../dns.unpack-labels.js').DNS_UNPACK_LABELS; -exports.DNS_TYPE_TXT = function (ab, packet, record) { +exports.DNS_PARSER_TYPE_TXT = function (ab, packet, record) { var labels = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }); record.data = [ labels.name ];