diff --git a/bin/tests/system/packet.pl b/bin/tests/system/packet.pl
index 30500630ec..28d6a0987a 100644
--- a/bin/tests/system/packet.pl
+++ b/bin/tests/system/packet.pl
@@ -14,7 +14,7 @@
# the standard input, in the form of a series of bytes in hexadecimal.
# Whitespace is ignored, as is anything following a '#' symbol.
#
-# For example, the following input would generate normal query for
+# For example, the following input would generate normal query for
# isc.org/NS/IN":
#
# # QID:
@@ -31,7 +31,7 @@
# Note that we do not wait for a response for the server. This is simply
# a way of injecting arbitrary packets to test server resposnes.
#
-# Usage: packet.pl [-a
] [-p ] [-t (udp|tcp)] [filename]
+# Usage: packet.pl [-a ] [-p ] [-t (udp|tcp)] [-r ] [filename]
#
# If not specified, address defaults to 127.0.0.1, port to 53, protocol
# to udp, and file to stdin.
@@ -46,12 +46,12 @@ use IO::File;
use IO::Socket;
sub usage {
- print ("Usage: packet.pl [-a address] [-p port] [-t (tcp|udp)] -d [file]\n");
+ print ("Usage: packet.pl [-a address] [-p port] [-t (tcp|udp)] [-r ] [file]\n");
exit 1;
}
my %options={};
-getopts("a:dp:t:", \%options);
+getopts("a:p:t:r:", \%options);
my $addr = "127.0.0.1";
$addr = $options{a} if defined $options{a};
@@ -63,6 +63,9 @@ my $proto = "udp";
$proto = lc $options{t} if defined $options{t};
usage if ($proto !~ /^(udp|tcp)$/);
+my $repeats = 1;
+$repeats = $options{r} if defined $options{r};
+
my $file = "STDIN";
if (@ARGV >= 1) {
my $filename = shift @ARGV;
@@ -82,52 +85,23 @@ my $data = pack("H*", $input);
my $len = length $data;
my $output = unpack("H*", $data);
-print ("sending: $output\n");
+print ("sending $repeats time(s): $output\n");
my $sock = IO::Socket::INET->new(PeerAddr => $addr, PeerPort => $port,
Proto => $proto,) or die "$!";
my $bytes;
-if ($proto eq "udp") {
- $bytes = $sock->send($data);
-} else {
- $bytes = $sock->syswrite(pack("n", $len), 2);
- $bytes += $sock->syswrite($data, $len);
+while ($repeats > 0) {
+ if ($proto eq "udp") {
+ $bytes = $sock->send($data);
+ } else {
+ $bytes = $sock->syswrite(pack("n", $len), 2);
+ $bytes += $sock->syswrite($data, $len);
+ }
+
+ $repeats = $repeats - 1;
}
print ("sent $bytes bytes to $addr:$port\n");
-if (defined $options{d}) {
- use Net::DNS;
- use Net::DNS::Packet;
-
- my $rin;
- my $rout;
- $rin = '';
- vec($rin, fileno($sock), 1) = 1;
- select($rout = $rin, undef, undef, 1);
- if (vec($rout, fileno($sock), 1)) {{
- my $buf;
- if ($proto eq "udp") {
- $sock->recv($buf, 512);
- } else {
- my $n = $sock->sysread($buf, 2);
- last unless $n == 2;
- my $len = unpack("n", $buf);
- $n = $sock->sysread($buf, $len);
- last unless $n == $len;
- }
-
- my $response;
- if ($Net::DNS::VERSION > 0.68) {
- $response = new Net::DNS::Packet(\$buf, 0);
- $@ and die $@;
- } else {
- my $err;
- ($response, $err) = new Net::DNS::Packet(\$buf, 0);
- $err and die $err;
- }
- $response->print;
- }}
-}
$sock->close;
close $file;
diff --git a/bin/tests/system/pkcs11/2037-pk11_numbits-crash-test.pkt b/bin/tests/system/pkcs11/2037-pk11_numbits-crash-test.pkt
index 77d87f68ed..09b06f0739 100644
--- a/bin/tests/system/pkcs11/2037-pk11_numbits-crash-test.pkt
+++ b/bin/tests/system/pkcs11/2037-pk11_numbits-crash-test.pkt
@@ -1,20 +1,20 @@
-00000000: 0137 edda 2800 0001 0000 0001 0000 0972 .7..(..........r
-00000010: 7361 7368 6132 3536 0765 7861 6d70 6c65 sasha256.example
-00000020: 0000 0600 01c0 0c00 3000 0100 0001 2c01 ........0.....,.
-00000030: 0801 0003 0803 0100 0100 0000 0000 0000 ................
-00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-000000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-000000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-000000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-000000d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-000000e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-000000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00000130: 0000 0000 0000 0000 00 .........
+edda 2800 0001 0000 0001 0000 0972 7361
+7368 6132 3536 0765 7861 6d70 6c65 0000
+0600 01c0 0c00 3000 0100 0001 2c01 0801
+0003 0803 0100 0100 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 00
diff --git a/bin/tests/system/tcp/1996-alloc_dnsbuf-crash-test.pkt b/bin/tests/system/tcp/1996-alloc_dnsbuf-crash-test.pkt
index b723cef1d9..7520c3a35f 100644
Binary files a/bin/tests/system/tcp/1996-alloc_dnsbuf-crash-test.pkt and b/bin/tests/system/tcp/1996-alloc_dnsbuf-crash-test.pkt differ
diff --git a/bin/tests/system/tcp/tests.sh b/bin/tests/system/tcp/tests.sh
index af92b95d74..20d72c610a 100644
--- a/bin/tests/system/tcp/tests.sh
+++ b/bin/tests/system/tcp/tests.sh
@@ -186,7 +186,7 @@ status=$((status + ret))
n=$((n + 1))
echo_i "checking that BIND 9 doesn't crash on long TCP messages ($n)"
ret=0
-$PERL ../packet.pl -a "10.53.0.1" -p "${PORT}" -t udp 1996-alloc_dnsbuf-crash-test.pkt || ret=1
+$PERL ../packet.pl -a "10.53.0.1" -p "${PORT}" -t tcp -r 300000 1996-alloc_dnsbuf-crash-test.pkt || ret=1
dig_with_opts +tcp @10.53.0.1 txt.example > dig.out.test$n || ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=$((status + ret))