mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-09 03:42:06 -04:00
Use a single local port for ditch.pl
The ditch.pl script is used to generate burst traffic without waiting for the responses. When running other tests in parallel, this can result in a ephemeral port clash, since the ditch.pl process closes the socket immediately. In rare occasions when the message ID also clashes with other tests' queries, it might result in an UnexpectedSource error from dnspython. Use a dedicated port EXTRAPORT8 which is reserved for each test as a source port for the burst traffic.
This commit is contained in:
parent
381763120b
commit
339fa5690a
3 changed files with 13 additions and 6 deletions
|
|
@ -34,12 +34,12 @@ use IO::File;
|
|||
use IO::Socket;
|
||||
|
||||
sub usage {
|
||||
print ("Usage: ditch.pl [-s address] [-p port] [file]\n");
|
||||
print ("Usage: ditch.pl [-s address] [-p port] [-b source_port] [file]\n");
|
||||
exit 1;
|
||||
}
|
||||
|
||||
my %options={};
|
||||
getopts("s:p:t:", \%options);
|
||||
getopts("s:p:b:", \%options);
|
||||
|
||||
my $addr = "127.0.0.1";
|
||||
$addr = $options{s} if defined $options{s};
|
||||
|
|
@ -47,6 +47,9 @@ $addr = $options{s} if defined $options{s};
|
|||
my $port = 53;
|
||||
$port = $options{p} if defined $options{p};
|
||||
|
||||
my $source_port = 0;
|
||||
$source_port = $options{b} if defined $options{b};
|
||||
|
||||
my $file = "STDIN";
|
||||
if (@ARGV >= 1) {
|
||||
my $filename = shift @ARGV;
|
||||
|
|
@ -74,8 +77,12 @@ while (defined(my $line = <$file>) ) {
|
|||
$packet->header->rd(1);
|
||||
$packet->push(question => $q);
|
||||
|
||||
my $sock = IO::Socket::INET->new(PeerAddr => $addr, PeerPort => $port,
|
||||
Proto => "udp",) or die "$!";
|
||||
my $sock = IO::Socket::INET->new(
|
||||
PeerAddr => $addr,
|
||||
PeerPort => $port,
|
||||
Proto => "udp",
|
||||
LocalPort => $source_port,
|
||||
) or die "$!";
|
||||
|
||||
my $bytes = $sock->send($packet->data);
|
||||
#print ("sent $bytes bytes to $addr:$port:\n");
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ burst() {
|
|||
echo "${num}${2}${3}.lamesub.example A" >>burst.input.$$
|
||||
fi
|
||||
done
|
||||
$PERL ../ditch.pl -p ${PORT} -s ${server} burst.input.$$
|
||||
$PERL ../ditch.pl -p ${PORT} -s ${server} -b ${EXTRAPORT8} burst.input.$$
|
||||
rm -f burst.input.$$
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2500,7 +2500,7 @@ burst() {
|
|||
num=$((num - 1))
|
||||
echo "fetch${num}.example A" >>burst.input.$$
|
||||
done
|
||||
$PERL ../ditch.pl -p ${PORT} -s 10.53.0.3 burst.input.$$
|
||||
$PERL ../ditch.pl -p ${PORT} -s 10.53.0.3 -b ${EXTRAPORT8} burst.input.$$
|
||||
rm -f burst.input.$$
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue