1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
# $Id: 01-resolver.t 479 2005-07-31 14:19:41Z olaf $ -*-perl-*-
use Test::More tests => 44;
use strict;
use File::Spec;
BEGIN { use_ok('Net::DNS'); }
my $res = Net::DNS::Resolver->new();
ok($res, 'new() returned something');
isa_ok($res, 'Net::DNS::Resolver', 'new() returns an object of the correct class.');
ok(scalar $res->nameservers, 'nameservers() works');
my $searchlist = [qw(t.net-dns.org t2.net-dns.org)];
is_deeply([$res->searchlist(@$searchlist)], $searchlist, 'setting searchlist returns correctly.');
is_deeply([$res->searchlist], $searchlist, 'setting searchlist stickts.');
my %good_input = (
port => 54,
srcaddr => '10.1.0.1',
srcport => 53,
domain => 'net-dns.org',
retrans => 6,
retry => 5,
usevc => 1,
stayopen => 1,
igntc => 1,
recurse => 0,
defnames => 0,
dnsrch => 0,
debug => 1,
tcp_timeout => 60,
udp_timeout => 60,
persistent_tcp => 1,
dnssec => 1,
force_v4 => 1,
);
#diag "\n\nIf you do not have Net::DNS::SEC installed you will see a warning.\n";
#diag "It is safe to ignore this\n";
while (my ($param, $value) = each %good_input) {
open (TMPFH,">/dev/null") or die "can't open /dev/null";
local *STDERR=*TMPFH;
is_deeply($res->$param($value), $value, "setting $param returns correctly");
is_deeply($res->$param(), $value, "setting $param sticks");
close (TMPFH);
}
my %bad_input = (
tsig_rr => 'set',
errorstring => 'set',
answerfrom => 'set',
answersize => 'set',
querytime => 'set',
axfr_sel => 'set',
axfr_rr => 'set',
axfr_soa_count => 'set',
udppacketsize => 'set',
cdflag => 'set',
);
# Some people try to run these on private address space."
use Net::IP;
use IO::Socket::INET;
my $sock = IO::Socket::INET->new(PeerAddr => '193.0.14.129', # k.root-servers.net.
PeerPort => '25',
Proto => 'udp');
my $ip=Net::IP->new(inet_ntoa($sock->sockaddr));
SKIP: {
skip 'Online tests disabled.', 2
unless -e 't/online.enabled';
skip 'Tests may not run succesful from private IP('.$ip->ip() .')', 2
if ($ip->iptype() ne "PUBLIC");
my $res = Net::DNS::Resolver->new;
$res->nameservers('a.t.net-dns.org');
my $ip = ($res->nameservers)[0];
is($ip, '10.0.1.128', 'Nameservers() looks up IP.');
$res->nameservers('cname.t.net-dns.org');
$ip = ($res->nameservers)[0];
is($ip, '10.0.1.128', 'Nameservers() looks up cname.');
}
|