From: Dobrica Pavlinusic Date: Wed, 5 Aug 2009 13:25:19 +0000 (+0000) Subject: added server::domain_name and use it X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=daa578297398327c992bd6c27a1562cfd7903956;p=pxelator added server::domain_name and use it --- diff --git a/lib/PXElator/dnsd.pm b/lib/PXElator/dnsd.pm index 98269d8..1a1b0c1 100644 --- a/lib/PXElator/dnsd.pm +++ b/lib/PXElator/dnsd.pm @@ -25,12 +25,15 @@ sub reply_handler { 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 @@ sub reply_handler { $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 @@ sub start { Verbose => $debug, ) || die "couldn't create nameserver object\n"; + warn "DNS $server::domain_name"; + $ns->main_loop; } -1; +1; diff --git a/lib/PXElator/server.pm b/lib/PXElator/server.pm index be053cf..67f1367 100644 --- a/lib/PXElator/server.pm +++ b/lib/PXElator/server.pm @@ -9,6 +9,8 @@ our $netmask = '255.255.255.0'; our ( $ip_from, $ip_to ) = ( 10, 100 ); +our $domain_name = 'pxelator.lan'; + our $base_dir = '/srv/pxelator'; use Module::Refresh qw//;