UNPKG

1.54 kBJavaScriptView Raw
1var dns = require('../dns'),
2 Packet = require('../lib/packet');
3
4exports.roundTrip = function (test) {
5 var buff, pre, post;
6
7 pre = new Packet();
8 pre.header.id = 12345;
9 pre.header.rcode = 1;
10
11 pre.question.push(dns.Question({
12 name: 'www.google.com',
13 type: dns.consts.NAME_TO_QTYPE.A,
14 }));
15
16 pre.answer.push(dns.A({
17 name: 'www.google.com',
18 address: '127.0.0.1',
19 ttl: 600,
20 }));
21
22 buff = new Buffer(1024);
23
24 len = Packet.write(buff, pre);
25
26 post = Packet.parse(buff.slice(0, len));
27
28 test.deepEqual(pre, post);
29 test.done();
30};
31
32exports.truncate = function (test) {
33 var buff, pre, post, i;
34
35 pre = new Packet();
36 pre.header.id = 12345;
37 pre.header.rcode = 1;
38
39 pre.question.push(dns.Question({
40 name: 'really.long.name.some.domain.com',
41 type: 'A',
42 }));
43
44 for (i = 0; i < 254; i ++) {
45 pre.answer.push(dns.A({
46 name: i+'.'+i+'.'+i+'.really.long.name.some.domain.com',
47 address: '127.0.0.' + i,
48 ttl: 600,
49 }));
50 pre.authority.push(dns.A({
51 name: i+'.'+i+'.'+i+'.really.long.name.some.domain.com',
52 address: '127.0.0.' + i,
53 ttl: 600,
54 }));
55 pre.additional.push(dns.A({
56 name: i+'.'+i+'.'+i+'.really.long.name.some.domain.com',
57 address: '127.0.0.' + i,
58 ttl: 600,
59 }));
60 }
61
62 buff = new Buffer(512);
63 len = Packet.write(buff, pre);
64 post = Packet.parse(buff.slice(0, len));
65
66 test.notEqual(pre.additional.length, post.additional.length,
67 'Additional should be less because of truncated packet');
68
69 test.done();
70};