dnssec_update_test.pl

来自「package of develop dns」· PL 代码 · 共 106 行

PL
106
字号
#!/usr/bin/perl## Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")# Copyright (C) 2002  Internet Software Consortium.## Permission to use, copy, modify, and distribute this software for any# purpose with or without fee is hereby granted, provided that the above# copyright notice and this permission notice appear in all copies.## THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR# PERFORMANCE OF THIS SOFTWARE.## DNSSEC Dynamic update test suite.## Usage:##   perl update_test.pl [-s server] [-p port] zone## The server defaults to 127.0.0.1.# The port defaults to 53.## Installation notes:## This program uses the Net::DNS::Resolver module.# You can install it by saying##    perl -MCPAN -e "install Net::DNS"## $Id: dnssec_update_test.pl,v 1.3.2.1 2004/03/08 02:07:44 marka Exp $#use Getopt::Std;use Net::DNS;use Net::DNS::Update;use Net::DNS::Resolver;$opt_s = "127.0.0.1";$opt_p = 53;getopt('s:p:');$res = new Net::DNS::Resolver;$res->nameservers($opt_s);$res->port($opt_p);$res->defnames(0); # Do not append default domain.@ARGV == 1 or die    "usage: perl update_test.pl [-s server] [-p port] zone\n";$zone = shift @ARGV;my $failures = 0;sub assert {    my ($cond, $explanation) = @_;    if (!$cond) {	print "I:Test Failed: $explanation ***\n";	$failures++    }}sub test {    my ($expected, @records) = @_;    my $update = new Net::DNS::Update("$zone");    foreach $rec (@records) {	$update->push(@$rec);    }    $reply = $res->send($update);    # Did it work?    if (defined $reply) {	my $rcode = $reply->header->rcode;        assert($rcode eq $expected, "expected $expected, got $rcode");    } else {	print "I:Update failed: ", $res->errorstring, "\n";    }}sub section {    my ($msg) = @_;    print "I:$msg\n";}section("Add a name");test("NOERROR", ["update", rr_add("a.$zone 300 A 73.80.65.49")]);section("Delete the name");test("NOERROR", ["update", rr_del("a.$zone")]);if ($failures) {    print "I:$failures tests failed.\n";} else {    print "I:All tests successful.\n";}exit $failures;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?