forked from coolaj86/digd.js
		
	Merge branch 'v1' of git.daplie.com:Daplie/digd.js into v1
This commit is contained in:
		
						commit
						f67788f9db
					
				
							
								
								
									
										5
									
								
								BUGS.txt
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								BUGS.txt
									
									
									
									
									
								
							| @ -1 +1,6 @@ | |||||||
| dig @localhost -p 65053 ANY aaaa.example.com | dig @localhost -p 65053 ANY aaaa.example.com | ||||||
|  | 
 | ||||||
|  | # Using the wrong type (A instead of AAAA) results in an erroneous packet | ||||||
|  | 
 | ||||||
|  | { "zone": "example.com", "name": "aaaa.example.com", "tld": "com", "sld": "example", "sub": "aaaa" | ||||||
|  | , "type": "A", "address": "::1" } | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								TESTS.md
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								TESTS.md
									
									
									
									
									
								
							| @ -126,4 +126,13 @@ $digcmd @$ns -p $port A doesntexist.a.example.com | |||||||
| #   should return NS records in ANSWER section, nothing else | #   should return NS records in ANSWER section, nothing else | ||||||
| $digcmd @$ns -p $port NS a.example.com | $digcmd @$ns -p $port NS a.example.com | ||||||
| 
 | 
 | ||||||
|  | # Test: | ||||||
|  | #   wildcard record should match after static records | ||||||
|  | $digcmd @$ns -p $port ANY wild.example.com                      # no record | ||||||
|  | $digcmd @$ns -p $port ANY exists.wild.example.com               # static record, before wildcard | ||||||
|  | $digcmd @$ns -p $port ANY foo.exists.wild.example.com           # no record | ||||||
|  | $digcmd @$ns -p $port ANY doesntexist.wild.example.com          # single-level wildcard | ||||||
|  | $digcmd @$ns -p $port ANY alsedoesntexist.wild.example.com      # single-level wildcard | ||||||
|  | $digcmd @$ns -p $port ANY foo.doesntexist.wild.example.com      # no second-level wildcard | ||||||
|  | 
 | ||||||
