Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pdns for openSUSE:Factory checked in at 2024-11-05 15:41:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pdns (Old) and /work/SRC/openSUSE:Factory/.pdns.new.2020 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdns" Tue Nov 5 15:41:33 2024 rev:95 rq:1221285 version:4.9.2 Changes: -------- --- /work/SRC/openSUSE:Factory/pdns/pdns.changes 2024-10-01 17:20:30.123450941 +0200 +++ /work/SRC/openSUSE:Factory/.pdns.new.2020/pdns.changes 2024-11-05 15:41:57.632438084 +0100 @@ -1,0 +2,15 @@ +Tue Nov 5 01:56:49 UTC 2024 - Marcus Rueckert <mrueck...@suse.de> + +- make the compiler handling for leap more readable + and also make it work for SLE15 < SP3 + +------------------------------------------------------------------- +Tue Nov 5 01:44:27 UTC 2024 - Marcus Rueckert <mrueck...@suse.de> + +- Update to version 4.9.2 + https://doc.powerdns.com/authoritative/changelog/4.9.html#change-4.9.2 +- drop powerdns-5_1_1-2_fix-build-with-boost-1_86_0.patch included + in update +- refreshed pdns-4.0.3_allow_dacoverride_in_capset.patch + +------------------------------------------------------------------- Old: ---- pdns-4.9.1.tar.bz2 pdns-4.9.1.tar.bz2.sig powerdns-5_1_1-2_fix-build-with-boost-1_86_0.patch New: ---- pdns-4.9.2.tar.bz2 pdns-4.9.2.tar.bz2.sig BETA DEBUG BEGIN: Old: https://doc.powerdns.com/authoritative/changelog/4.9.html#change-4.9.2 - drop powerdns-5_1_1-2_fix-build-with-boost-1_86_0.patch included in update BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pdns.spec ++++++ --- /var/tmp/diff_new_pack.SfpzOO/_old 2024-11-05 15:41:58.404470427 +0100 +++ /var/tmp/diff_new_pack.SfpzOO/_new 2024-11-05 15:41:58.408470594 +0100 @@ -45,11 +45,11 @@ %if 0%{?sle_version} && 0%{?sle_version} < 160000 # std::filesystem is supported since gcc8, but default gcc is 7 -BuildRequires: gcc12 -BuildRequires: gcc12-c++ -%define compiler_ver -12 +%if 0%{?sle_version} >= 150300 +%define force_gcc_version 12 %else -BuildRequires: gcc-c++ +%define force_gcc_version 11 +%endif %endif %define services %{name}.service %{name}@.service %{?ixfrdist_services} @@ -59,7 +59,7 @@ %endif Name: pdns -Version: 4.9.1 +Version: 4.9.2 Release: 0 Summary: Authoritative-only nameserver License: GPL-2.0-only @@ -72,12 +72,13 @@ Patch0: pdns-4.0.3_allow_dacoverride_in_capset.patch # PATCH-FIX-OPENSUSE pdns-4.9.0-fix_boost.patch -- fix including boost headers with older releases Patch1: pdns-4.9.0-fix_boost.patch -Patch2: powerdns-5_1_1-2_fix-build-with-boost-1_86_0.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: bison BuildRequires: curl-devel BuildRequires: flex +BuildRequires: gcc%{?force_gcc_version} +BuildRequires: gcc%{?force_gcc_version}-c++ BuildRequires: gdbm-devel BuildRequires: libmysqlclient-devel BuildRequires: libsodium-devel @@ -271,8 +272,10 @@ %autosetup -n %{name}-%{version} -p1 %build -export CC=gcc%{?compiler_ver} -export CXX=g++%{?compiler_ver} +%if 0%{?force_gcc_version} +export CC="gcc-%{?force_gcc_version}" +export CXX="g++-%{?force_gcc_version}" +%endif %configure \ --docdir=%{_docdir}/%{name}/ \ --disable-silent-rules \ ++++++ pdns-4.0.3_allow_dacoverride_in_capset.patch ++++++ --- /var/tmp/diff_new_pack.SfpzOO/_old 2024-11-05 15:41:58.432471600 +0100 +++ /var/tmp/diff_new_pack.SfpzOO/_new 2024-11-05 15:41:58.436471767 +0100 @@ -1,8 +1,8 @@ -Index: pdns-4.3.0-rc2/pdns/pdns.service.in +Index: pdns-4.9.2/pdns/pdns.service.in =================================================================== ---- pdns-4.3.0-rc2.orig/pdns/pdns.service.in -+++ pdns-4.3.0-rc2/pdns/pdns.service.in -@@ -16,8 +16,8 @@ StartLimitInterval=0 +--- pdns-4.9.2.orig/pdns/pdns.service.in ++++ pdns-4.9.2/pdns/pdns.service.in +@@ -17,8 +17,8 @@ StartLimitInterval=0 RuntimeDirectory=pdns # Sandboxing ++++++ pdns-4.9.1.tar.bz2 -> pdns-4.9.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/Makefile.in new/pdns-4.9.2/Makefile.in --- old/pdns-4.9.1/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/Makefile.in 2024-09-30 12:32:58.000000000 +0200 @@ -307,6 +307,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/codedocs/Makefile.in new/pdns-4.9.2/codedocs/Makefile.in --- old/pdns-4.9.1/codedocs/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/codedocs/Makefile.in 2024-09-30 12:32:58.000000000 +0200 @@ -219,6 +219,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/configure new/pdns-4.9.2/configure --- old/pdns-4.9.1/configure 2024-05-28 09:45:01.000000000 +0200 +++ new/pdns-4.9.2/configure 2024-09-30 12:32:57.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for pdns 4.9.1. +# Generated by GNU Autoconf 2.71 for pdns 4.9.2. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -618,8 +618,8 @@ # Identity of this package. PACKAGE_NAME='pdns' PACKAGE_TARNAME='pdns' -PACKAGE_VERSION='4.9.1' -PACKAGE_STRING='pdns 4.9.1' +PACKAGE_VERSION='4.9.2' +PACKAGE_STRING='pdns 4.9.2' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -672,6 +672,7 @@ WARN_CFLAGS SANITIZER_FLAGS PROGRAM_LDFLAGS +CXXFS_LIBS service_group service_user HAVE_SYSTEMD_FALSE @@ -1697,7 +1698,7 @@ # 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. cat <<_ACEOF -\`configure' configures pdns 4.9.1 to adapt to many kinds of systems. +\`configure' configures pdns 4.9.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1768,7 +1769,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pdns 4.9.1:";; + short | recursive ) echo "Configuration of pdns 4.9.2:";; esac cat <<\_ACEOF @@ -2039,7 +2040,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pdns configure 4.9.1 +pdns configure 4.9.2 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2528,7 +2529,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by pdns $as_me 4.9.1, which was +It was created by pdns $as_me 4.9.2, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4026,7 +4027,7 @@ # Define the identity of the package. PACKAGE='pdns' - VERSION='4.9.1' + VERSION='4.9.2' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -30685,12 +30686,13 @@ CFLAGS="$PIE_CFLAGS $CFLAGS" CXXFLAGS="$PIE_CFLAGS $CXXFLAGS" -PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS" if test "$ax_cxx_cv_filesystem_lib" != "none" then : - PROGRAM_LDFLAGS="$PROGRAM_LDFLAGS -l$ax_cxx_cv_filesystem_lib" + CXXFS_LIBS="-l$ax_cxx_cv_filesystem_lib" fi +PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS $CXXFS_LIBS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable code coverage" >&5 @@ -32465,7 +32467,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by pdns $as_me 4.9.1, which was +This file was extended by pdns $as_me 4.9.2, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -32533,7 +32535,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -pdns config.status 4.9.1 +pdns config.status 4.9.2 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/configure.ac new/pdns-4.9.2/configure.ac --- old/pdns-4.9.1/configure.ac 2024-05-28 09:44:54.000000000 +0200 +++ new/pdns-4.9.2/configure.ac 2024-09-30 12:32:49.000000000 +0200 @@ -1,6 +1,6 @@ AC_PREREQ([2.69]) -AC_INIT([pdns], [4.9.1]) +AC_INIT([pdns], [4.9.2]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-ustar -Wno-portability subdir-objects parallel-tests 1.11]) AM_SILENT_RULES([yes]) @@ -309,11 +309,12 @@ CFLAGS="$PIE_CFLAGS $CFLAGS" CXXFLAGS="$PIE_CFLAGS $CXXFLAGS" -PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS" AS_IF([test "$ax_cxx_cv_filesystem_lib" != "none"], - [PROGRAM_LDFLAGS="$PROGRAM_LDFLAGS -l$ax_cxx_cv_filesystem_lib"], + [CXXFS_LIBS="-l$ax_cxx_cv_filesystem_lib"], [] ) +AC_SUBST([CXXFS_LIBS]) +PROGRAM_LDFLAGS="$PIE_LDFLAGS $PROGRAM_LDFLAGS $CXXFS_LIBS" AC_SUBST([PROGRAM_LDFLAGS]) PDNS_ENABLE_COVERAGE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/Makefile.in new/pdns-4.9.2/docs/Makefile.in --- old/pdns-4.9.1/docs/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/docs/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -257,6 +257,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/calidns.1 new/pdns-4.9.2/docs/calidns.1 --- old/pdns-4.9.1/docs/calidns.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/calidns.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "CALIDNS" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "CALIDNS" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME calidns \- A DNS recursor testing tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnsbulktest.1 new/pdns-4.9.2/docs/dnsbulktest.1 --- old/pdns-4.9.1/docs/dnsbulktest.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnsbulktest.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSBULKTEST" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSBULKTEST" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsbulktest \- A debugging tool for intermittent resolver failures .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnsgram.1 new/pdns-4.9.2/docs/dnsgram.1 --- old/pdns-4.9.1/docs/dnsgram.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnsgram.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSGRAM" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSGRAM" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsgram \- A debugging tool for intermittent resolver failures .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnspcap2calidns.1 new/pdns-4.9.2/docs/dnspcap2calidns.1 --- old/pdns-4.9.1/docs/dnspcap2calidns.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnspcap2calidns.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSPCAP2CALIDNS" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSPCAP2CALIDNS" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnspcap2calidns \- A tool to convert PCAPs of DNS traffic to calidns input .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnspcap2protobuf.1 new/pdns-4.9.2/docs/dnspcap2protobuf.1 --- old/pdns-4.9.1/docs/dnspcap2protobuf.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnspcap2protobuf.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSPCAP2PROTOBUF" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSPCAP2PROTOBUF" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnspcap2protobuf \- A tool to convert PCAPs of DNS traffic to PowerDNS Protobuf .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnsreplay.1 new/pdns-4.9.2/docs/dnsreplay.1 --- old/pdns-4.9.1/docs/dnsreplay.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnsreplay.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSREPLAY" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSREPLAY" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsreplay \- A PowerDNS nameserver debugging tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnsscan.1 new/pdns-4.9.2/docs/dnsscan.1 --- old/pdns-4.9.1/docs/dnsscan.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnsscan.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSSCAN" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSSCAN" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsscan \- List the amount of queries per qtype in a pcap .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnsscope.1 new/pdns-4.9.2/docs/dnsscope.1 --- old/pdns-4.9.1/docs/dnsscope.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnsscope.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSSCOPE" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSSCOPE" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnsscope \- A PowerDNS nameserver debugging tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnstcpbench.1 new/pdns-4.9.2/docs/dnstcpbench.1 --- old/pdns-4.9.1/docs/dnstcpbench.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnstcpbench.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSTCPBENCH" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSTCPBENCH" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnstcpbench \- tool to perform TCP benchmarking of nameservers .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dnswasher.1 new/pdns-4.9.2/docs/dnswasher.1 --- old/pdns-4.9.1/docs/dnswasher.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dnswasher.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DNSWASHER" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DNSWASHER" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dnswasher \- A PowerDNS nameserver debugging tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/dumresp.1 new/pdns-4.9.2/docs/dumresp.1 --- old/pdns-4.9.1/docs/dumresp.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/dumresp.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DUMRESP" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "DUMRESP" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME dumresp \- A dumb DNS responder .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/ixfrdist.1 new/pdns-4.9.2/docs/ixfrdist.1 --- old/pdns-4.9.1/docs/ixfrdist.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/ixfrdist.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "IXFRDIST" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "IXFRDIST" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME ixfrdist \- An IXFR/AXFR-only server that re-distributes zones .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/ixfrdist.yml.5 new/pdns-4.9.2/docs/ixfrdist.yml.5 --- old/pdns-4.9.1/docs/ixfrdist.yml.5 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/ixfrdist.yml.5 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "IXFRDIST.YML" "5" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "IXFRDIST.YML" "5" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME ixfrdist.yml \- The ixfrdist configuration file .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/ixplore.1 new/pdns-4.9.2/docs/ixplore.1 --- old/pdns-4.9.1/docs/ixplore.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/ixplore.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "IXPLORE" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "IXPLORE" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME ixplore \- A tool that provides insights into IXFRs .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/nproxy.1 new/pdns-4.9.2/docs/nproxy.1 --- old/pdns-4.9.1/docs/nproxy.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/nproxy.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "NPROXY" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "NPROXY" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME nproxy \- DNS notification proxy .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/nsec3dig.1 new/pdns-4.9.2/docs/nsec3dig.1 --- old/pdns-4.9.1/docs/nsec3dig.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/nsec3dig.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "NSEC3DIG" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "NSEC3DIG" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME nsec3dig \- Show and validate NSEC3 proofs .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/pdns_control.1 new/pdns-4.9.2/docs/pdns_control.1 --- old/pdns-4.9.1/docs/pdns_control.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/pdns_control.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNS_CONTROL" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNS_CONTROL" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdns_control \- Control the PowerDNS nameserver .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/pdns_notify.1 new/pdns-4.9.2/docs/pdns_notify.1 --- old/pdns-4.9.1/docs/pdns_notify.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/pdns_notify.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNS_NOTIFY" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNS_NOTIFY" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdns_notify \- A simple DNS NOTIFY sender .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/pdns_server.1 new/pdns-4.9.2/docs/pdns_server.1 --- old/pdns-4.9.1/docs/pdns_server.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/pdns_server.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNS_SERVER" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNS_SERVER" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdns_server \- The PowerDNS Authoritative Nameserver .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/pdnsutil.1 new/pdns-4.9.2/docs/pdnsutil.1 --- old/pdns-4.9.1/docs/pdnsutil.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/pdnsutil.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "PDNSUTIL" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "PDNSUTIL" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME pdnsutil \- PowerDNS record and DNSSEC command and control .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/saxfr.1 new/pdns-4.9.2/docs/saxfr.1 --- old/pdns-4.9.1/docs/saxfr.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/saxfr.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SAXFR" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "SAXFR" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME saxfr \- Perform AXFRs and show information about it .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/sdig.1 new/pdns-4.9.2/docs/sdig.1 --- old/pdns-4.9.1/docs/sdig.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/sdig.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SDIG" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "SDIG" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME sdig \- Perform a DNS query and show the results .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/zone2json.1 new/pdns-4.9.2/docs/zone2json.1 --- old/pdns-4.9.1/docs/zone2json.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/zone2json.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ZONE2JSON" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "ZONE2JSON" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME zone2json \- convert BIND zones to JSON .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/zone2ldap.1 new/pdns-4.9.2/docs/zone2ldap.1 --- old/pdns-4.9.1/docs/zone2ldap.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/zone2ldap.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ZONE2LDAP" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "ZONE2LDAP" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME zone2ldap \- convert zonefiles to ldif .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/docs/zone2sql.1 new/pdns-4.9.2/docs/zone2sql.1 --- old/pdns-4.9.1/docs/zone2sql.1 2024-05-28 09:45:48.000000000 +0200 +++ new/pdns-4.9.2/docs/zone2sql.1 2024-09-30 12:34:01.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ZONE2SQL" "1" "May 28, 2024" "" "PowerDNS Authoritative Server" +.TH "ZONE2SQL" "1" "Sep 30, 2024" "" "PowerDNS Authoritative Server" .SH NAME zone2sql \- convert BIND zones to SQL .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/Makefile.in new/pdns-4.9.2/ext/Makefile.in --- old/pdns-4.9.1/ext/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/ext/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -276,6 +276,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/arc4random/Makefile.in new/pdns-4.9.2/ext/arc4random/Makefile.in --- old/pdns-4.9.1/ext/arc4random/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/ext/arc4random/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -271,6 +271,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/ipcrypt/Makefile.in new/pdns-4.9.2/ext/ipcrypt/Makefile.in --- old/pdns-4.9.1/ext/ipcrypt/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/ext/ipcrypt/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -268,6 +268,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/json11/Makefile.in new/pdns-4.9.2/ext/json11/Makefile.in --- old/pdns-4.9.1/ext/json11/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/ext/json11/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -286,6 +286,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/json11/json11.cpp new/pdns-4.9.2/ext/json11/json11.cpp --- old/pdns-4.9.1/ext/json11/json11.cpp 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/ext/json11/json11.cpp 2024-09-30 12:32:35.000000000 +0200 @@ -22,6 +22,7 @@ #include "json11.hpp" #include <cassert> #include <cmath> +#include <cstdint> #include <cstdlib> #include <cstdio> #include <limits> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/yahttp/Makefile.in new/pdns-4.9.2/ext/yahttp/Makefile.in --- old/pdns-4.9.1/ext/yahttp/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/ext/yahttp/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -277,6 +277,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/yahttp/yahttp/Makefile.in new/pdns-4.9.2/ext/yahttp/yahttp/Makefile.in --- old/pdns-4.9.1/ext/yahttp/yahttp/Makefile.in 2024-05-28 09:45:02.000000000 +0200 +++ new/pdns-4.9.2/ext/yahttp/yahttp/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -286,6 +286,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/ext/yahttp/yahttp/router.cpp new/pdns-4.9.2/ext/yahttp/yahttp/router.cpp --- old/pdns-4.9.1/ext/yahttp/yahttp/router.cpp 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/ext/yahttp/yahttp/router.cpp 2024-09-30 12:32:35.000000000 +0200 @@ -49,21 +49,28 @@ rpos = route.size(); upos = requrl.path.size(); break; - } else { - // match until url[upos] or next / if pattern is at end - while (upos < requrl.path.size()) { - if (route[rpos+1] == '\0' && requrl.path[upos] == '/') { - break; - } - if (requrl.path[upos] == route[rpos+1]) { - break; - } - upos++; + } + // match until url[upos] or next / if pattern is at end + while (upos < requrl.path.size()) { + if (route[rpos+1] == '\0' && requrl.path[upos] == '/') { + break; + } + if (requrl.path[upos] == route[rpos+1]) { + break; } - nend = upos; - params[pname] = funcptr::tie(nstart, nend); + upos++; + } + nend = upos; + params[pname] = funcptr::tie(nstart, nend); + if (upos > 0) { + upos--; + } + else { + // If upos is zero, do not decrement it and then increment at bottom of loop, this disturbs Coverity. + // Only increment rpos and continue loop + rpos++; + continue; } - upos--; } else if (route[rpos] != requrl.path[upos]) { break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/Makefile.in new/pdns-4.9.2/modules/Makefile.in --- old/pdns-4.9.1/modules/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -276,6 +276,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/bindbackend/Makefile.in new/pdns-4.9.2/modules/bindbackend/Makefile.in --- old/pdns-4.9.1/modules/bindbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/bindbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -322,6 +322,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/geoipbackend/Makefile.am new/pdns-4.9.2/modules/geoipbackend/Makefile.am --- old/pdns-4.9.1/modules/geoipbackend/Makefile.am 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/modules/geoipbackend/Makefile.am 2024-09-30 12:32:35.000000000 +0200 @@ -11,4 +11,4 @@ geoipinterface.cc geoipinterface.hh libgeoipbackend_la_LDFLAGS = -module -avoid-version -libgeoipbackend_la_LIBADD = $(YAML_LIBS) $(GEOIP_LIBS) $(MMDB_LIBS) +libgeoipbackend_la_LIBADD = $(YAML_LIBS) $(GEOIP_LIBS) $(MMDB_LIBS) $(CXXFS_LIBS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/geoipbackend/Makefile.in new/pdns-4.9.2/modules/geoipbackend/Makefile.in --- old/pdns-4.9.1/modules/geoipbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/geoipbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -195,7 +195,8 @@ LTLIBRARIES = $(pkglib_LTLIBRARIES) am__DEPENDENCIES_1 = libgeoipbackend_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_libgeoipbackend_la_OBJECTS = geoipbackend.lo geoipinterface-dat.lo \ geoipinterface-mmdb.lo geoipinterface.lo libgeoipbackend_la_OBJECTS = $(am_libgeoipbackend_la_OBJECTS) @@ -325,6 +326,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -533,7 +535,7 @@ geoipinterface.cc geoipinterface.hh libgeoipbackend_la_LDFLAGS = -module -avoid-version -libgeoipbackend_la_LIBADD = $(YAML_LIBS) $(GEOIP_LIBS) $(MMDB_LIBS) +libgeoipbackend_la_LIBADD = $(YAML_LIBS) $(GEOIP_LIBS) $(MMDB_LIBS) $(CXXFS_LIBS) all: all-am .SUFFIXES: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/gmysqlbackend/Makefile.in new/pdns-4.9.2/modules/gmysqlbackend/Makefile.in --- old/pdns-4.9.1/modules/gmysqlbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/gmysqlbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -323,6 +323,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/gmysqlbackend/gmysqlbackend.cc new/pdns-4.9.2/modules/gmysqlbackend/gmysqlbackend.cc --- old/pdns-4.9.1/modules/gmysqlbackend/gmysqlbackend.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/modules/gmysqlbackend/gmysqlbackend.cc 2024-09-30 12:32:35.000000000 +0200 @@ -132,7 +132,7 @@ declare(suffix, "update-account-query", "", "update domains set account=? where name=?"); declare(suffix, "update-serial-query", "", "update domains set notified_serial=? where id=?"); declare(suffix, "update-lastcheck-query", "", "update domains set last_check=? where id=?"); - declare(suffix, "info-all-primary-query", "", "select d.id, d.name, d.type, d.notified_serial,d.options, d.catalog,r.content from records r join domains d on r.domain_id=d.id and r.name=d.name where r.type='SOA' and r.disabled=0 and d.type in ('MASTER', 'PRODUCER')"); + declare(suffix, "info-all-primary-query", "", "select d.id, d.name, d.type, d.notified_serial,d.options, d.catalog,r.content from records r join domains d on r.domain_id=d.id and r.name=d.name where r.type='SOA' and r.disabled=0 and d.type in ('MASTER', 'PRODUCER') order by d.id"); declare(suffix, "info-producer-members-query", "", "select domains.id, domains.name, domains.options from records join domains on records.domain_id=domains.id and records.name=domains.name where domains.type='MASTER' and domains.catalog=? and records.type='SOA' and records.disabled=0"); declare(suffix, "info-consumer-members-query", "", "select id, name, options, master from domains where type='SLAVE' and catalog=?"); declare(suffix, "delete-domain-query", "", "delete from domains where name=?"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/godbcbackend/Makefile.in new/pdns-4.9.2/modules/godbcbackend/Makefile.in --- old/pdns-4.9.1/modules/godbcbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/godbcbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -323,6 +323,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/godbcbackend/godbcbackend.cc new/pdns-4.9.2/modules/godbcbackend/godbcbackend.cc --- old/pdns-4.9.1/modules/godbcbackend/godbcbackend.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/modules/godbcbackend/godbcbackend.cc 2024-09-30 12:32:35.000000000 +0200 @@ -112,7 +112,7 @@ declare(suffix, "update-account-query", "", "update domains set account=? where name=?"); declare(suffix, "update-serial-query", "", "update domains set notified_serial=? where id=?"); declare(suffix, "update-lastcheck-query", "", "update domains set last_check=? where id=?"); - declare(suffix, "info-all-primary-query", "", "select domains.id, domains.name, domains.type, domains.notified_serial, domains.options, domains.catalog, records.content from records join domains on records.domain_id=domains.id and records.name=domains.name where records.type='SOA' and records.disabled=0 and domains.type in ('MASTER', 'PRODUCER')"); + declare(suffix, "info-all-primary-query", "", "select domains.id, domains.name, domains.type, domains.notified_serial, domains.options, domains.catalog, records.content from records join domains on records.domain_id=domains.id and records.name=domains.name where records.type='SOA' and records.disabled=0 and domains.type in ('MASTER', 'PRODUCER') order by domains.id"); declare(suffix, "info-producer-members-query", "", "select domains.id, domains.name, domains.options from records join domains on records.domain_id=domains.id and records.name=domains.name where domains.type='MASTER' and domains.catalog=? and records.type='SOA' and records.disabled=0"); declare(suffix, "info-consumer-members-query", "", "select id, name, options, master from domains where type='SLAVE' and catalog=?"); declare(suffix, "delete-domain-query", "", "delete from domains where name=?"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/gpgsqlbackend/Makefile.in new/pdns-4.9.2/modules/gpgsqlbackend/Makefile.in --- old/pdns-4.9.1/modules/gpgsqlbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/gpgsqlbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -323,6 +323,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/gpgsqlbackend/gpgsqlbackend.cc new/pdns-4.9.2/modules/gpgsqlbackend/gpgsqlbackend.cc --- old/pdns-4.9.1/modules/gpgsqlbackend/gpgsqlbackend.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/modules/gpgsqlbackend/gpgsqlbackend.cc 2024-09-30 12:32:35.000000000 +0200 @@ -139,7 +139,7 @@ declare(suffix, "update-account-query", "", "update domains set account=$1 where name=$2"); declare(suffix, "update-serial-query", "", "update domains set notified_serial=$1 where id=$2"); declare(suffix, "update-lastcheck-query", "", "update domains set last_check=$1 where id=$2"); - declare(suffix, "info-all-primary-query", "", "select domains.id, domains.name, domains.type, domains.notified_serial, domains.options, domains.catalog, records.content from records join domains on records.domain_id=domains.id and records.name=domains.name where records.type='SOA' and records.disabled=false and domains.type in ('MASTER', 'PRODUCER')"); + declare(suffix, "info-all-primary-query", "", "select domains.id, domains.name, domains.type, domains.notified_serial, domains.options, domains.catalog, records.content from records join domains on records.domain_id=domains.id and records.name=domains.name where records.type='SOA' and records.disabled=false and domains.type in ('MASTER', 'PRODUCER') order by domains.id"); declare(suffix, "info-producer-members-query", "", "select domains.id, domains.name, domains.options from records join domains on records.domain_id=domains.id and records.name=domains.name where domains.type='MASTER' and domains.catalog=$1 and records.type='SOA' and records.disabled=false"); declare(suffix, "info-consumer-members-query", "", "select id, name, options, master from domains where type='SLAVE' and catalog=$1"); declare(suffix, "delete-domain-query", "", "delete from domains where name=$1"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/gsqlite3backend/Makefile.in new/pdns-4.9.2/modules/gsqlite3backend/Makefile.in --- old/pdns-4.9.1/modules/gsqlite3backend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/gsqlite3backend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -321,6 +321,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/gsqlite3backend/gsqlite3backend.cc new/pdns-4.9.2/modules/gsqlite3backend/gsqlite3backend.cc --- old/pdns-4.9.1/modules/gsqlite3backend/gsqlite3backend.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/modules/gsqlite3backend/gsqlite3backend.cc 2024-09-30 12:32:35.000000000 +0200 @@ -125,7 +125,7 @@ declare(suffix, "update-account-query", "", "update domains set account=:account where name=:domain"); declare(suffix, "update-serial-query", "", "update domains set notified_serial=:serial where id=:domain_id"); declare(suffix, "update-lastcheck-query", "", "update domains set last_check=:last_check where id=:domain_id"); - declare(suffix, "info-all-primary-query", "", "select domains.id, domains.name, domains.type, domains.notified_serial, domains.options, domains.catalog, records.content from records join domains on records.domain_id=domains.id and records.name=domains.name where records.type='SOA' and records.disabled=0 and domains.type in ('MASTER', 'PRODUCER')"); + declare(suffix, "info-all-primary-query", "", "select domains.id, domains.name, domains.type, domains.notified_serial, domains.options, domains.catalog, records.content from records join domains on records.domain_id=domains.id and records.name=domains.name where records.type='SOA' and records.disabled=0 and domains.type in ('MASTER', 'PRODUCER') order by domains.id"); declare(suffix, "info-producer-members-query", "", "select domains.id, domains.name, domains.options from records join domains on records.domain_id=domains.id and records.name=domains.name where domains.type='MASTER' and domains.catalog=:catalog and records.type='SOA' and records.disabled=0"); declare(suffix, "info-consumer-members-query", "", "select id, name, options, master from domains where type='SLAVE' and catalog=:catalog"); declare(suffix, "delete-domain-query", "", "delete from domains where name=:domain"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/ldapbackend/Makefile.in new/pdns-4.9.2/modules/ldapbackend/Makefile.in --- old/pdns-4.9.1/modules/ldapbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/ldapbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -327,6 +327,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/lmdbbackend/Makefile.in new/pdns-4.9.2/modules/lmdbbackend/Makefile.in --- old/pdns-4.9.1/modules/lmdbbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/lmdbbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -324,6 +324,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/lua2backend/Makefile.in new/pdns-4.9.2/modules/lua2backend/Makefile.in --- old/pdns-4.9.1/modules/lua2backend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/lua2backend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -321,6 +321,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/pipebackend/Makefile.in new/pdns-4.9.2/modules/pipebackend/Makefile.in --- old/pdns-4.9.1/modules/pipebackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/pipebackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -319,6 +319,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/remotebackend/Makefile.in new/pdns-4.9.2/modules/remotebackend/Makefile.in --- old/pdns-4.9.1/modules/remotebackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/remotebackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -713,6 +713,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/modules/tinydnsbackend/Makefile.in new/pdns-4.9.2/modules/tinydnsbackend/Makefile.in --- old/pdns-4.9.1/modules/tinydnsbackend/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/modules/tinydnsbackend/Makefile.in 2024-09-30 12:32:59.000000000 +0200 @@ -321,6 +321,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/Makefile.am new/pdns-4.9.2/pdns/Makefile.am --- old/pdns-4.9.1/pdns/Makefile.am 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/Makefile.am 2024-09-30 12:32:35.000000000 +0200 @@ -287,6 +287,7 @@ utility.hh \ uuid-utils.hh uuid-utils.cc \ version.cc version.hh \ + views.hh \ webserver.cc webserver.hh \ ws-api.cc ws-api.hh \ ws-auth.cc ws-auth.hh \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/Makefile.in new/pdns-4.9.2/pdns/Makefile.in --- old/pdns-4.9.1/pdns/Makefile.in 2024-05-28 09:45:03.000000000 +0200 +++ new/pdns-4.9.2/pdns/Makefile.in 2024-09-30 12:33:00.000000000 +0200 @@ -783,11 +783,11 @@ trusted-notification-proxy.cc tsigutils.hh tsigutils.cc \ tsigverifier.cc tsigverifier.hh ueberbackend.cc \ ueberbackend.hh unix_semaphore.cc unix_utility.cc utility.hh \ - uuid-utils.hh uuid-utils.cc version.cc version.hh webserver.cc \ - webserver.hh ws-api.cc ws-api.hh ws-auth.cc ws-auth.hh \ - zoneparser-tng.cc lua-record.cc minicurl.cc minicurl.hh \ - sodiumsigners.cc decafsigners.cc ssqlite3.cc ssqlite3.hh \ - pkcs11signers.cc pkcs11signers.hh + uuid-utils.hh uuid-utils.cc version.cc version.hh views.hh \ + webserver.cc webserver.hh ws-api.cc ws-api.hh ws-auth.cc \ + ws-auth.hh zoneparser-tng.cc lua-record.cc minicurl.cc \ + minicurl.hh sodiumsigners.cc decafsigners.cc ssqlite3.cc \ + ssqlite3.hh pkcs11signers.cc pkcs11signers.hh am__dirstamp = $(am__leading_dot)dirstamp @HAVE_LUA_RECORDS_TRUE@am__objects_6 = lua-record.$(OBJEXT) \ @HAVE_LUA_RECORDS_TRUE@ minicurl.$(OBJEXT) @@ -1668,6 +1668,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ +CXXFS_LIBS = @CXXFS_LIBS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -1953,9 +1954,9 @@ trusted-notification-proxy.cc tsigutils.hh tsigutils.cc \ tsigverifier.cc tsigverifier.hh ueberbackend.cc \ ueberbackend.hh unix_semaphore.cc unix_utility.cc utility.hh \ - uuid-utils.hh uuid-utils.cc version.cc version.hh webserver.cc \ - webserver.hh ws-api.cc ws-api.hh ws-auth.cc ws-auth.hh \ - zoneparser-tng.cc $(am__append_12) $(am__append_14) \ + uuid-utils.hh uuid-utils.cc version.cc version.hh views.hh \ + webserver.cc webserver.hh ws-api.cc ws-api.hh ws-auth.cc \ + ws-auth.hh zoneparser-tng.cc $(am__append_12) $(am__append_14) \ $(am__append_16) $(am__append_18) $(am__append_20) pdns_server_LDFLAGS = \ $(AM_LDFLAGS) \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/auth-main.cc new/pdns-4.9.2/pdns/auth-main.cc --- old/pdns-4.9.1/pdns/auth-main.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/auth-main.cc 2024-09-30 12:32:35.000000000 +0200 @@ -242,6 +242,7 @@ ::arg().set("webserver-allow-from", "Webserver/API access is only allowed from these subnets") = "127.0.0.1,::1"; ::arg().set("webserver-loglevel", "Amount of logging in the webserver (none, normal, detailed)") = "normal"; ::arg().set("webserver-max-bodysize", "Webserver/API maximum request/response body size in megabytes") = "2"; + ::arg().set("webserver-connection-timeout", "Webserver/API request/response timeout in seconds") = "5"; ::arg().setSwitch("webserver-hash-plaintext-credentials", "Whether to hash passwords and api keys supplied in plaintext, to prevent keeping the plaintext version in memory at runtime") = "no"; ::arg().setSwitch("query-logging", "Hint backends that queries should be logged") = "no"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/communicator.cc new/pdns-4.9.2/pdns/communicator.cc --- old/pdns-4.9.1/pdns/communicator.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/communicator.cc 2024-09-30 12:32:35.000000000 +0200 @@ -42,7 +42,7 @@ // there can be MANY OF THESE void CommunicatorClass::retrievalLoopThread() { - setThreadName("pdns/comm-retre"); + setThreadName("pdns/comm-retri"); for (;;) { d_suck_sem.wait(); SuckRequest sr; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/dbdnsseckeeper.cc new/pdns-4.9.2/pdns/dbdnsseckeeper.cc --- old/pdns-4.9.1/pdns/dbdnsseckeeper.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/dbdnsseckeeper.cc 2024-09-30 12:32:35.000000000 +0200 @@ -630,7 +630,7 @@ return retval; } -void DNSSECKeeper::getPreRRSIGs(UeberBackend& db, vector<DNSZoneRecord>& rrs, uint32_t signTTL) +void DNSSECKeeper::getPreRRSIGs(UeberBackend& db, vector<DNSZoneRecord>& rrs, uint32_t signTTL, DNSPacket* packet) { if(rrs.empty()) { return; @@ -640,7 +640,7 @@ DNSZoneRecord dzr; - db.lookup(QType(QType::RRSIG), !rr.wildcardname.empty() ? rr.wildcardname : rr.dr.d_name, rr.domain_id); + db.lookup(QType(QType::RRSIG), !rr.wildcardname.empty() ? rr.wildcardname : rr.dr.d_name, rr.domain_id, packet); while(db.get(dzr)) { auto rrsig = getRR<RRSIGRecordContent>(dzr.dr); if (rrsig->d_type == rr.dr.d_type) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/dns.cc new/pdns-4.9.2/pdns/dns.cc --- old/pdns-4.9.1/pdns/dns.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/dns.cc 2024-09-30 12:32:35.000000000 +0200 @@ -24,6 +24,7 @@ #endif #include "dns.hh" #include "misc.hh" +#include "views.hh" #include <stdexcept> #include <iostream> #include <boost/algorithm/string.hpp> @@ -102,27 +103,27 @@ } // goal is to hash based purely on the question name, and turn error into 'default' -uint32_t hashQuestion(const uint8_t* packet, uint16_t packet_len, uint32_t init, bool& ok) +uint32_t hashQuestion(const uint8_t* packet, uint16_t packet_len, uint32_t init, bool& wasOK) { if (packet_len < sizeof(dnsheader)) { - ok = false; + wasOK = false; return init; } - // C++ 17 does not have std::u8string_view - std::basic_string_view<uint8_t> name(packet + sizeof(dnsheader), packet_len - sizeof(dnsheader)); - std::basic_string_view<uint8_t>::size_type len = 0; + // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) + pdns::views::UnsignedCharView name(packet + sizeof(dnsheader), packet_len - sizeof(dnsheader)); + pdns::views::UnsignedCharView::size_type len = 0; while (len < name.length()) { uint8_t labellen = name[len++]; if (labellen == 0) { - ok = true; + wasOK = true; // len is name.length() at max as it was < before the increment return burtleCI(name.data(), len, init); } len += labellen; } // We've encountered a label that is too long - ok = false; + wasOK = false; return init; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/dnssecinfra.hh new/pdns-4.9.2/pdns/dnssecinfra.hh --- old/pdns-4.9.1/pdns/dnssecinfra.hh 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/dnssecinfra.hh 2024-09-30 12:32:35.000000000 +0200 @@ -21,6 +21,7 @@ */ #pragma once #include "dnsrecords.hh" +#include "dnspacket.hh" #include <string> #include <vector> @@ -291,7 +292,7 @@ void incrementHash(std::string& raw); void decrementHash(std::string& raw); -void addRRSigs(DNSSECKeeper& dk, UeberBackend& db, const std::set<DNSName>& authMap, vector<DNSZoneRecord>& rrs); +void addRRSigs(DNSSECKeeper& dk, UeberBackend& db, const std::set<DNSName>& authSet, vector<DNSZoneRecord>& rrs, DNSPacket* packet=nullptr); void addTSIG(DNSPacketWriter& pw, TSIGRecordContent& trc, const DNSName& tsigkeyname, const string& tsigsecret, const string& tsigprevious, bool timersonly); bool validateTSIG(const std::string& packet, size_t sigPos, const TSIGTriplet& tt, const TSIGRecordContent& trc, const std::string& previousMAC, const std::string& theirMAC, bool timersOnly, unsigned int dnsHeaderOffset=0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/dnsseckeeper.hh new/pdns-4.9.2/pdns/dnsseckeeper.hh --- old/pdns-4.9.1/pdns/dnsseckeeper.hh 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/dnsseckeeper.hh 2024-09-30 12:32:35.000000000 +0200 @@ -31,6 +31,7 @@ #include <boost/multi_index/sequenced_index.hpp> #include "dnssecinfra.hh" #include "dnsrecords.hh" +#include "dnspacket.hh" #include "ueberbackend.hh" #include "lock.hh" @@ -208,7 +209,7 @@ bool checkNSEC3PARAM(const NSEC3PARAMRecordContent& ns3p, string& msg); bool setNSEC3PARAM(const DNSName& zname, const NSEC3PARAMRecordContent& n3p, const bool& narrow=false); bool unsetNSEC3PARAM(const DNSName& zname); - void getPreRRSIGs(UeberBackend& db, vector<DNSZoneRecord>& rrs, uint32_t signTTL); + void getPreRRSIGs(UeberBackend& db, vector<DNSZoneRecord>& rrs, uint32_t signTTL, DNSPacket* p=nullptr); bool isPresigned(const DNSName& zname, bool useCache=true); bool setPresigned(const DNSName& zname); bool unsetPresigned(const DNSName& zname); @@ -303,7 +304,6 @@ static size_t s_maxEntries; }; -class DNSPacket; uint32_t localtime_format_YYYYMMDDSS(time_t t, uint32_t seq); // for SOA-EDIT uint32_t calculateEditSOA(uint32_t old_serial, DNSSECKeeper& dk, const DNSName& zonename); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/dnssecsigner.cc new/pdns-4.9.2/pdns/dnssecsigner.cc --- old/pdns-4.9.1/pdns/dnssecsigner.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/dnssecsigner.cc 2024-09-30 12:32:35.000000000 +0200 @@ -145,7 +145,7 @@ // this is the entrypoint from DNSPacket static void addSignature(DNSSECKeeper& dk, UeberBackend& db, const DNSName& signer, const DNSName& signQName, const DNSName& wildcardname, uint16_t signQType, uint32_t signTTL, DNSResourceRecord::Place signPlace, - sortedRecords_t& toSign, vector<DNSZoneRecord>& outsigned, uint32_t origTTL) + sortedRecords_t& toSign, vector<DNSZoneRecord>& outsigned, uint32_t origTTL, DNSPacket* packet) { //cerr<<"Asked to sign '"<<signQName<<"'|"<<DNSRecordContent::NumberToType(signQType)<<", "<<toSign.size()<<" records\n"; if(toSign.empty()) @@ -153,7 +153,7 @@ vector<RRSIGRecordContent> rrcs; if(dk.isPresigned(signer)) { //cerr<<"Doing presignatures"<<endl; - dk.getPreRRSIGs(db, outsigned, origTTL); // does it all + dk.getPreRRSIGs(db, outsigned, origTTL, packet); // does it all } else { if(getRRSIGsForRRSET(dk, signer, wildcardname.countLabels() ? wildcardname : signQName, signQType, signTTL, toSign, rrcs) < 0) { @@ -203,7 +203,7 @@ return false; } -void addRRSigs(DNSSECKeeper& dk, UeberBackend& db, const set<DNSName>& authSet, vector<DNSZoneRecord>& rrs) +void addRRSigs(DNSSECKeeper& dk, UeberBackend& db, const set<DNSName>& authSet, vector<DNSZoneRecord>& rrs, DNSPacket* packet) { stable_sort(rrs.begin(), rrs.end(), rrsigncomp); @@ -222,7 +222,7 @@ for(auto pos = rrs.cbegin(); pos != rrs.cend(); ++pos) { if(pos != rrs.cbegin() && (signQType != pos->dr.d_type || signQName != pos->dr.d_name)) { if (getBestAuthFromSet(authSet, authQName, signer)) - addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords, origTTL); + addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords, origTTL, packet); } signedRecords.push_back(*pos); signQName = pos->dr.d_name.makeLowerCase(); @@ -248,6 +248,6 @@ } } if (getBestAuthFromSet(authSet, authQName, signer)) - addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords, origTTL); + addSignature(dk, db, signer, signQName, wildcardQName, signQType, signTTL, signPlace, toSign, signedRecords, origTTL, packet); rrs.swap(signedRecords); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/lua-record.cc new/pdns-4.9.2/pdns/lua-record.cc --- old/pdns-4.9.1/pdns/lua-record.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/lua-record.cc 2024-09-30 12:32:35.000000000 +0200 @@ -90,6 +90,8 @@ private: void checkURL(const CheckDesc& cd, const bool status, const bool first = false) { + setThreadName("pdns/lua-c-url"); + string remstring; try { int timeout = 2; @@ -138,6 +140,7 @@ } } void checkTCP(const CheckDesc& cd, const bool status, const bool first = false) { + setThreadName("pdns/lua-c-tcp"); try { int timeout = 2; if (cd.opts.count("timeout")) { @@ -168,6 +171,7 @@ } void checkThread() { + setThreadName("pdns/luaupcheck"); while (true) { std::chrono::system_clock::time_point checkStart = std::chrono::system_clock::now(); @@ -200,6 +204,10 @@ statuses->erase(it); } } + + // set thread name again, in case std::async surprised us by doing work in this thread + setThreadName("pdns/luaupcheck"); + std::this_thread::sleep_until(checkStart + std::chrono::seconds(g_luaHealthChecksInterval)); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/packethandler.cc new/pdns-4.9.2/pdns/packethandler.cc --- old/pdns-4.9.1/pdns/packethandler.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/packethandler.cc 2024-09-30 12:32:35.000000000 +0200 @@ -1817,7 +1817,7 @@ } } if(doSigs) - addRRSigs(d_dk, B, authSet, r->getRRS()); + addRRSigs(d_dk, B, authSet, r->getRRS(), &p); if(PC.enabled() && !noCache && p.couldBeCached()) PC.insert(p, *r, r->getMinTTL()); // in the packet cache diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/pdnsutil.cc new/pdns-4.9.2/pdns/pdnsutil.cc --- old/pdns-4.9.1/pdns/pdnsutil.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/pdnsutil.cc 2024-09-30 12:32:35.000000000 +0200 @@ -378,6 +378,7 @@ if(rr.qtype.getCode() == QType::A || rr.qtype.getCode() == QType::AAAA) { addresses.insert(rr.qname); } +#ifdef HAVE_LUA_RECORDS if(rr.qtype.getCode() == QType::LUA) { shared_ptr<DNSRecordContent> drc(DNSRecordContent::make(rr.qtype.getCode(), QClass::IN, rr.content)); auto luarec = std::dynamic_pointer_cast<LUARecordContent>(drc); @@ -386,6 +387,7 @@ addresses.insert(rr.qname); } } +#endif if(rr.qtype.getCode() == QType::A) { arecords.insert(rr.qname); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/signingpipe.cc new/pdns-4.9.2/pdns/signingpipe.cc --- old/pdns-4.9.1/pdns/signingpipe.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/signingpipe.cc 2024-09-30 12:32:35.000000000 +0200 @@ -1,3 +1,4 @@ +#include "threadname.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -49,6 +50,7 @@ void* ChunkedSigningPipe::helperWorker(ChunkedSigningPipe* csp, int fd) try { + setThreadName("pdns/signer"); csp->worker(fd); return nullptr; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/ssqlite3.cc new/pdns-4.9.2/pdns/ssqlite3.cc --- old/pdns-4.9.1/pdns/ssqlite3.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/ssqlite3.cc 2024-09-30 12:32:35.000000000 +0200 @@ -377,7 +377,7 @@ void SSQLite3::startTransaction() { - execute("begin"); + execute("begin immediate"); m_in_transaction = true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/test-distributor_hh.cc new/pdns-4.9.2/pdns/test-distributor_hh.cc --- old/pdns-4.9.1/pdns/test-distributor_hh.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/test-distributor_hh.cc 2024-09-30 12:32:35.000000000 +0200 @@ -6,7 +6,7 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include <stdlib.h> +#include <cstdlib> #include <unistd.h> #include <boost/test/unit_test.hpp> #include "distributor.hh" @@ -65,7 +65,7 @@ struct BackendSlow { - std::unique_ptr<DNSPacket> question(Question&) + std::unique_ptr<DNSPacket> question([[maybe_unused]] Question& query) { if (d_shouldSleep) { /* only sleep once per distributor thread, otherwise @@ -80,10 +80,10 @@ bool d_shouldSleep{true}; }; -static std::atomic<int> g_receivedAnswers1; +static std::atomic<size_t> s_receivedAnswers; static void report1(std::unique_ptr<DNSPacket>& /* A */, int /* B */) { - g_receivedAnswers1++; + s_receivedAnswers++; } BOOST_AUTO_TEST_CASE(test_distributor_queue) { @@ -93,17 +93,31 @@ S.declare("servfail-packets","Number of times a server-failed packet was sent out"); S.declare("timedout-packets", "timedout-packets"); - auto d=Distributor<DNSPacket, Question, BackendSlow>::Create(2); + s_receivedAnswers.store(0); + auto* distributor = Distributor<DNSPacket, Question, BackendSlow>::Create(2); + size_t queued = 0; BOOST_CHECK_EXCEPTION( { - int n; // bound should be higher than max-queue-length - for(n=0; n < 2000; ++n) { - Question q; - q.d_dt.set(); - d->question(q, report1); + const size_t bound = 2000; + for (size_t idx = 0; idx < bound; ++idx) { + Question query; + query.d_dt.set(); + ++queued; + distributor->question(query, report1); } }, DistributorFatal, [](DistributorFatal) { return true; }); + + BOOST_CHECK_GT(queued, 1000); + + // now we want to make sure that all queued queries have been processed + // otherwise LeakSanitizer will report a leak, but we are only willing to + // wait up to 3 seconds (3000 milliseconds) + size_t remainingMs = 3000; + while (s_receivedAnswers.load() < queued && remainingMs > 0) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + remainingMs -= 10; + } }; struct BackendDies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/uuid-utils.cc new/pdns-4.9.2/pdns/uuid-utils.cc --- old/pdns-4.9.1/pdns/uuid-utils.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/uuid-utils.cc 2024-09-30 12:32:35.000000000 +0200 @@ -30,6 +30,7 @@ #endif /* BOOST_PENDING_INTEGER_LOG2_HPP */ #endif /* BOOST_VERSION */ +#include <boost/random/mersenne_twister.hpp> #include <boost/uuid/uuid_generators.hpp> // The default of: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/views.hh new/pdns-4.9.2/pdns/views.hh --- old/pdns-4.9.1/pdns/views.hh 1970-01-01 01:00:00.000000000 +0100 +++ new/pdns-4.9.2/pdns/views.hh 2024-09-30 12:32:35.000000000 +0200 @@ -0,0 +1,73 @@ +/* + * This file is part of PowerDNS or dnsdist. + * Copyright -- PowerDNS.COM B.V. and its contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * In addition, for the avoidance of any doubt, permission is granted to + * link this program with OpenSSL and to (re)distribute the binaries + * produced as the result of such linking. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#pragma once + +#include <string_view> + +namespace pdns::views +{ + +class UnsignedCharView +{ +public: + UnsignedCharView(const char* data_, size_t size_) : + view(data_, size_) + { + } + // NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast): No unsigned char view in C++17 + UnsignedCharView(const unsigned char* data_, size_t size_) : + view(reinterpret_cast<const char*>(data_), size_) + { + } + using size_type = std::string_view::size_type; + + [[nodiscard]] const unsigned char& at(size_type pos) const + { + return reinterpret_cast<const unsigned char&>(view.at(pos)); + } + + [[nodiscard]] const unsigned char& operator[](size_type pos) const + { + return reinterpret_cast<const unsigned char&>(view[pos]); + } + + [[nodiscard]] const unsigned char* data() const + { + return reinterpret_cast<const unsigned char*>(view.data()); + } + // NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast): No unsigned char view in C++17 + + [[nodiscard]] size_t size() const + { + return view.size(); + } + + [[nodiscard]] size_t length() const + { + return view.length(); + } + +private: + std::string_view view; +}; + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/webserver.cc new/pdns-4.9.2/pdns/webserver.cc --- old/pdns-4.9.1/pdns/webserver.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/webserver.cc 2024-09-30 12:32:35.000000000 +0200 @@ -301,12 +301,12 @@ catch(PDNSException &e) { SLOG(g_log<<Logger::Error<<req.logprefix<<"HTTP ISE for \""<< req.url.path << "\": Exception: " << e.reason << endl, log->error(Logr::Error, e.reason, msg, "exception", Logging::Loggable("PDNSException"))); - throw HttpInternalServerErrorException(); + throw HttpInternalServerErrorException(e.reason); } catch(std::exception &e) { SLOG(g_log<<Logger::Error<<req.logprefix<<"HTTP ISE for \""<< req.url.path << "\": STL Exception: " << e.what() << endl, log->error(Logr::Error, e.what(), msg, "exception", Logging::Loggable("std::exception"))); - throw HttpInternalServerErrorException(); + throw HttpInternalServerErrorException(e.what()); } catch(...) { SLOG(g_log<<Logger::Error<<req.logprefix<<"HTTP ISE for \""<< req.url.path << "\": Unknown Exception" << endl, @@ -520,7 +520,7 @@ YaHTTP::AsyncRequestLoader yarl; yarl.initialize(&req); req.max_request_size=d_maxbodysize; - int timeout = 5; + int timeout = d_connectiontimeout; client->setNonBlocking(); try { @@ -588,7 +588,8 @@ d_listenaddress(std::move(listenaddress)), d_port(port), d_server(nullptr), - d_maxbodysize(2*1024*1024) + d_maxbodysize(2*1024*1024), + d_connectiontimeout(5) { YaHTTP::Router::Map("OPTIONS", "/<*url>", [](YaHTTP::Request *req, YaHTTP::Response *resp) { // look for url in routes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/webserver.hh new/pdns-4.9.2/pdns/webserver.hh --- old/pdns-4.9.1/pdns/webserver.hh 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/webserver.hh 2024-09-30 12:32:35.000000000 +0200 @@ -212,6 +212,10 @@ d_maxbodysize = s * 1024 * 1024; } + void setConnectionTimeout(int t) { // in seconds + d_connectiontimeout = t; + } + void setACL(const NetmaskGroup &nmg) { d_acl = nmg; } @@ -285,6 +289,7 @@ std::unique_ptr<CredentialsHolder> d_webserverPassword{nullptr}; ssize_t d_maxbodysize; // in bytes + int d_connectiontimeout; // in seconds NetmaskGroup d_acl; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.9.1/pdns/ws-auth.cc new/pdns-4.9.2/pdns/ws-auth.cc --- old/pdns-4.9.1/pdns/ws-auth.cc 2024-05-28 09:44:43.000000000 +0200 +++ new/pdns-4.9.2/pdns/ws-auth.cc 2024-09-30 12:32:35.000000000 +0200 @@ -117,6 +117,7 @@ d_ws->setACL(acl); d_ws->setMaxBodySize(::arg().asNum("webserver-max-bodysize")); + d_ws->setConnectionTimeout(::arg().asNum("webserver-connection-timeout")); d_ws->bind(); } @@ -444,6 +445,9 @@ vector<DNSResourceRecord> records; vector<Comment> comments; + QType qType = QType::ANY; + DNSName qName; + // load all records + sort { DNSResourceRecord resourceRecord; @@ -451,14 +455,11 @@ domainInfo.backend->list(zonename, static_cast<int>(domainInfo.id), true); // incl. disabled } else { - QType qType; - if (req->getvars.count("rrset_type") == 0) { - qType = QType::ANY; - } - else { + qName = DNSName(req->getvars["rrset_name"]); + if (req->getvars.count("rrset_type") != 0) { qType = req->getvars["rrset_type"]; } - domainInfo.backend->lookup(qType, DNSName(req->getvars["rrset_name"]), static_cast<int>(domainInfo.id)); + domainInfo.backend->lookup(qType, qName, static_cast<int>(domainInfo.id)); } while (domainInfo.backend->get(resourceRecord)) { if (resourceRecord.qtype.getCode() == 0) { @@ -482,7 +483,9 @@ Comment comment; domainInfo.backend->listComments(domainInfo.id); while (domainInfo.backend->getComment(comment)) { - comments.push_back(comment); + if ((qName.empty() || comment.qname == qName) && (qType == QType::ANY || comment.qtype == qType)) { + comments.push_back(comment); + } } sort(comments.begin(), comments.end(), [](const Comment& rrA, const Comment& rrB) { /* if you ever want to update this comparison function, ++++++ series ++++++ --- /var/tmp/diff_new_pack.SfpzOO/_old 2024-11-05 15:41:59.108499920 +0100 +++ /var/tmp/diff_new_pack.SfpzOO/_new 2024-11-05 15:41:59.112500088 +0100 @@ -1,4 +1,3 @@ pdns-4.0.3_allow_dacoverride_in_capset.patch pdns-4.9.0-fix_boost.patch -powerdns-5_1_1-2_fix-build-with-boost-1_86_0.patch