added server::domain_name and use it
authorDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 5 Aug 2009 13:25:19 +0000 (13:25 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 5 Aug 2009 13:25:19 +0000 (13:25 +0000)
lib/PXElator/dnsd.pm
lib/PXElator/server.pm

index 98269d8..1a1b0c1 100644 (file)
@@ -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; 
index be053cf..67f1367 100644 (file)
@@ -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//;