summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorCalle Dybedahl <calle@init.se>2015-04-14 10:56:50 +0200
committerCalle Dybedahl <calle@init.se>2015-04-14 10:56:50 +0200
commitae0b150752c0e025e2a5847f72758ae24ec70601 (patch)
treeba85f8080eaa21cd84cc0e7590a5477937cfbd77 /t
parent9c72cc66d1462e17d08843d67273bbc8503aa12c (diff)
Add support to explicitly extract and look at OPT records.
Diffstat (limited to 't')
-rw-r--r--t/dnssec.t13
-rw-r--r--t/optrr.t22
2 files changed, 30 insertions, 5 deletions
diff --git a/t/dnssec.t b/t/dnssec.t
index 3435f30..3832f46 100644
--- a/t/dnssec.t
+++ b/t/dnssec.t
@@ -63,11 +63,14 @@ my $nsec3 = Net::LDNS::RR->new('NR2E513KM693MBTNVHH56ENF54F886T0.com. 86400 IN N
isa_ok($nsec3, 'Net::LDNS::RR::NSEC3');
ok($nsec3->covers('xx-example.com'), 'Covers xx-example.com');
-$res = Net::LDNS->new( '194.146.106.22' );
+$res = Net::LDNS->new( '212.247.7.228' );
$res->dnssec( 1 );
-my $p1 = $res->query('www.iis.se', 'A');
-ok( $p1->needs_edns, 'Needs EDNS0');
-ok( $p1->has_edns, 'Alias is there');
-ok( ($p1->edns_size > 0), 'EDNS0 size larger than zero' );
+my $p1 = eval { $res->query('www.iis.se', 'A') };
+SKIP: {
+ skip 'Remote server not responding', 3 if not $p1;
+ ok( $p1->needs_edns, 'Needs EDNS0');
+ ok( $p1->has_edns, 'Alias is there');
+ ok( ($p1->edns_size > 0), 'EDNS0 size larger than zero' );
+}
done_testing;
diff --git a/t/optrr.t b/t/optrr.t
new file mode 100644
index 0000000..fc38dd4
--- /dev/null
+++ b/t/optrr.t
@@ -0,0 +1,22 @@
+use Test::More;
+
+use_ok('Net::LDNS');
+
+my $r = Net::LDNS->new('192.5.6.30');
+isa_ok($r, 'Net::LDNS');
+ok($r->dnssec(1), 'DO flag set.');
+
+my $p = $r->query('net', 'SOA');
+SKIP: {
+ skip "Remote server not responding." if not $p;
+ isa_ok($p, 'Net::LDNS::Packet');
+
+ my $rr = $p->opt_rr;
+ isa_ok($rr, 'Net::LDNS::RR::OPT');
+ is($rr->udp_size, 4096, 'UDP size is 4096.');
+ is($rr->extended_rcode, 0, 'Extended RCODE is zero.');
+ is($rr->edns_version, 0, 'EDNS version is 0.');
+ ok(($rr->edns_z & 0x8000), 'DO bit is set in flags.');
+}
+
+done_testing; \ No newline at end of file