1 | var dns = require('../dns'),
|
2 | Packet = require('../lib/packet');
|
3 |
|
4 | exports.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 |
|
32 | exports.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 | };
|