1
0
Fork 0

Adding upstream version 2.13.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-09 09:09:06 +01:00
parent d1aefd7f7e
commit 7e7711ed8d
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
10 changed files with 53 additions and 11 deletions

11
CHANGES
View file

@ -1,3 +1,14 @@
2023-06-15 Jerry Lundström
Release 2.13.0
This release adds a new option `-O tls-sni=...` to set the Server Name
Indication when using TLS transport, currently for DNS-over-TLS and
DNS-over-HTTPS.
dbe84f6 TLS SNI
5fb2282 Add TLS Server Name Indication extension support
2023-05-21 Jerry Lundström 2023-05-21 Jerry Lundström
Release 2.12.0 Release 2.12.0

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.12.0. # Generated by GNU Autoconf 2.69 for dnsperf 2.13.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.12.0' PACKAGE_VERSION='2.13.0'
PACKAGE_STRING='dnsperf 2.12.0' PACKAGE_STRING='dnsperf 2.13.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'
@ -1362,7 +1362,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.12.0 to adapt to many kinds of systems. \`configure' configures dnsperf 2.13.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1433,7 +1433,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.12.0:";; short | recursive ) echo "Configuration of dnsperf 2.13.0:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1572,7 +1572,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.12.0 dnsperf configure 2.13.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.
@ -1941,7 +1941,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.12.0, which was It was created by dnsperf $as_me 2.13.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 $@
@ -2804,7 +2804,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='dnsperf' PACKAGE='dnsperf'
VERSION='2.12.0' VERSION='2.13.0'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -14436,7 +14436,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.12.0, which was This file was extended by dnsperf $as_me 2.13.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
@ -14503,7 +14503,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.12.0 dnsperf config.status 2.13.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.12.0], [admin@dns-oarc.net], [dnsperf], [https://github.com/DNS-OARC/dnsperf/issues]) AC_INIT([dnsperf], [2.13.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])

View file

@ -441,6 +441,13 @@ The HTTP method to use when querying with DNS-over-HTTPS, default is GET.
Available methods are: GET, POST. Available methods are: GET, POST.
.RE .RE
\fBtls-sni=\fISERVER_NAME\fR
.br
.RS
The Server Name Indication (SNI) to use for TLS connections (such as DNS-over-TLS or DNS-over-HTTPS),
defaults to leaving out the SNI extension in the client hello.
.RE
\fBsuppress=\fIMESSAGE[,MESSAGE,...]\fR \fBsuppress=\fIMESSAGE[,MESSAGE,...]\fR
.br .br
.RS .RS

View file

@ -587,6 +587,7 @@ setup(int argc, char** argv, config_t* config)
const char* doh_uri = DEFAULT_DOH_URI; const char* doh_uri = DEFAULT_DOH_URI;
const char* doh_method = DEFAULT_DOH_METHOD; const char* doh_method = DEFAULT_DOH_METHOD;
const char* local_suppress = 0; const char* local_suppress = 0;
const char* tls_sni = 0;
memset(config, 0, sizeof(*config)); memset(config, 0, sizeof(*config));
config->argc = argc; config->argc = argc;
@ -681,6 +682,8 @@ setup(int argc, char** argv, config_t* config)
#endif #endif
perf_long_opt_add("qps-threshold-wait", perf_opt_zpint, "microseconds", perf_long_opt_add("qps-threshold-wait", perf_opt_zpint, "microseconds",
"minimum threshold for enabling wait in rate limiting", stringify(config->qps_threshold_wait), &config->qps_threshold_wait); "minimum threshold for enabling wait in rate limiting", stringify(config->qps_threshold_wait), &config->qps_threshold_wait);
perf_long_opt_add("tls-sni", perf_opt_string, "tls_sni",
"the TLS SNI to use for TLS connections", NULL, &tls_sni);
bool log_stdout = false; bool log_stdout = false;
perf_opt_add('W', perf_opt_boolean, NULL, "log warnings and errors to stdout instead of stderr", NULL, &log_stdout); perf_opt_add('W', perf_opt_boolean, NULL, "log warnings and errors to stdout instead of stderr", NULL, &log_stdout);
@ -710,6 +713,10 @@ setup(int argc, char** argv, config_t* config)
} }
} }
if (tls_sni) {
perf_net_tls_sni = tls_sni;
}
if (doh_uri) { if (doh_uri) {
perf_net_doh_parse_uri(doh_uri); perf_net_doh_parse_uri(doh_uri);
} }

View file

@ -31,6 +31,8 @@
#include <netdb.h> #include <netdb.h>
#include <arpa/inet.h> #include <arpa/inet.h>
const char* perf_net_tls_sni = 0;
enum perf_net_mode perf_net_parsemode(const char* mode) enum perf_net_mode perf_net_parsemode(const char* mode)
{ {
if (!strcmp(mode, "udp")) { if (!strcmp(mode, "udp")) {

View file

@ -184,4 +184,6 @@ void perf_net_doh_stats_init();
void perf_net_doh_stats_compile(struct perf_net_socket*); void perf_net_doh_stats_compile(struct perf_net_socket*);
void perf_net_doh_stats_print(); void perf_net_doh_stats_print();
extern const char* perf_net_tls_sni;
#endif #endif

View file

@ -184,6 +184,9 @@ static void perf__doh_connect(struct perf_net_socket* sock)
if (!(self->ssl = SSL_new(ssl_ctx))) { if (!(self->ssl = SSL_new(ssl_ctx))) {
perf_log_fatal("SSL_new(): %s", ERR_error_string(ERR_get_error(), 0)); perf_log_fatal("SSL_new(): %s", ERR_error_string(ERR_get_error(), 0));
} }
if (perf_net_tls_sni && !(ret = SSL_set_tlsext_host_name(self->ssl, perf_net_tls_sni))) {
perf_log_fatal("SSL_set_tlsext_host_name(): %s", ERR_error_string(SSL_get_error(self->ssl, ret), 0));
}
if (!(ret = SSL_set_fd(self->ssl, sock->fd))) { if (!(ret = SSL_set_fd(self->ssl, sock->fd))) {
perf_log_fatal("SSL_set_fd(): %s", ERR_error_string(SSL_get_error(self->ssl, ret), 0)); perf_log_fatal("SSL_set_fd(): %s", ERR_error_string(SSL_get_error(self->ssl, ret), 0));
} }

View file

@ -82,6 +82,9 @@ static void perf__dot_connect(struct perf_net_socket* sock)
if (!(self->ssl = SSL_new(ssl_ctx))) { if (!(self->ssl = SSL_new(ssl_ctx))) {
perf_log_fatal("SSL_new(): %s", ERR_error_string(ERR_get_error(), 0)); perf_log_fatal("SSL_new(): %s", ERR_error_string(ERR_get_error(), 0));
} }
if (perf_net_tls_sni && !(ret = SSL_set_tlsext_host_name(self->ssl, perf_net_tls_sni))) {
perf_log_fatal("SSL_set_tlsext_host_name(): %s", ERR_error_string(SSL_get_error(self->ssl, ret), 0));
}
if (!(ret = SSL_set_fd(self->ssl, sock->fd))) { if (!(ret = SSL_set_fd(self->ssl, sock->fd))) {
perf_log_fatal("SSL_set_fd(): %s", ERR_error_string(SSL_get_error(self->ssl, ret), 0)); perf_log_fatal("SSL_set_fd(): %s", ERR_error_string(SSL_get_error(self->ssl, ret), 0));
} }

View file

@ -253,6 +253,7 @@ static void setup(int argc, char** argv)
const char* edns_option_str = NULL; const char* edns_option_str = NULL;
const char* doh_uri = DEFAULT_DOH_URI; const char* doh_uri = DEFAULT_DOH_URI;
const char* doh_method = DEFAULT_DOH_METHOD; const char* doh_method = DEFAULT_DOH_METHOD;
const char* tls_sni = 0;
const char* local_suppress = 0; const char* local_suppress = 0;
size_t num_queries_per_conn = 0; size_t num_queries_per_conn = 0;
@ -337,6 +338,8 @@ static void setup(int argc, char** argv)
"the URI to use for DNS-over-HTTPS", DEFAULT_DOH_URI, &doh_uri); "the URI to use for DNS-over-HTTPS", DEFAULT_DOH_URI, &doh_uri);
perf_long_opt_add("doh-method", perf_opt_string, "doh_method", perf_long_opt_add("doh-method", perf_opt_string, "doh_method",
"the HTTP method to use for DNS-over-HTTPS: GET or POST", DEFAULT_DOH_METHOD, &doh_method); "the HTTP method to use for DNS-over-HTTPS: GET or POST", DEFAULT_DOH_METHOD, &doh_method);
perf_long_opt_add("tls-sni", perf_opt_string, "tls_sni",
"the TLS SNI to use for TLS connections", NULL, &tls_sni);
perf_long_opt_add("suppress", perf_opt_string, "message[,message,...]", perf_long_opt_add("suppress", perf_opt_string, "message[,message,...]",
"suppress messages/warnings, see dnsperf(1) man-page for list of message types", NULL, &local_suppress); "suppress messages/warnings, see dnsperf(1) man-page for list of message types", NULL, &local_suppress);
perf_long_opt_add("num-queries-per-conn", perf_opt_uint, "queries", perf_long_opt_add("num-queries-per-conn", perf_opt_uint, "queries",
@ -367,6 +370,10 @@ static void setup(int argc, char** argv)
} }
} }
if (tls_sni) {
perf_net_tls_sni = tls_sni;
}
if (doh_uri) { if (doh_uri) {
perf_net_doh_parse_uri(doh_uri); perf_net_doh_parse_uri(doh_uri);
} }