71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var dns = require('../dns'), | ||
|  |   Packet = require('../lib/packet'); | ||
|  | 
 | ||
|  | exports.roundTrip = function (test) { | ||
|  |   var buff, pre, post; | ||
|  | 
 | ||
|  |   pre = new Packet(); | ||
|  |   pre.header.id = 12345; | ||
|  |   pre.header.rcode = 1; | ||
|  | 
 | ||
|  |   pre.question.push(dns.Question({ | ||
|  |     name: 'www.google.com', | ||
|  |     type: dns.consts.NAME_TO_QTYPE.A, | ||
|  |   })); | ||
|  | 
 | ||
|  |   pre.answer.push(dns.A({ | ||
|  |     name: 'www.google.com', | ||
|  |     address: '127.0.0.1', | ||
|  |     ttl: 600, | ||
|  |   })); | ||
|  | 
 | ||
|  |   buff = new Buffer(1024); | ||
|  | 
 | ||
|  |   len = Packet.write(buff, pre); | ||
|  | 
 | ||
|  |   post = Packet.parse(buff.slice(0, len)); | ||
|  | 
 | ||
|  |   test.deepEqual(pre, post); | ||
|  |   test.done(); | ||
|  | }; | ||
|  | 
 | ||
|  | exports.truncate = function (test) { | ||
|  |   var buff, pre, post, i; | ||
|  | 
 | ||
|  |   pre = new Packet(); | ||
|  |   pre.header.id = 12345; | ||
|  |   pre.header.rcode = 1; | ||
|  | 
 | ||
|  |   pre.question.push(dns.Question({ | ||
|  |     name: 'really.long.name.some.domain.com', | ||
|  |     type: 'A', | ||
|  |   })); | ||
|  | 
 | ||
|  |   for (i = 0; i < 254; i ++) { | ||
|  |     pre.answer.push(dns.A({ | ||
|  |       name: i+'.'+i+'.'+i+'.really.long.name.some.domain.com', | ||
|  |       address: '127.0.0.' + i, | ||
|  |       ttl: 600, | ||
|  |     })); | ||
|  |     pre.authority.push(dns.A({ | ||
|  |       name: i+'.'+i+'.'+i+'.really.long.name.some.domain.com', | ||
|  |       address: '127.0.0.' + i, | ||
|  |       ttl: 600, | ||
|  |     })); | ||
|  |     pre.additional.push(dns.A({ | ||
|  |       name: i+'.'+i+'.'+i+'.really.long.name.some.domain.com', | ||
|  |       address: '127.0.0.' + i, | ||
|  |       ttl: 600, | ||
|  |     })); | ||
|  |   } | ||
|  | 
 | ||
|  |   buff = new Buffer(512); | ||
|  |   len = Packet.write(buff, pre); | ||
|  |   post = Packet.parse(buff.slice(0, len)); | ||
|  | 
 | ||
|  |   test.notEqual(pre.additional.length, post.additional.length, | ||
|  |     'Additional should be less because of truncated packet'); | ||
|  | 
 | ||
|  |   test.done(); | ||
|  | }; |