1
0
Fork 0

Adding upstream version 2.6.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-09 08:57:35 +01:00
parent 87b1cd2929
commit dd7b5026ba
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
7 changed files with 66 additions and 16 deletions

14
CHANGES
View file

@ -1,4 +1,14 @@
2020-03-25 Jerry Lundström 2021-05-31 Jerry Lundström
Release 2.6.0
This release adds EDNS options parameter `-E` to `resperf` and a script
for generating EDNS Client Subnet options (see `contrib/ecs-gen`).
d29d880 ECS opt
877f31e edns option
2021-03-25 Jerry Lundström
Release 2.5.2 Release 2.5.2
@ -26,7 +36,7 @@
22f49df network tests 22f49df network tests
8e5b56e reconnect 8e5b56e reconnect
2020-03-22 Jerry Lundström 2021-03-22 Jerry Lundström
Release 2.5.1 Release 2.5.1

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for dnsperf 2.5.2. # Generated by GNU Autoconf 2.69 for dnsperf 2.6.0.
# #
# Report bugs to <admin@dns-oarc.net>. # Report bugs to <admin@dns-oarc.net>.
# #
@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='dnsperf' PACKAGE_NAME='dnsperf'
PACKAGE_TARNAME='dnsperf' PACKAGE_TARNAME='dnsperf'
PACKAGE_VERSION='2.5.2' PACKAGE_VERSION='2.6.0'
PACKAGE_STRING='dnsperf 2.5.2' PACKAGE_STRING='dnsperf 2.6.0'
PACKAGE_BUGREPORT='admin@dns-oarc.net' PACKAGE_BUGREPORT='admin@dns-oarc.net'
PACKAGE_URL='https://github.com/DNS-OARC/dnsperf/issues' PACKAGE_URL='https://github.com/DNS-OARC/dnsperf/issues'
@ -1356,7 +1356,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures dnsperf 2.5.2 to adapt to many kinds of systems. \`configure' configures dnsperf 2.6.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1427,7 +1427,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of dnsperf 2.5.2:";; short | recursive ) echo "Configuration of dnsperf 2.6.0:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1562,7 +1562,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
dnsperf configure 2.5.2 dnsperf configure 2.6.0
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1931,7 +1931,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by dnsperf $as_me 2.5.2, which was It was created by dnsperf $as_me 2.6.0, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2794,7 +2794,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='dnsperf' PACKAGE='dnsperf'
VERSION='2.5.2' VERSION='2.6.0'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -14202,7 +14202,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by dnsperf $as_me 2.5.2, which was This file was extended by dnsperf $as_me 2.6.0, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -14269,7 +14269,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
dnsperf config.status 2.5.2 dnsperf config.status 2.6.0
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -16,7 +16,7 @@
# limitations under the License. # limitations under the License.
AC_PREREQ(2.64) AC_PREREQ(2.64)
AC_INIT([dnsperf], [2.5.2], [admin@dns-oarc.net], [dnsperf], [https://github.com/DNS-OARC/dnsperf/issues]) AC_INIT([dnsperf], [2.6.0], [admin@dns-oarc.net], [dnsperf], [https://github.com/DNS-OARC/dnsperf/issues])
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
AC_CONFIG_SRCDIR([src/dnsperf.c]) AC_CONFIG_SRCDIR([src/dnsperf.c])
AC_CONFIG_HEADER([src/config.h]) AC_CONFIG_HEADER([src/config.h])

10
contrib/ecs-gen/README.md Normal file
View file

@ -0,0 +1,10 @@
# dnsperf-ecs-gen
Small python script to generate EDNS Client Subnet options for `dnsperf`.
Requires `dnspython` to be installed.
```
$ ./dnsperf-ecs-gen 192.168.0.1/24
-e 8:00011800c0a800
```

View file

@ -0,0 +1,10 @@
#!/usr/bin/env python3
import dns.edns
import sys
if len(sys.argv) > 1:
opt = dns.edns.ECSOption.from_text(sys.argv[1])
print("-e %d:%s" % (dns.edns.ECS, opt.to_wire().hex()))
else:
print("usage: dnsperf-ecs-gen.py <address/srclen[/scopelen]>")

View file

@ -103,6 +103,8 @@ static uint64_t query_timeout;
static bool edns; static bool edns;
static bool dnssec; static bool dnssec;
static perf_ednsoption_t* edns_option = 0;
static perf_datafile_t* input; static perf_datafile_t* input;
/* The target traffic level at the end of the ramp-up */ /* The target traffic level at the end of the ramp-up */
@ -229,7 +231,8 @@ setup(int argc, char** argv)
int sock_family; int sock_family;
unsigned int bufsize; unsigned int bufsize;
unsigned int i; unsigned int i;
const char* _mode = 0; const char* _mode = 0;
const char* edns_option_str = NULL;
sock_family = AF_UNSPEC; sock_family = AF_UNSPEC;
server_port = 0; server_port = 0;
@ -270,6 +273,8 @@ setup(int argc, char** argv)
&bufsize); &bufsize);
perf_opt_add('e', perf_opt_boolean, NULL, perf_opt_add('e', perf_opt_boolean, NULL,
"enable EDNS 0", NULL, &edns); "enable EDNS 0", NULL, &edns);
perf_opt_add('E', perf_opt_string, "code:value",
"send EDNS option", NULL, &edns_option_str);
perf_opt_add('D', perf_opt_boolean, NULL, perf_opt_add('D', perf_opt_boolean, NULL,
"set the DNSSEC OK bit (implies EDNS)", NULL, &dnssec); "set the DNSSEC OK bit (implies EDNS)", NULL, &dnssec);
perf_opt_add('y', perf_opt_string, "[alg:]name:secret", perf_opt_add('y', perf_opt_string, "[alg:]name:secret",
@ -350,12 +355,15 @@ setup(int argc, char** argv)
perf_datafile_setmaxruns(input, -1); perf_datafile_setmaxruns(input, -1);
} }
if (dnssec) if (dnssec || edns_option_str)
edns = true; edns = true;
if (tsigkey_str != NULL) if (tsigkey_str != NULL)
tsigkey = perf_tsig_parsekey(tsigkey_str); tsigkey = perf_tsig_parsekey(tsigkey_str);
if (edns_option_str != NULL)
edns_option = perf_edns_parseoption(edns_option_str);
if (!(socks = calloc(nsocks, sizeof(*socks)))) { if (!(socks = calloc(nsocks, sizeof(*socks)))) {
perf_log_fatal("out of memory"); perf_log_fatal("out of memory");
} }
@ -380,6 +388,9 @@ cleanup(void)
(void)perf_net_close(socks[i]); (void)perf_net_close(socks[i]);
close(dummypipe[0]); close(dummypipe[0]);
close(dummypipe[1]); close(dummypipe[1]);
if (edns_option)
perf_edns_destroyoption(&edns_option);
} }
/* Find the ramp_bucket for queries sent at time "when" */ /* Find the ramp_bucket for queries sent at time "when" */
@ -586,7 +597,7 @@ do_one_line(perf_buffer_t* lines, perf_buffer_t* msg)
perf_buffer_clear(msg); perf_buffer_clear(msg);
result = perf_dns_buildrequest(&used, qid, result = perf_dns_buildrequest(&used, qid,
edns, dnssec, false, edns, dnssec, false,
tsigkey, 0, tsigkey, edns_option,
msg); msg);
if (result != PERF_R_SUCCESS) if (result != PERF_R_SUCCESS)
return (result); return (result);

View file

@ -37,6 +37,15 @@ echo "" | ../dnsperf -W -y test: | grep "unable to setup TSIG, secret empty"
../dnsperf -W -E a:aa | grep "invalid EDNS Option code 'a'" ../dnsperf -W -E a:aa | grep "invalid EDNS Option code 'a'"
../dnsperf -W -E 1:xx | grep "invalid EDNS Option hex value 'xx'" ../dnsperf -W -E 1:xx | grep "invalid EDNS Option hex value 'xx'"
! ../resperf -e -E invalid
! ../resperf -e -E 9999999:invalid
! ../resperf -e -E 123:invalid
! ../resperf -e -E 123:fa0
../resperf -W -E a: | grep "invalid EDNS Option, value is empty"
../resperf -W -E a:a | grep "invalid EDNS Option, value must hex string (even number of characters)"
../resperf -W -E a:aa | grep "invalid EDNS Option code 'a'"
../resperf -W -E 1:xx | grep "invalid EDNS Option hex value 'xx'"
! ../resperf -d does_not_exist ! ../resperf -d does_not_exist
! ../resperf -r 0 -c 0 ! ../resperf -r 0 -c 0
! ../resperf -f invalid ! ../resperf -f invalid