load parsers correctly
This commit is contained in:
		
							parent
							
								
									113187e68a
								
							
						
					
					
						commit
						55876e2df2
					
				| @ -22,12 +22,15 @@ exports.DNS_RDATA_PARSE = function (ab, packet, record) { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   try { |   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]; |       || require('./parser/type.' + record.typeName.toLowerCase())['DNS_PARSER_TYPE_' + record.typeName]; | ||||||
|   } |   } | ||||||
|   catch (e) { /*console.error(e)*/ } |   catch (e) { /*console.error(e)*/ } | ||||||
| 
 | 
 | ||||||
|   if (!parser) { |   if (!parser) { | ||||||
|  |     if (require) { | ||||||
|  |       require('./parser/type.' + record.typeName.toLowerCase()); | ||||||
|  |     } | ||||||
|     throw new Error("Parser for DNS Type " + record.typeName + " could not be loaded." |     throw new Error("Parser for DNS Type " + record.typeName + " could not be loaded." | ||||||
|       + " Did you include <script src=\"parser/type." + record.typeName.toLowerCase() + ".js\"></script> ?" |       + " Did you include <script src=\"parser/type." + record.typeName.toLowerCase() + ".js\"></script> ?" | ||||||
|       + " (or perhaps we plan to implement it and haven't yet - in which case please open an issue)" |       + " (or perhaps we plan to implement it and haven't yet - in which case please open an issue)" | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ | |||||||
| // (meaning text that will be represented as a period-separated
 | // (meaning text that will be represented as a period-separated
 | ||||||
| // domain name, i.e. www.google.com) then you will need to use
 | // domain name, i.e. www.google.com) then you will need to use
 | ||||||
| // `unpackLabels`, which has compression pointer support
 | // `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:
 | // The parser receives exactly 3 parameters as follows:
 | ||||||
| //
 | //
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| // Canonical name which may lie outside the current zone.
 | // Canonical name which may lie outside the current zone.
 | ||||||
| // Canonical simply means the expected or real name.
 | // 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) { | exports.DNS_PARSER_TYPE_CNAME = function (ab, packet, record) { | ||||||
|   record.data = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }).name; |   record.data = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }).name; | ||||||
|   return record; |   return record; | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ | |||||||
| // May be a label, pointer or any combination
 | // May be a label, pointer or any combination
 | ||||||
| 
 | 
 | ||||||
| // ab is arrayBuffer, packet is Object, Record is Object
 | // 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) { | exports.DNS_PARSER_TYPE_MX = function (ab, packet, record) { | ||||||
| 
 | 
 | ||||||
|   var rdataAb = ab.slice(record.rdstart, record.rdstart + record.rdlength); |   var rdataAb = ab.slice(record.rdstart, record.rdstart + record.rdlength); | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
| // Comes in variable lengths. It is the name of the primary Master for the Domain.
 | // Comes in variable lengths. It is the name of the primary Master for the Domain.
 | ||||||
| // For example 'ns1.example.com'
 | // For example 'ns1.example.com'
 | ||||||
| // It may be a label, pointer or any combination
 | // 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) { | exports.DNS_PARSER_TYPE_NS = function (ab , packet, record) { | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ | |||||||
| // ame ttl  class   rr     name
 | // ame ttl  class   rr     name
 | ||||||
| // 15         IN     PTR    www.example.com.
 | // 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) { | exports.DNS_PARSER_TYPE_PTR = function (ab, pack, record) { | ||||||
|     record.data = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }).name; |     record.data = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }).name; | ||||||
|     return record; |     return record; | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
| 
 | 
 | ||||||
| // SRV identifies the host(s) that will support a particular service. It
 | // SRV identifies the host(s) that will support a particular service. It
 | ||||||
| // is a general purpose RR to discover any service.
 | // 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) { | exports.DNS_PARSER_TYPE_SRV = function (ab, packet, record) { | ||||||
|  | |||||||
| @ -5,9 +5,9 @@ | |||||||
| // with a host or other name, such as a human readable information about a server
 | // with a host or other name, such as a human readable information about a server
 | ||||||
| // network, data center, and other accounting information.
 | // 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: '' }); |   var labels = unpackLabels(new Uint8Array(ab), record.rdstart, { byteLength: 0, cpcount: 0, labels: [], name: '' }); | ||||||
|   record.data = [ labels.name ]; |   record.data = [ labels.name ]; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user