Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pdns for openSUSE:Factory checked in at 2021-02-09 21:16:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pdns (Old) and /work/SRC/openSUSE:Factory/.pdns.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdns" Tue Feb 9 21:16:20 2021 rev:74 rq:870247 version:4.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/pdns/pdns.changes 2020-12-28 14:51:27.379418093 +0100 +++ /work/SRC/openSUSE:Factory/.pdns.new.28504/pdns.changes 2021-02-09 21:16:21.834780589 +0100 @@ -1,0 +2,17 @@ +Mon Feb 8 11:14:53 UTC 2021 - Michael Str??der <[email protected]> + +- Update to 4.4.1 + * Improvements + - debian packaging update #9965 + - dockerfiles: do not claim equivs-dummy is built from the pdns source package #9953 + - Fix missing #include for gcc-11#9952 + - lmdb: Do a mdb_readers_check to clean up stale readers on database load #9946 + * Bug Fixes + - fix TCP answer counters #10008 + - run deleteDomain() inside a transaction #10039 + - lmdb: do not reuse backend that has seen corrupted data #9985 + - lmdb: serialise LMDBBackend construction to ensure only a single schema upgrade is attempted #9949 + - backport some asan/ubsan fixes #9923 + - pdnsutil edit-zone: do not exit on ZoneParser exception #9912 + +------------------------------------------------------------------- Old: ---- pdns-4.4.0.tar.bz2 pdns-4.4.0.tar.bz2.sig New: ---- pdns-4.4.1.tar.bz2 pdns-4.4.1.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pdns.spec ++++++ --- /var/tmp/diff_new_pack.LJFG3W/_old 2021-02-09 21:16:22.558781412 +0100 +++ /var/tmp/diff_new_pack.LJFG3W/_new 2021-02-09 21:16:22.562781418 +0100 @@ -1,7 +1,7 @@ # # spec file for package pdns # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -51,7 +51,7 @@ %define services %{name}.service %{name}@.service %{?ixfrdist_services} Name: pdns -Version: 4.4.0 +Version: 4.4.1 Release: 0 Summary: Authoritative-only nameserver License: GPL-2.0-only ++++++ pdns-4.4.0.tar.bz2 -> pdns-4.4.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/configure new/pdns-4.4.1/configure --- old/pdns-4.4.0/configure 2020-12-17 15:49:10.000000000 +0100 +++ new/pdns-4.4.1/configure 2021-02-06 23:45:15.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for pdns 4.4.0. +# Generated by GNU Autoconf 2.69 for pdns 4.4.1. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='pdns' PACKAGE_TARNAME='pdns' -PACKAGE_VERSION='4.4.0' -PACKAGE_STRING='pdns 4.4.0' +PACKAGE_VERSION='4.4.1' +PACKAGE_STRING='pdns 4.4.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1632,7 +1632,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.4.0 to adapt to many kinds of systems. +\`configure' configures pdns 4.4.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1703,7 +1703,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pdns 4.4.0:";; + short | recursive ) echo "Configuration of pdns 4.4.1:";; esac cat <<\_ACEOF @@ -1950,7 +1950,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pdns configure 4.4.0 +pdns configure 4.4.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2543,7 +2543,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.4.0, which was +It was created by pdns $as_me 4.4.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3427,7 +3427,7 @@ # Define the identity of the package. PACKAGE='pdns' - VERSION='4.4.0' + VERSION='4.4.1' cat >>confdefs.h <<_ACEOF @@ -27412,7 +27412,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.4.0, which was +This file was extended by pdns $as_me 4.4.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -27478,7 +27478,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -pdns config.status 4.4.0 +pdns config.status 4.4.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/configure.ac new/pdns-4.4.1/configure.ac --- old/pdns-4.4.0/configure.ac 2020-12-17 15:48:57.000000000 +0100 +++ new/pdns-4.4.1/configure.ac 2021-02-06 23:45:06.000000000 +0100 @@ -1,6 +1,6 @@ AC_PREREQ([2.61]) -AC_INIT([pdns], [4.4.0]) +AC_INIT([pdns], [4.4.1]) AC_CONFIG_SRCDIR([pdns/receiver.cc]) AC_CONFIG_MACRO_DIR([m4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/calidns.1 new/pdns-4.4.1/docs/calidns.1 --- old/pdns-4.4.0/docs/calidns.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/calidns.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "CALIDNS" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "CALIDNS" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME calidns \- A DNS recursor testing tool . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnsbulktest.1 new/pdns-4.4.1/docs/dnsbulktest.1 --- old/pdns-4.4.0/docs/dnsbulktest.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnsbulktest.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSBULKTEST" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSBULKTEST" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnsbulktest \- A debugging tool for intermittent resolver failures . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnsgram.1 new/pdns-4.4.1/docs/dnsgram.1 --- old/pdns-4.4.0/docs/dnsgram.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnsgram.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSGRAM" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSGRAM" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnsgram \- A debugging tool for intermittent resolver failures . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnspcap2calidns.1 new/pdns-4.4.1/docs/dnspcap2calidns.1 --- old/pdns-4.4.0/docs/dnspcap2calidns.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnspcap2calidns.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSPCAP2CALIDNS" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSPCAP2CALIDNS" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnspcap2calidns \- A tool to convert PCAPs of DNS traffic to calidns input . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnspcap2protobuf.1 new/pdns-4.4.1/docs/dnspcap2protobuf.1 --- old/pdns-4.4.0/docs/dnspcap2protobuf.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnspcap2protobuf.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSPCAP2PROTOBUF" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSPCAP2PROTOBUF" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnspcap2protobuf \- A tool to convert PCAPs of DNS traffic to PowerDNS Protobuf . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnsreplay.1 new/pdns-4.4.1/docs/dnsreplay.1 --- old/pdns-4.4.0/docs/dnsreplay.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnsreplay.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSREPLAY" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSREPLAY" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnsreplay \- A PowerDNS nameserver debugging tool . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnsscan.1 new/pdns-4.4.1/docs/dnsscan.1 --- old/pdns-4.4.0/docs/dnsscan.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnsscan.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSSCAN" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSSCAN" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnsscan \- List the amount of queries per qtype in a pcap . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnsscope.1 new/pdns-4.4.1/docs/dnsscope.1 --- old/pdns-4.4.0/docs/dnsscope.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnsscope.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSSCOPE" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSSCOPE" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnsscope \- A PowerDNS nameserver debugging tool . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnstcpbench.1 new/pdns-4.4.1/docs/dnstcpbench.1 --- old/pdns-4.4.0/docs/dnstcpbench.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnstcpbench.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSTCPBENCH" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSTCPBENCH" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnstcpbench \- tool to perform TCP benchmarking of nameservers . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dnswasher.1 new/pdns-4.4.1/docs/dnswasher.1 --- old/pdns-4.4.0/docs/dnswasher.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dnswasher.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSWASHER" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DNSWASHER" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dnswasher \- A PowerDNS nameserver debugging tool . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/dumresp.1 new/pdns-4.4.1/docs/dumresp.1 --- old/pdns-4.4.0/docs/dumresp.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/dumresp.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DUMRESP" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "DUMRESP" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME dumresp \- A dumb DNS responder . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/ixfrdist.1 new/pdns-4.4.1/docs/ixfrdist.1 --- old/pdns-4.4.0/docs/ixfrdist.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/ixfrdist.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "IXFRDIST" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "IXFRDIST" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME ixfrdist \- An IXFR/AXFR-only server that re-distributes zones . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/ixfrdist.yml.5 new/pdns-4.4.1/docs/ixfrdist.yml.5 --- old/pdns-4.4.0/docs/ixfrdist.yml.5 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/ixfrdist.yml.5 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "IXFRDIST.YML" "5" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "IXFRDIST.YML" "5" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME ixfrdist.yml \- The ixfrdist configuration file . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/ixplore.1 new/pdns-4.4.1/docs/ixplore.1 --- old/pdns-4.4.0/docs/ixplore.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/ixplore.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "IXPLORE" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "IXPLORE" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME ixplore \- A tool that provides insights into IXFRs . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/nproxy.1 new/pdns-4.4.1/docs/nproxy.1 --- old/pdns-4.4.0/docs/nproxy.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/nproxy.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NPROXY" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "NPROXY" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME nproxy \- DNS notification proxy . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/nsec3dig.1 new/pdns-4.4.1/docs/nsec3dig.1 --- old/pdns-4.4.0/docs/nsec3dig.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/nsec3dig.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NSEC3DIG" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "NSEC3DIG" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME nsec3dig \- Show and validate NSEC3 proofs . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/pdns_control.1 new/pdns-4.4.1/docs/pdns_control.1 --- old/pdns-4.4.0/docs/pdns_control.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/pdns_control.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNS_CONTROL" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "PDNS_CONTROL" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME pdns_control \- Control the PowerDNS nameserver . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/pdns_notify.1 new/pdns-4.4.1/docs/pdns_notify.1 --- old/pdns-4.4.0/docs/pdns_notify.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/pdns_notify.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNS_NOTIFY" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "PDNS_NOTIFY" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME pdns_notify \- A simple DNS NOTIFY sender . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/pdns_server.1 new/pdns-4.4.1/docs/pdns_server.1 --- old/pdns-4.4.0/docs/pdns_server.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/pdns_server.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNS_SERVER" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "PDNS_SERVER" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME pdns_server \- The PowerDNS Authoritative Namserver . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/pdnsutil.1 new/pdns-4.4.1/docs/pdnsutil.1 --- old/pdns-4.4.0/docs/pdnsutil.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/pdnsutil.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNSUTIL" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "PDNSUTIL" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME pdnsutil \- PowerDNS record and DNSSEC command and control . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/saxfr.1 new/pdns-4.4.1/docs/saxfr.1 --- old/pdns-4.4.0/docs/saxfr.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/saxfr.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SAXFR" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "SAXFR" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME saxfr \- Perform AXFRs and show information about it . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/sdig.1 new/pdns-4.4.1/docs/sdig.1 --- old/pdns-4.4.0/docs/sdig.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/sdig.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SDIG" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "SDIG" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME sdig \- Perform a DNS query and show the results . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/zone2json.1 new/pdns-4.4.1/docs/zone2json.1 --- old/pdns-4.4.0/docs/zone2json.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/zone2json.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "ZONE2JSON" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "ZONE2JSON" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME zone2json \- convert BIND zones to JSON . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/zone2ldap.1 new/pdns-4.4.1/docs/zone2ldap.1 --- old/pdns-4.4.0/docs/zone2ldap.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/zone2ldap.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "ZONE2LDAP" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "ZONE2LDAP" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME zone2ldap \- convert zonefiles to ldif . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/docs/zone2sql.1 new/pdns-4.4.1/docs/zone2sql.1 --- old/pdns-4.4.0/docs/zone2sql.1 2020-12-17 15:50:44.000000000 +0100 +++ new/pdns-4.4.1/docs/zone2sql.1 2021-02-06 23:46:24.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "ZONE2SQL" "1" "Dec 17, 2020" "" "PowerDNS Authoritative Server" +.TH "ZONE2SQL" "1" "Feb 06, 2021" "" "PowerDNS Authoritative Server" .SH NAME zone2sql \- convert BIND zones to SQL . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/ext/lmdb-safe/lmdb-safe.cc new/pdns-4.4.1/ext/lmdb-safe/lmdb-safe.cc --- old/pdns-4.4.0/ext/lmdb-safe/lmdb-safe.cc 2020-11-16 17:30:04.000000000 +0100 +++ new/pdns-4.4.1/ext/lmdb-safe/lmdb-safe.cc 2021-02-06 23:37:20.000000000 +0100 @@ -46,6 +46,12 @@ mdb_env_close(d_env); throw std::runtime_error("Unable to open database file "+std::string(fname)+": " + MDBError(rc)); } + + if ((flags & MDB_RDONLY) == 0) { + // Check for stale readers to prevent unbridled database growth. + // Only do this when in RW mode since it affects the file. + mdb_reader_check(d_env, nullptr); + } } void MDBEnv::incROTX() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/modules/geoipbackend/geoipbackend.cc new/pdns-4.4.1/modules/geoipbackend/geoipbackend.cc --- old/pdns-4.4.0/modules/geoipbackend/geoipbackend.cc 2020-12-04 10:27:51.000000000 +0100 +++ new/pdns-4.4.1/modules/geoipbackend/geoipbackend.cc 2021-02-06 23:37:20.000000000 +0100 @@ -150,7 +150,8 @@ global_custom_mapping = mapping.as<map<std::string, std::string>>(); } - for(YAML::Node domain : config["domains"]) { + for(YAML::const_iterator _domain = config["domains"].begin(); _domain != config["domains"].end(); _domain++) { + const auto& domain = *_domain; GeoIPDomain dom; dom.id = tmp_domains.size(); dom.domain = DNSName(domain["domain"].as<string>()); @@ -160,8 +161,8 @@ DNSName qname = DNSName(recs->first.as<string>()); vector<GeoIPDNSResourceRecord> rrs; - for(YAML::Node item : recs->second) { - YAML::const_iterator rec = item.begin(); + for(YAML::const_iterator item = recs->second.begin(); item != recs->second.end(); item++) { + YAML::const_iterator rec = item->begin(); GeoIPDNSResourceRecord rr; rr.domain_id = dom.id; rr.ttl = dom.ttl; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/modules/lmdbbackend/lmdbbackend.cc new/pdns-4.4.1/modules/lmdbbackend/lmdbbackend.cc --- old/pdns-4.4.0/modules/lmdbbackend/lmdbbackend.cc 2020-12-17 15:38:25.000000000 +0100 +++ new/pdns-4.4.1/modules/lmdbbackend/lmdbbackend.cc 2021-02-06 23:37:20.000000000 +0100 @@ -32,6 +32,7 @@ #include "pdns/logger.hh" #include "pdns/version.hh" #include "pdns/arguments.hh" +#include "pdns/lock.hh" #include <boost/archive/binary_oarchive.hpp> #include <boost/archive/binary_iarchive.hpp> #include <boost/serialization/vector.hpp> @@ -53,8 +54,14 @@ // List the class version here. Default is 0 BOOST_CLASS_VERSION(LMDBBackend::KeyDataDB, 1) +static std::mutex s_lmdbOpenUpgradeLock; + LMDBBackend::LMDBBackend(const std::string& suffix) { + // we lock to avoid a race condition when we do a schema upgrade during startup + // non-upgrade startups should be very cheap so this lock should not hurt performance + std::lock_guard<std::mutex> l(s_lmdbOpenUpgradeLock); + setArgPrefix("lmdb"+suffix); string syncMode = toLower(getArg("sync-mode")); @@ -544,6 +551,8 @@ bool LMDBBackend::upgradeToSchemav3() { + g_log << Logger::Info<<"Upgrading LMDB schema"<<endl; + for(auto i = 0; i < d_shards; i++) { string filename = getArg("filename")+"-"+std::to_string(i); if (rename(filename.c_str(), (filename+"-old").c_str()) < 0) { @@ -772,20 +781,24 @@ key = d_currentKey.get<string_view>(); } - const auto& drr = d_currentrrset.at(d_currentrrsetpos++); + try { + const auto& drr = d_currentrrset.at(d_currentrrsetpos++); + + rr.dr.d_name = compoundOrdername::getQName(key) + d_lookupdomain; + rr.domain_id = compoundOrdername::getDomainID(key); + rr.dr.d_type = compoundOrdername::getQType(key).getCode(); + rr.dr.d_ttl = drr.ttl; + rr.dr.d_content = deserializeContentZR(rr.dr.d_type, rr.dr.d_name, drr.content); + rr.auth = drr.auth; - rr.dr.d_name = compoundOrdername::getQName(key) + d_lookupdomain; - rr.domain_id = compoundOrdername::getDomainID(key); - rr.dr.d_type = compoundOrdername::getQType(key).getCode(); - rr.dr.d_ttl = drr.ttl; - rr.dr.d_content = deserializeContentZR(rr.dr.d_type, rr.dr.d_name, drr.content); - rr.auth = drr.auth; - - if(d_currentrrsetpos >= d_currentrrset.size()) { - d_currentrrset.clear(); - if(d_getcursor->next(d_currentKey, d_currentVal) || d_currentKey.get<StringView>().rfind(d_matchkey, 0) != 0) { - d_getcursor.reset(); + if(d_currentrrsetpos >= d_currentrrset.size()) { + d_currentrrset.clear(); + if(d_getcursor->next(d_currentKey, d_currentVal) || d_currentKey.get<StringView>().rfind(d_matchkey, 0) != 0) { + d_getcursor.reset(); + } } + } catch (const std::exception &e) { + throw PDNSException(e.what()); } break; @@ -833,7 +846,10 @@ serFromString(val.get<string_view>(), rr); if(rr.content.size() >= 5 * sizeof(uint32_t)) { - uint32_t serial = *reinterpret_cast<uint32_t*>(&rr.content[rr.content.size() - (5 * sizeof(uint32_t))]); + uint32_t serial; + // a SOA has five 32 bit fields, the first of which is the serial + // there are two variable length names before the serial, so we calculate from the back + memcpy(&serial, &rr.content[rr.content.size() - (5 * sizeof(uint32_t))], sizeof(serial)); di.serial = ntohl(serial); } } @@ -948,7 +964,10 @@ serFromString(val.get<string_view>(), rr); if(rr.content.size() >= 5 * sizeof(uint32_t)) { - uint32_t serial = *reinterpret_cast<uint32_t*>(&rr.content[rr.content.size() - (5 * sizeof(uint32_t))]); + uint32_t serial; + // a SOA has five 32 bit fields, the first of which is the serial + // there are two variable length names before the serial, so we calculate from the back + memcpy(&serial, &rr.content[rr.content.size() - (5 * sizeof(uint32_t))], sizeof(serial)); di.serial = ntohl(serial); } } else if(!include_disabled) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/modules/remotebackend/remotebackend.cc new/pdns-4.4.1/modules/remotebackend/remotebackend.cc --- old/pdns-4.4.0/modules/remotebackend/remotebackend.cc 2020-11-16 17:30:04.000000000 +0100 +++ new/pdns-4.4.1/modules/remotebackend/remotebackend.cc 2021-02-06 23:37:20.000000000 +0100 @@ -607,7 +607,7 @@ for(const auto& master: obj["masters"].array_items()) di.masters.push_back(ComboAddress(master.string_value(), 53)); - di.notified_serial = static_cast<unsigned int>(doubleFromJson(obj, "notified_serial", -1)); + di.notified_serial = static_cast<unsigned int>(doubleFromJson(obj, "notified_serial", 0)); di.serial = static_cast<unsigned int>(obj["serial"].number_value()); di.last_check = static_cast<time_t>(obj["last_check"].number_value()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/backends/gsql/gsqlbackend.cc new/pdns-4.4.1/pdns/backends/gsql/gsqlbackend.cc --- old/pdns-4.4.0/pdns/backends/gsql/gsqlbackend.cc 2020-11-16 17:30:04.000000000 +0100 +++ new/pdns-4.4.1/pdns/backends/gsql/gsqlbackend.cc 2021-02-06 23:37:20.000000000 +0100 @@ -1328,6 +1328,10 @@ bool GSQLBackend::deleteDomain(const DNSName &domain) { + if (!d_inTransaction) { + throw PDNSException("deleteDomain called outside of transaction"); + } + DomainInfo di; if (!getDomainInfo(domain, di)) { return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/effective_tld_names.dat new/pdns-4.4.1/pdns/effective_tld_names.dat --- old/pdns-4.4.0/pdns/effective_tld_names.dat 2020-12-17 15:49:53.000000000 +0100 +++ new/pdns-4.4.1/pdns/effective_tld_names.dat 2021-02-06 23:45:44.000000000 +0100 @@ -6805,6 +6805,9 @@ // xn--90ae ("bg", Bulgarian) : BG ???? +// xn--mgbcpq6gpa1a ("albahrain", Arabic) : BH +?????????????? + // xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY // Operated by .by registry ?????? @@ -6937,6 +6940,9 @@ // xn--80ao21a ("Kaz", Kazakh) : KZ ?????? +// xn--q7ce6a ("Lao", Lao) : LA +????????? + // xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK // https://nic.lk ???????????? @@ -7062,7 +7068,13 @@ xxx // ye : http://www.y.net.ye/services/domain_name.htm -*.ye +ye +com.ye +edu.ye +gov.ye +net.ye +mil.ye +org.ye // za : https://www.zadna.org.za/content/page/domain-information/ ac.za @@ -7111,7 +7123,7 @@ // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-12-11T13:40:43Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-12-21T16:35:44Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7335,7 +7347,7 @@ // avianca : 2015-01-08 Avianca Holdings S.A. avianca -// aws : 2015-06-25 Amazon Registry Services, Inc. +// aws : 2015-06-25 AWS Registry LLC aws // axa : 2013-12-19 AXA Group Operations SAS @@ -10786,6 +10798,11 @@ // Submitted by Apigee Security Team <[email protected]> apigee.io +// Appspace : https://www.appspace.com +// Submitted by Appspace Security Team <[email protected]> +appspacehosted.com +appspaceusercontent.com + // Aptible : https://www.aptible.com/ // Submitted by Thomas Orozco <[email protected]> on-aptible.com @@ -10990,6 +11007,10 @@ // Submitted by Mathilde Blanchemanche <[email protected]> clic2000.net +// ClickRising : https://clickrising.com/ +// Submitted by Umut Gumeli <[email protected]> +clickrising.net + // Cloud66 : https://www.cloud66.com/ // Submitted by Khash Sajadi <[email protected]> c66.me @@ -11771,10 +11792,6 @@ fastvps.site myfast.space -// Featherhead : https://featherhead.xyz/ -// Submitted by Simon Menke <[email protected]> -fhapp.xyz - // Fedora : https://fedoraproject.org/ // submitted by Patrick Uiterwijk <[email protected]> fedorainfracloud.org @@ -11812,6 +11829,10 @@ // Submitted by Chris Raynor <[email protected]> firebaseapp.com +// Firewebkit : https://www.firewebkit.com +// Submitted by Majid Qureshi <[email protected]> +fireweb.app + // FLAP : https://www.flap.cloud // Submitted by Louis Chemineau <[email protected]> flap.id @@ -11843,6 +11864,10 @@ // Submitted by Daniel Stone <[email protected]> freedesktop.org +// freemyip.com : https://freemyip.com +// Submitted by Cadence <[email protected]> +freemyip.com + // FunkFeuer - Verein zur F??rderung freier Netze : https://www.funkfeuer.at // Submitted by Daniel A. Maierhofer <[email protected]> wien.funkfeuer.at @@ -11874,6 +11899,10 @@ lab.ms cdn-edges.net +// Ghost Foundation : https://ghost.org +// Submitted by Matt Hanley <[email protected]> +ghost.io + // GitHub, Inc. // Submitted by Patrick Toomey <[email protected]> github.io @@ -12096,6 +12125,14 @@ // Submitted by Hannu Aronsson <[email protected]> iki.fi +// Incsub, LLC: https://incsub.com/ +// Submitted by Aaron Edwards <[email protected]> +smushcdn.com +wphostedmail.com +wpmucdn.com +tempurl.host +wpmudev.host + // Individual Network Berlin e.V. : https://www.in-berlin.de/ // Submitted by Christian Seitz <[email protected]> dyn-berlin.de @@ -12306,6 +12343,11 @@ // Submitted by DisposaBoy <[email protected]> oya.to +// Katholieke Universiteit Leuven: https://www.kuleuven.be +// Submitted by Abuse KU Leuven <[email protected]> +kuleuven.cloud +ezproxy.kuleuven.be + // .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf co.krd edu.krd @@ -12501,8 +12543,11 @@ // Submitted by Paul Cammish <[email protected]> hostedpi.com customer.mythic-beasts.com +caracal.mythic-beasts.com +fentiger.mythic-beasts.com lynx.mythic-beasts.com ocelot.mythic-beasts.com +oncilla.mythic-beasts.com onza.mythic-beasts.com sphinx.mythic-beasts.com vs.mythic-beasts.com @@ -12797,6 +12842,11 @@ // Submitted by Duarte Santos <[email protected]> outsystemscloud.com +// OVHcloud: https://ovhcloud.com +// Submitted by Vincent Cass?? <[email protected]> +*.webpaas.ovh.net +*.hosting.ovh.net + // OwnProvider GmbH: http://www.ownprovider.com // Submitted by Jan Moennich <[email protected]> ownprovider.com @@ -13072,6 +13122,10 @@ // Submitted by Alex Bowers <[email protected]> myshopblocks.com +// Shopify : https://www.shopify.com +// Submitted by Alex Richter <[email protected]> +myshopify.com + // Shopit : https://www.shopitcommerce.com/ // Submitted by Craig McMahon <[email protected]> shopitsite.com @@ -13106,6 +13160,10 @@ // Submitted by Aral Balkan <[email protected]> small-web.org +// Snowplow Analytics : https://snowplowanalytics.com/ +// Submitted by Ian Streeter <[email protected]> +try-snowplow.com + // Stackhero : https://www.stackhero.io // Submitted by Adrien Gillon <[email protected]> stackhero-network.com @@ -13154,11 +13212,6 @@ // Submitted by Dan Miller <[email protected]> temp-dns.com -// Swisscom Application Cloud: https://developer.swisscom.com -// Submitted by Matthias.Winzeler <[email protected]> -applicationcloud.io -scapp.io - // Symfony, SAS : https://symfony.com/ // Submitted by Fabien Potencier <[email protected]> *.s5y.io @@ -13227,6 +13280,11 @@ azimuth.network tlon.network +// Tor Project, Inc. : https://torproject.org +// Submitted by Antoine Beaupr?? <[email protected] +torproject.net +pages.torproject.net + // TownNews.com : http://www.townnews.com // Submitted by Dustin Ward <[email protected]> bloxcms.com diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/lua-record.cc new/pdns-4.4.1/pdns/lua-record.cc --- old/pdns-4.4.0/pdns/lua-record.cc 2020-11-16 17:30:05.000000000 +0100 +++ new/pdns-4.4.1/pdns/lua-record.cc 2021-02-06 23:37:20.000000000 +0100 @@ -1,3 +1,4 @@ +#include <thread> #include <future> #include <mutex> #include <boost/format.hpp> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/pdnsutil.cc new/pdns-4.4.1/pdns/pdnsutil.cc --- old/pdns-4.4.0/pdns/pdnsutil.cc 2020-12-01 09:46:50.000000000 +0100 +++ new/pdns-4.4.1/pdns/pdnsutil.cc 2021-02-06 23:37:20.000000000 +0100 @@ -819,8 +819,18 @@ return EXIT_FAILURE; } - if(di.backend->deleteDomain(zone)) - return EXIT_SUCCESS; + di.backend->startTransaction(zone, -1); + try { + if(di.backend->deleteDomain(zone)) { + di.backend->commitTransaction(); + return EXIT_SUCCESS; + } + } catch (...) { + di.backend->abortTransaction(); + throw; + } + + di.backend->abortTransaction(); cerr<<"Failed to delete domain '"<<zone<<"'"<<endl;; return EXIT_FAILURE; @@ -1062,6 +1072,12 @@ auto fnum = zpt.getLineNumAndFile(); gotoline = fnum.second; goto reAsk; + } + catch(PDNSException& e) { + cerr<<"Problem: "<<e.reason<<" "<<zpt.getLineOfFile()<<endl; + auto fnum = zpt.getLineNumAndFile(); + gotoline = fnum.second; + goto reAsk; } sort(post.begin(), post.end(), DNSRecord::prettyCompare); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/responsestats-auth.cc new/pdns-4.4.1/pdns/responsestats-auth.cc --- old/pdns-4.4.0/pdns/responsestats-auth.cc 2020-11-16 17:30:05.000000000 +0100 +++ new/pdns-4.4.1/pdns/responsestats-auth.cc 2021-02-06 23:37:20.000000000 +0100 @@ -7,7 +7,7 @@ * Function that creates all the stats * when udpOrTCP is true, it is udp */ -void ResponseStats::submitResponse(DNSPacket &p, bool udpOrTCP) { +void ResponseStats::submitResponse(DNSPacket &p, bool udpOrTCP, bool last) { const string& buf=p.getString(); static AtomicCounter &udpnumanswered=*S.getPointer("udp-answers"); static AtomicCounter &udpnumanswered4=*S.getPointer("udp4-answers"); @@ -44,15 +44,20 @@ udpbytesanswered6+=buf.length(); } } else { //tcp - tcpnumanswered++; tcpbytesanswered+=buf.length(); if(p.d_remote.sin4.sin_family==AF_INET) { - tcpnumanswered4++; tcpbytesanswered4+=buf.length(); } else { - tcpnumanswered6++; tcpbytesanswered6+=buf.length(); } + if(last) { + tcpnumanswered++; + if(p.d_remote.sin4.sin_family==AF_INET) { + tcpnumanswered4++; + } else { + tcpnumanswered6++; + } + } } submitResponse(p.qtype.getCode(), buf.length(), p.d.rcode, udpOrTCP); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/responsestats.hh new/pdns-4.4.1/pdns/responsestats.hh --- old/pdns-4.4.0/pdns/responsestats.hh 2020-11-16 17:30:05.000000000 +0100 +++ new/pdns-4.4.1/pdns/responsestats.hh 2021-02-06 23:37:20.000000000 +0100 @@ -30,7 +30,7 @@ public: ResponseStats(); - void submitResponse(DNSPacket &p, bool udpOrTCP); + void submitResponse(DNSPacket &p, bool udpOrTCP, bool last=true); void submitResponse(uint16_t qtype, uint16_t respsize, bool udpOrTCP); void submitResponse(uint16_t qtype, uint16_t respsize, uint8_t rcode, bool udpOrTCP); map<uint16_t, uint64_t> getQTypeResponseCounts(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/tcpreceiver.cc new/pdns-4.4.1/pdns/tcpreceiver.cc --- old/pdns-4.4.0/pdns/tcpreceiver.cc 2020-12-17 15:38:25.000000000 +0100 +++ new/pdns-4.4.1/pdns/tcpreceiver.cc 2021-02-06 23:37:20.000000000 +0100 @@ -168,9 +168,9 @@ } } -void TCPNameserver::sendPacket(std::unique_ptr<DNSPacket>& p, int outsock) +void TCPNameserver::sendPacket(std::unique_ptr<DNSPacket>& p, int outsock, bool last) { - g_rs.submitResponse(*p, false); + g_rs.submitResponse(*p, false, last); uint16_t len=htons(p->getString().length()); string buffer((const char*)&len, 2); @@ -188,15 +188,6 @@ throw NetworkError("Error reading DNS data from TCP client "+remote.toString()+": "+ae.what()); } -static void incTCPAnswerCount(const ComboAddress& remote) -{ - S.inc("tcp-answers"); - if(remote.sin4.sin_family == AF_INET6) - S.inc("tcp6-answers"); - else - S.inc("tcp4-answers"); -} - static bool maxConnectionDurationReached(unsigned int maxConnectionDuration, time_t start, unsigned int& remainingTime) { if (maxConnectionDuration) { @@ -301,14 +292,12 @@ break; if(packet->qtype.getCode()==QType::AXFR) { - if(doAXFR(packet->qdomain, packet, fd)) - incTCPAnswerCount(remote); + doAXFR(packet->qdomain, packet, fd); continue; } if(packet->qtype.getCode()==QType::IXFR) { - if(doIXFR(packet, fd)) - incTCPAnswerCount(remote); + doIXFR(packet, fd); continue; } @@ -597,7 +586,7 @@ if(haveTSIGDetails && !tsigkeyname.empty()) outpacket->setTSIGDetails(trc, tsigkeyname, tsigsecret, trc.d_mac); // first answer is 'normal' - sendPacket(outpacket, outsock); + sendPacket(outpacket, outsock, false); trc.d_mac = outpacket->d_trc.d_mac; outpacket = getFreshAXFRPacket(q); @@ -865,7 +854,7 @@ if(!outpacket->getRRS().empty()) { if(haveTSIGDetails && !tsigkeyname.empty()) outpacket->setTSIGDetails(trc, tsigkeyname, tsigsecret, trc.d_mac, true); - sendPacket(outpacket, outsock); + sendPacket(outpacket, outsock, false); trc.d_mac=outpacket->d_trc.d_mac; outpacket=getFreshAXFRPacket(q); } @@ -918,7 +907,7 @@ if(!outpacket->getRRS().empty()) { if(haveTSIGDetails && !tsigkeyname.empty()) outpacket->setTSIGDetails(trc, tsigkeyname, tsigsecret, trc.d_mac, true); - sendPacket(outpacket, outsock); + sendPacket(outpacket, outsock, false); trc.d_mac=outpacket->d_trc.d_mac; outpacket=getFreshAXFRPacket(q); } @@ -952,7 +941,7 @@ if(!outpacket->getRRS().empty()) { if(haveTSIGDetails && !tsigkeyname.empty()) outpacket->setTSIGDetails(trc, tsigkeyname, tsigsecret, trc.d_mac, true); - sendPacket(outpacket, outsock); + sendPacket(outpacket, outsock, false); trc.d_mac=outpacket->d_trc.d_mac; outpacket=getFreshAXFRPacket(q); } @@ -973,7 +962,7 @@ if(!outpacket->getRRS().empty()) { if(haveTSIGDetails && !tsigkeyname.empty()) outpacket->setTSIGDetails(trc, tsigkeyname, tsigsecret, trc.d_mac, true); // first answer is 'normal' - sendPacket(outpacket, outsock); + sendPacket(outpacket, outsock, false); trc.d_mac=outpacket->d_trc.d_mac; outpacket=getFreshAXFRPacket(q); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/tcpreceiver.hh new/pdns-4.4.1/pdns/tcpreceiver.hh --- old/pdns-4.4.0/pdns/tcpreceiver.hh 2020-11-30 04:03:53.000000000 +0100 +++ new/pdns-4.4.1/pdns/tcpreceiver.hh 2021-02-06 23:37:20.000000000 +0100 @@ -48,7 +48,7 @@ unsigned int numTCPConnections(); private: - static void sendPacket(std::unique_ptr<DNSPacket>& p, int outsock); + static void sendPacket(std::unique_ptr<DNSPacket>& p, int outsock, bool last=true); static int readLength(int fd, ComboAddress *remote); static void getQuestion(int fd, char *mesg, int pktlen, const ComboAddress& remote, unsigned int totalTime); static int doAXFR(const DNSName &target, std::unique_ptr<DNSPacket>& q, int outsock); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.4.0/pdns/ws-auth.cc new/pdns-4.4.1/pdns/ws-auth.cc --- old/pdns-4.4.0/pdns/ws-auth.cc 2020-12-14 09:07:22.000000000 +0100 +++ new/pdns-4.4.1/pdns/ws-auth.cc 2021-02-06 23:37:20.000000000 +0100 @@ -1793,8 +1793,17 @@ } else if(req->method == "DELETE") { // delete domain - if(!di.backend->deleteDomain(zonename)) - throw ApiException("Deleting domain '"+zonename.toString()+"' failed: backend delete failed/unsupported"); + + di.backend->startTransaction(zonename, -1); + try { + if(!di.backend->deleteDomain(zonename)) + throw ApiException("Deleting domain '"+zonename.toString()+"' failed: backend delete failed/unsupported"); + + di.backend->commitTransaction(); + } catch (...) { + di.backend->abortTransaction(); + throw; + } // clear caches DNSSECKeeper::clearCaches(zonename);
