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();
 | |
| };
 |