--- lib/PXElator/dnsd.pm 2009/08/03 19:59:08 128 +++ lib/PXElator/dnsd.pm 2009/08/05 13:25:19 148 @@ -25,12 +25,15 @@ print "Received query from $peerhost to ". $conn->{"sockhost"}. "\n"; $query->print; - if ( $qtype eq "A" && $qname eq "pxelator" ) { - my ($ttl, $rdata) = (3600, "172.16.10.1"); - push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata"); - $rcode = "NOERROR"; - } elsif ( $qname eq "foo.example.com" ) { - $rcode = "NOERROR"; + if ( $qname =~ s{\Q$server::domain_name\E$}{} ) { + warn "local $qname $qtype"; + if ( $qtype eq "A" && $qname eq "pxelator." ) { + my ($ttl, $rdata) = (3600, "172.16.10.1"); + push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata"); + $rcode = "NOERROR"; + } else { + $rcode = "NXDOMAIN"; + } } elsif ( my $packet = $res->query( $qname, $qtype ) ) { @@ -43,6 +46,8 @@ $rcode = "NXDOMAIN"; } + warn "rcode: $rcode ",dump( @ans ); + # mark the answer as authoritive (by setting the 'aa' flag return ($rcode, \@ans, \@auth, \@add, { aa => 1 }); } @@ -54,7 +59,9 @@ Verbose => $debug, ) || die "couldn't create nameserver object\n"; + warn "DNS $server::domain_name"; + $ns->main_loop; } -1; +1;