| 
									
										
										
										
											2017-01-21 03:18:10 -07:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // EXAMPLE:
 | 
					
						
							| 
									
										
										
										
											2017-01-21 14:44:37 -07:00
										 |  |  | // node bin/dns-parse.js samples/a-0.mdns.bin
 | 
					
						
							| 
									
										
										
										
											2017-01-21 03:18:10 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | // pass a terminal arg
 | 
					
						
							|  |  |  | var filename = process.argv[2]; | 
					
						
							|  |  |  | if (!filename) { | 
					
						
							| 
									
										
										
										
											2017-01-21 14:44:37 -07:00
										 |  |  |   console.error("Usage: node bin/dns-parse.js <path/to/sample.bin>"); | 
					
						
							|  |  |  |   console.error("Example: node bin/dns-parse.js ./samples/services-0.mdns.bin"); | 
					
						
							| 
									
										
										
										
											2017-01-21 03:18:10 -07:00
										 |  |  |   process.exit(1); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var PromiseA = require('bluebird'); | 
					
						
							|  |  |  | var fs = PromiseA.promisifyAll(require('fs')); | 
					
						
							| 
									
										
										
										
											2017-01-30 16:30:08 -07:00
										 |  |  | var dnsjs = require('../').DNSPacket; | 
					
						
							| 
									
										
										
										
											2017-01-21 03:18:10 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | fs.readFileAsync(filename, null).then(function (nb) { | 
					
						
							| 
									
										
										
										
											2017-01-21 03:32:50 -07:00
										 |  |  |   //
 | 
					
						
							|  |  |  |   // current reference impl
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   //console.log(require('native-dns-packet').parse(nb));
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // other reference impl
 | 
					
						
							|  |  |  |   //
 | 
					
						
							| 
									
										
										
										
											2017-01-21 14:33:51 -07:00
										 |  |  |   //console.log(require('dns-js').DNSPacket.parse(nb));
 | 
					
						
							| 
									
										
										
										
											2017-01-21 03:32:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-21 03:18:10 -07:00
										 |  |  |   // nb is a Uint8Array (ArrayBufferView) for nb.buffer
 | 
					
						
							|  |  |  |   // nb.buffer is the actual ArrayBuffer
 | 
					
						
							| 
									
										
										
										
											2017-01-30 16:30:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   var packet = dnsjs.parse(nb.buffer); | 
					
						
							| 
									
										
										
										
											2017-01-21 14:33:51 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-21 10:45:45 -07:00
										 |  |  |   console.log('[packet]', nb.byteLength, 'bytes:'); | 
					
						
							| 
									
										
										
										
											2017-01-21 15:11:39 -07:00
										 |  |  |   console.log(JSON.stringify(packet, null, 2)); | 
					
						
							| 
									
										
										
										
											2017-01-21 03:18:10 -07:00
										 |  |  | }); |