| ``` | ``` | ||||||
|  | |||||||
| @ -29,13 +29,47 @@ function getRecords(db, qname, cb) { | |||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   function checkCount() { |   function checkCount() { | ||||||
|  |     var ready; | ||||||
|  | 
 | ||||||
|     count -= 1; |     count -= 1; | ||||||
|     if (count <= 0) { |     ready = count <= 0; | ||||||
|       myRecords = myRecords.filter(function (r) { | 
 | ||||||
|         return !delMe[r.id]; |     if (!ready) { | ||||||
|       }); |       return; | ||||||
|       cb(null, myRecords); |  | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     myRecords = myRecords.filter(function (r) { | ||||||
|  |       return !delMe[r.id]; | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     // There are a number of ways to interpret the wildcard rules
 | ||||||
|  |     var hasWild = false; | ||||||
|  |     var hasMatch = false; | ||||||
|  |     myRecords.some(function (r) { | ||||||
|  |       if (qname === r.name) { | ||||||
|  |         hasMatch = true; | ||||||
|  |         return true; | ||||||
|  |       } | ||||||
|  |       if ('*' === r.name[0]) { | ||||||
|  |         hasWild = true; | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     if (hasMatch) { | ||||||
|  |       myRecords = myRecords.filter(function (r) { | ||||||
|  |         if ('*' !== r.name[0]) { return true; } | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|  |     /* | ||||||
|  |     // no need to filter out records if wildcard is used
 | ||||||
|  |     else { | ||||||
|  |       records = records.filter(function (r) { | ||||||
|  |         if ('*' === r.name[0]) { return true; } | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|  |     */ | ||||||
|  | 
 | ||||||
|  |     cb(null, myRecords); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function getRecord(r) { |   function getRecord(r) { | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "digd.js", |   "name": "digd.js", | ||||||
|   "version": "1.1.0", |   "version": "1.1.4", | ||||||
|   "description": "A lightweight DNS / mDNS daemon (server) for creating and capturing DNS and mDNS query and response packets to disk as binary and/or JSON. Options are similar to the Unix dig command.", |   "description": "A lightweight DNS / mDNS daemon (server) for creating and capturing DNS and mDNS query and response packets to disk as binary and/or JSON. Options are similar to the Unix dig command.", | ||||||
|   "main": "bin/digd.js", |   "main": "bin/digd.js", | ||||||
|   "bin": { |   "bin": { | ||||||
| @ -46,7 +46,7 @@ | |||||||
|   "author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com)", |   "author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com)", | ||||||
|   "license": "MIT OR Apache-2.0", |   "license": "MIT OR Apache-2.0", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "dig.js": "^1.2.1", |     "dig.js": "git+https://git.daplie.com/Daplie/dig.js#v1.3", | ||||||
|     "hexdump.js": "^1.0.4" |     "hexdump.js": "git+https://git.daplie.com/Daplie/hexdump.js#v1.0.4" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -29,7 +29,7 @@ module.exports = { | |||||||
|   , { "zone": "example.com", "name": "a.example.com", "tld": "com", "sld": "example", "sub": "a" |   , { "zone": "example.com", "name": "a.example.com", "tld": "com", "sld": "example", "sub": "a" | ||||||
|     , "type": "A", "address": "4.3.2.1" } |     , "type": "A", "address": "4.3.2.1" } | ||||||
|   , { "zone": "example.com", "name": "aaaa.example.com", "tld": "com", "sld": "example", "sub": "aaaa" |   , { "zone": "example.com", "name": "aaaa.example.com", "tld": "com", "sld": "example", "sub": "aaaa" | ||||||
|     , "type": "A", "address": "::1" } |     , "type": "AAAA", "address": "::1" } | ||||||
|   , { "zone": "example.com", "name": "aname.example.com", "tld": "com", "sld": "example", "sub": "aname" |   , { "zone": "example.com", "name": "aname.example.com", "tld": "com", "sld": "example", "sub": "aname" | ||||||
|     , "type": "A", "aname": "amazon.com" } |     , "type": "A", "aname": "amazon.com" } | ||||||
|   , { "zone": "example.com", "name": "devname.example.com", "tld": "com", "sld": "example", "sub": "devname" |   , { "zone": "example.com", "name": "devname.example.com", "tld": "com", "sld": "example", "sub": "devname" | ||||||
| @ -57,6 +57,14 @@ module.exports = { | |||||||
|   , { "zone": "example.com", "name": "email.example.com", "tld": "com", "sld": "example", "sub": "email" |   , { "zone": "example.com", "name": "email.example.com", "tld": "com", "sld": "example", "sub": "email" | ||||||
|     , "type": "CNAME", "data": "mailgun.org" } |     , "type": "CNAME", "data": "mailgun.org" } | ||||||
| 
 | 
 | ||||||
|  |     // a wildcard domain
 | ||||||
|  |     // wild.example.com does NOT match
 | ||||||
|  |     // exists.wild.example.com DOES match, statically
 | ||||||
|  |     // doesntexist.wild.example.com DOES match, wildly
 | ||||||
|  |   , { "zone": "example.com", "name": "*.wild.example.com", "tld": "com", "sld": "example", "sub": "*.wild" | ||||||
|  |     , "type": "A", "address": "12.34.56.78" } | ||||||
|  |   , { "zone": "example.com", "name": "exists.wild.example.com", "tld": "com", "sld": "example", "sub": "exists.wild" | ||||||
|  |     , "type": "A", "address": "123.0.0.45" } | ||||||
| 
 | 
 | ||||||
|     // Out-delegated Domains
 |     // Out-delegated Domains
 | ||||||
|   , { "zone": "example.com", "type": "NS", "name": "out-delegated.example.com" |   , { "zone": "example.com", "type": "NS", "name": "out-delegated.example.com" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user