ans.pl revision 823ccd1f02802966395d58c916e9f988320fd6ee
9178881e1bf6a4b01db886b355406c8bed61cc2aMichael Graff# Copyright (C) 2017 Internet Systems Consortium, Inc. ("ISC")
9178881e1bf6a4b01db886b355406c8bed61cc2aMichael Graff# This Source Code Form is subject to the terms of the Mozilla Public
9178881e1bf6a4b01db886b355406c8bed61cc2aMichael Graff# License, v. 2.0. If a copy of the MPL was not distributed with this
9178881e1bf6a4b01db886b355406c8bed61cc2aMichael Graff# file, You can obtain one at http://mozilla.org/MPL/2.0/.
9178881e1bf6a4b01db886b355406c8bed61cc2aMichael Graffmy $pidf = new IO::File "ans.pid", "w" or die "cannot open pid file: $!";
9178881e1bf6a4b01db886b355406c8bed61cc2aMichael Graffprint $pidf "$$\n" or die "cannot write pid file: $!";
9178881e1bf6a4b01db886b355406c8bed61cc2aMichael Graff$pidf->close or die "cannot close pid file: $!";
f9df80f4348ef68043903efa08299480324f4823Michael Graff my ($qname, $qclass, $qtype, $peerhost, $query, $conn) = @_;
f9df80f4348ef68043903efa08299480324f4823Michael Graff print ("request: $qname/$qtype\n");
97e7d389d54a9e3a1ba8313ed140b04afabc7081Michael Graff my $rr = new Net::DNS::RR("$qname $ttl $qclass SOA . . 0 0 0 0 0");
f9df80f4348ef68043903efa08299480324f4823Michael Graff my $rr = new Net::DNS::RR("$qname $ttl $qclass NS $nsname");
f9df80f4348ef68043903efa08299480324f4823Michael Graff $rr = new Net::DNS::RR("$nsname $ttl $qclass A $localaddr");
f9df80f4348ef68043903efa08299480324f4823Michael Graff my $rr = new Net::DNS::RR("$qname $ttl $qclass CNAME name.$synth2");
f9df80f4348ef68043903efa08299480324f4823Michael Graff $rr = new Net::DNS::RR("name.$synth2 $ttl $qclass CNAME name");
b02262cbcd550c63f85df76edc6fff556ea5e95dMichael Graff $rr = new Net::DNS::RR("$synth2 $ttl $qclass DNAME .");
b02262cbcd550c63f85df76edc6fff556ea5e95dMichael Graff } elsif ($qname eq "$synth" || $qname eq "$synth2") {
f9df80f4348ef68043903efa08299480324f4823Michael Graff my $rr = new Net::DNS::RR("$qname $ttl $qclass DNAME .");
f9df80f4348ef68043903efa08299480324f4823Michael Graff my $rr = new Net::DNS::RR("$qname $ttl $qclass CNAME name.");
f9df80f4348ef68043903efa08299480324f4823Michael Graff $rr = new Net::DNS::RR("$synth $ttl $qclass DNAME .");
97e7d389d54a9e3a1ba8313ed140b04afabc7081Michael Graff my $rr = new Net::DNS::RR("$qname $ttl $qclass CNAME name.");
fccf7905e8a06067d49ec00c53d4d57a38a71e52Michael Graff $rr = new Net::DNS::RR("$synth2 $ttl $qclass DNAME .");
f9df80f4348ef68043903efa08299480324f4823Michael Graff return ($rcode, \@ans, \@auth, \@add, { aa => 1 });