ans.pl revision 0c27b3fe77ac1d5094ba3521e8142d9e7973133f
#
# Copyright (C) 2012, 2016 Internet Systems Consortium, Inc. ("ISC")
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# $Id$
#
# Ad hoc name server
#
$pidf->close or die "cannot close pid file: $!";
for (;;) {
my $packet;
$@ and die $@;
} else {
my $err;
}
print "REQUEST:\n";
$packet->print;
my $donotrespond = 0;
if ($qname eq "foo.info") {
$donotrespond = 1;
} elsif ($qname eq "cname1.example.com") {
# Data for the "cname + other data / 1" test
} elsif ($qname eq "cname2.example.com") {
# Data for the "cname + other data / 2" test: same RRs in opposite order
$qname eq "badcname.example.org" ||
$qname eq "goodcname.example.org" ||
$qname eq "foo.baddname.example.org" ||
$qname eq "foo.gooddname.example.org") {
if ($qtype eq "A") {
$packet->push("answer",
" 300 A 192.0.2.1"));
} elsif ($qtype eq "AAAA") {
$packet->push("answer",
" 300 AAAA 2001:db8:beef::1"));
}
} elsif ($qname eq "badcname.example.net" ||
$qname eq "goodcname.example.net") {
# delegation to avoid automatic acceptance for subdomain aliases
# expected to be accepted regardless of the filter setting.
} else {
# Data for the "bogus referrals" test
$packet->push("authority", new Net::DNS::RR("below.www.example.com 300 NS ns.below.www.example.com"));
}
if ($donotrespond == 0) {
print "RESPONSE:\n";
$packet->print;
print "\n";
}
}