41 |
|
|
42 |
$query->print if $debug; |
$query->print if $debug; |
43 |
|
|
44 |
my $local = $1 if $qname =~ m{^(.+)\.\Q$server::domain_name\E$}; |
my $local = $1 if $qname =~ m{^(.+)\.\Q$server::domain\E$}; |
45 |
$local = $qname if $qname !~ m{\.}; |
$local = $qname if $qname !~ m{\.}; |
46 |
|
|
47 |
my $ttl = 3600; |
my $ttl = 3600; |
61 |
|
|
62 |
} elsif ( $qtype eq 'PTR' && $qname =~ m{^([0-9\.]*)\.in-addr\.arpa$} ) { |
} elsif ( $qtype eq 'PTR' && $qname =~ m{^([0-9\.]*)\.in-addr\.arpa$} ) { |
63 |
if ( my $rdata = $ptr_cache->{$1} ) { |
if ( my $rdata = $ptr_cache->{$1} ) { |
64 |
$rdata .= '.' . $server::domain_name; |
$rdata .= '.' . $server::domain; |
65 |
push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata"); |
push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata"); |
66 |
$audit->{source} = 'PTR'; |
$audit->{source} = 'PTR'; |
67 |
} else { |
} else { |
107 |
Verbose => $debug, |
Verbose => $debug, |
108 |
) || die "couldn't create nameserver object\n"; |
) || die "couldn't create nameserver object\n"; |
109 |
|
|
110 |
CouchDB::audit('start', { port => 53, domain_name => $server::domain_name }); |
CouchDB::audit('start', { port => 53, domain => $server::domain }); |
111 |
warn "DNS $server::domain_name"; |
warn "DNS $server::domain"; |
112 |
|
|
113 |
$ns->main_loop; |
$ns->main_loop; |
114 |
} |
} |