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