Hello community, here is the log from the commit of package pdns for openSUSE:Factory checked in at 2019-03-19 10:03:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pdns (Old) and /work/SRC/openSUSE:Factory/.pdns.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdns" Tue Mar 19 10:03:08 2019 rev:59 rq:686249 version:4.1.7 Changes: -------- --- /work/SRC/openSUSE:Factory/pdns/pdns.changes 2019-03-18 10:38:42.671480416 +0100 +++ /work/SRC/openSUSE:Factory/.pdns.new.28833/pdns.changes 2019-03-19 10:03:09.183793485 +0100 @@ -1,0 +2,13 @@ +Mon Mar 18 20:17:10 UTC 2019 - Michael Ströder <mich...@stroeder.com> + +- Update to 4.1.7 with a security fix: + * Insufficient validation in the HTTP remote backend + (CVE-2019-3871, PowerDNS Security Advisory 2019-03) + +------------------------------------------------------------------- +Mon Mar 18 12:13:42 UTC 2019 - Michael Ströder <mich...@stroeder.com> + +- Update to 4.1.6 + * Prevent more than one CNAME/SOA record in the same RRset + +------------------------------------------------------------------- Old: ---- pdns-4.1.5.tar.bz2 pdns-4.1.5.tar.bz2.sig New: ---- pdns-4.1.7.tar.bz2 pdns-4.1.7.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pdns.spec ++++++ --- /var/tmp/diff_new_pack.awbUPI/_old 2019-03-19 10:03:10.067792669 +0100 +++ /var/tmp/diff_new_pack.awbUPI/_new 2019-03-19 10:03:10.071792666 +0100 @@ -17,11 +17,11 @@ Name: pdns -Version: 4.1.5 +Version: 4.1.7 Release: 0 # %define pkg_name pdns -%define pkg_version 4.1.5 +%define pkg_version 4.1.7 # %if 0%{?suse_version} > 1230 || 0%{?rhel_version} > 600 || 0%{?centos_version} > 600 || 0%{?fedora_version} >= 20 || 0%{?el7}%{?fc20}%{?fc21}%{?fc22}%{?fc23}%{?fc24}%{?fc25} %bcond_without systemd ++++++ pdns-4.1.5.tar.bz2 -> pdns-4.1.7.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/.version new/pdns-4.1.7/.version --- old/pdns-4.1.5/.version 2018-11-06 18:14:32.000000000 +0100 +++ new/pdns-4.1.7/.version 2019-03-18 11:52:25.000000000 +0100 @@ -1 +1 @@ -4.1.5 +4.1.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/configure new/pdns-4.1.7/configure --- old/pdns-4.1.5/configure 2018-11-06 18:14:31.000000000 +0100 +++ new/pdns-4.1.7/configure 2019-03-18 11:52:22.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.1.5. +# Generated by GNU Autoconf 2.69 for pdns 4.1.7. # # # 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.1.5' -PACKAGE_STRING='pdns 4.1.5' +PACKAGE_VERSION='4.1.7' +PACKAGE_STRING='pdns 4.1.7' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1538,7 +1538,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.1.5 to adapt to many kinds of systems. +\`configure' configures pdns 4.1.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1608,7 +1608,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pdns 4.1.5:";; + short | recursive ) echo "Configuration of pdns 4.1.7:";; esac cat <<\_ACEOF @@ -1842,7 +1842,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pdns configure 4.1.5 +pdns configure 4.1.7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2435,7 +2435,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.1.5, which was +It was created by pdns $as_me 4.1.7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3315,7 +3315,7 @@ # Define the identity of the package. PACKAGE='pdns' - VERSION='4.1.5' + VERSION='4.1.7' cat >>confdefs.h <<_ACEOF @@ -23543,7 +23543,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.1.5, which was +This file was extended by pdns $as_me 4.1.7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23609,7 +23609,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.1.5 +pdns config.status 4.1.7 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.1.5/docs/calidns.1 new/pdns-4.1.7/docs/calidns.1 --- old/pdns-4.1.5/docs/calidns.1 2018-11-06 18:16:43.000000000 +0100 +++ new/pdns-4.1.7/docs/calidns.1 2019-03-18 11:55:30.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "CALIDNS" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "CALIDNS" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME calidns \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnsbulktest.1 new/pdns-4.1.7/docs/dnsbulktest.1 --- old/pdns-4.1.5/docs/dnsbulktest.1 2018-11-06 18:17:17.000000000 +0100 +++ new/pdns-4.1.7/docs/dnsbulktest.1 2019-03-18 11:56:22.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSBULKTEST" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSBULKTEST" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnsbulktest \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnsgram.1 new/pdns-4.1.7/docs/dnsgram.1 --- old/pdns-4.1.5/docs/dnsgram.1 2018-11-06 18:16:45.000000000 +0100 +++ new/pdns-4.1.7/docs/dnsgram.1 2019-03-18 11:55:34.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSGRAM" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSGRAM" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnsgram \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnspcap2protobuf.1 new/pdns-4.1.7/docs/dnspcap2protobuf.1 --- old/pdns-4.1.5/docs/dnspcap2protobuf.1 2018-11-06 18:17:23.000000000 +0100 +++ new/pdns-4.1.7/docs/dnspcap2protobuf.1 2019-03-18 11:56:29.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSPCAP2PROTOBUF" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSPCAP2PROTOBUF" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnspcap2protobuf \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnsreplay.1 new/pdns-4.1.7/docs/dnsreplay.1 --- old/pdns-4.1.5/docs/dnsreplay.1 2018-11-06 18:16:47.000000000 +0100 +++ new/pdns-4.1.7/docs/dnsreplay.1 2019-03-18 11:55:38.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSREPLAY" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSREPLAY" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnsreplay \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnsscan.1 new/pdns-4.1.7/docs/dnsscan.1 --- old/pdns-4.1.5/docs/dnsscan.1 2018-11-06 18:16:49.000000000 +0100 +++ new/pdns-4.1.7/docs/dnsscan.1 2019-03-18 11:55:42.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSSCAN" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSSCAN" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnsscan \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnsscope.1 new/pdns-4.1.7/docs/dnsscope.1 --- old/pdns-4.1.5/docs/dnsscope.1 2018-11-06 18:16:52.000000000 +0100 +++ new/pdns-4.1.7/docs/dnsscope.1 2019-03-18 11:55:46.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSSCOPE" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSSCOPE" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnsscope \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnstcpbench.1 new/pdns-4.1.7/docs/dnstcpbench.1 --- old/pdns-4.1.5/docs/dnstcpbench.1 2018-11-06 18:17:20.000000000 +0100 +++ new/pdns-4.1.7/docs/dnstcpbench.1 2019-03-18 11:56:26.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSTCPBENCH" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSTCPBENCH" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnstcpbench \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dnswasher.1 new/pdns-4.1.7/docs/dnswasher.1 --- old/pdns-4.1.5/docs/dnswasher.1 2018-11-06 18:16:54.000000000 +0100 +++ new/pdns-4.1.7/docs/dnswasher.1 2019-03-18 11:55:49.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DNSWASHER" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DNSWASHER" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dnswasher \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/dumresp.1 new/pdns-4.1.7/docs/dumresp.1 --- old/pdns-4.1.5/docs/dumresp.1 2018-11-06 18:16:57.000000000 +0100 +++ new/pdns-4.1.7/docs/dumresp.1 2019-03-18 11:55:53.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DUMRESP" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "DUMRESP" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME dumresp \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/ixplore.1 new/pdns-4.1.7/docs/ixplore.1 --- old/pdns-4.1.5/docs/ixplore.1 2018-11-06 18:17:00.000000000 +0100 +++ new/pdns-4.1.7/docs/ixplore.1 2019-03-18 11:55:56.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "IXPLORE" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "IXPLORE" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME ixplore \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/nproxy.1 new/pdns-4.1.7/docs/nproxy.1 --- old/pdns-4.1.5/docs/nproxy.1 2018-11-06 18:17:03.000000000 +0100 +++ new/pdns-4.1.7/docs/nproxy.1 2019-03-18 11:56:00.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NPROXY" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "NPROXY" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME nproxy \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/nsec3dig.1 new/pdns-4.1.7/docs/nsec3dig.1 --- old/pdns-4.1.5/docs/nsec3dig.1 2018-11-06 18:17:06.000000000 +0100 +++ new/pdns-4.1.7/docs/nsec3dig.1 2019-03-18 11:56:04.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NSEC3DIG" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "NSEC3DIG" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME nsec3dig \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/pdns_control.1 new/pdns-4.1.7/docs/pdns_control.1 --- old/pdns-4.1.5/docs/pdns_control.1 2018-11-06 18:16:31.000000000 +0100 +++ new/pdns-4.1.7/docs/pdns_control.1 2019-03-18 11:55:11.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNS_CONTROL" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "PDNS_CONTROL" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME pdns_control \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/pdns_notify.1 new/pdns-4.1.7/docs/pdns_notify.1 --- old/pdns-4.1.5/docs/pdns_notify.1 2018-11-06 18:17:08.000000000 +0100 +++ new/pdns-4.1.7/docs/pdns_notify.1 2019-03-18 11:56:08.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNS_NOTIFY" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "PDNS_NOTIFY" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME pdns_notify \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/pdns_server.1 new/pdns-4.1.7/docs/pdns_server.1 --- old/pdns-4.1.5/docs/pdns_server.1 2018-11-06 18:16:29.000000000 +0100 +++ new/pdns-4.1.7/docs/pdns_server.1 2019-03-18 11:55:06.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNS_SERVER" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "PDNS_SERVER" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME pdns_server \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/pdnsutil.1 new/pdns-4.1.7/docs/pdnsutil.1 --- old/pdns-4.1.5/docs/pdnsutil.1 2018-11-06 18:16:34.000000000 +0100 +++ new/pdns-4.1.7/docs/pdnsutil.1 2019-03-18 11:55:15.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PDNSUTIL" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "PDNSUTIL" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME pdnsutil \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/saxfr.1 new/pdns-4.1.7/docs/saxfr.1 --- old/pdns-4.1.5/docs/saxfr.1 2018-11-06 18:17:11.000000000 +0100 +++ new/pdns-4.1.7/docs/saxfr.1 2019-03-18 11:56:12.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SAXFR" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "SAXFR" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME saxfr \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/sdig.1 new/pdns-4.1.7/docs/sdig.1 --- old/pdns-4.1.5/docs/sdig.1 2018-11-06 18:17:14.000000000 +0100 +++ new/pdns-4.1.7/docs/sdig.1 2019-03-18 11:56:17.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SDIG" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "SDIG" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME sdig \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/zone2json.1 new/pdns-4.1.7/docs/zone2json.1 --- old/pdns-4.1.5/docs/zone2json.1 2018-11-06 18:16:36.000000000 +0100 +++ new/pdns-4.1.7/docs/zone2json.1 2019-03-18 11:55:19.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "ZONE2JSON" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "ZONE2JSON" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME zone2json \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/zone2ldap.1 new/pdns-4.1.7/docs/zone2ldap.1 --- old/pdns-4.1.5/docs/zone2ldap.1 2018-11-06 18:16:41.000000000 +0100 +++ new/pdns-4.1.7/docs/zone2ldap.1 2019-03-18 11:55:26.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "ZONE2LDAP" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "ZONE2LDAP" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME zone2ldap \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/docs/zone2sql.1 new/pdns-4.1.7/docs/zone2sql.1 --- old/pdns-4.1.5/docs/zone2sql.1 2018-11-06 18:16:38.000000000 +0100 +++ new/pdns-4.1.7/docs/zone2sql.1 2019-03-18 11:55:22.000000000 +0100 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "ZONE2SQL" "1" "Nov 06, 2018" "4.1" "PowerDNS Recursor" +.TH "ZONE2SQL" "1" "Mar 18, 2019" "4.1" "PowerDNS Recursor" .SH NAME zone2sql \- . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/modules/remotebackend/httpconnector.cc new/pdns-4.1.7/modules/remotebackend/httpconnector.cc --- old/pdns-4.1.5/modules/remotebackend/httpconnector.cc 2018-11-06 18:14:14.000000000 +0100 +++ new/pdns-4.1.7/modules/remotebackend/httpconnector.cc 2019-03-18 11:51:54.000000000 +0100 @@ -35,7 +35,22 @@ #endif HTTPConnector::HTTPConnector(std::map<std::string,std::string> options) { + + if (options.find("url") == options.end()) { + throw PDNSException("Cannot find 'url' option in the remote backend HTTP connector's parameters"); + } + this->d_url = options.find("url")->second; + + try { + YaHTTP::URL url(d_url); + d_host = url.host; + d_port = url.port; + } + catch(const std::exception& e) { + throw PDNSException("Error parsing the 'url' option provided to the remote backend HTTP connector: " + std::string(e.what())); + } + if (options.find("url-suffix") != options.end()) { this->d_url_suffix = options.find("url-suffix")->second; } else { @@ -71,7 +86,7 @@ void HTTPConnector::addUrlComponent(const Json ¶meters, const string& element, std::stringstream& ss) { std::string sparam; if (parameters[element] != Json()) - ss << "/" << asString(parameters[element]); + ss << "/" << YaHTTP::Utility::encodeURL(asString(parameters[element]), false); } std::string HTTPConnector::buildMemberListArgs(std::string prefix, const Json& args) { @@ -81,9 +96,9 @@ if (pair.second.is_bool()) { stream << (pair.second.bool_value()?"1":"0"); } else if (pair.second.is_null()) { - stream << prefix << "[" << pair.first << "]="; + stream << prefix << "[" << YaHTTP::Utility::encodeURL(pair.first, false) << "]="; } else { - stream << prefix << "[" << pair.first << "]=" << this->asString(pair.second); + stream << prefix << "[" << YaHTTP::Utility::encodeURL(pair.first, false) << "]=" << YaHTTP::Utility::encodeURL(this->asString(pair.second), false); } stream << "&"; } @@ -334,45 +349,41 @@ delete this->d_socket; this->d_socket = NULL; - if (req.url.protocol == "unix") { - // connect using unix socket - } else { - // connect using tcp - struct addrinfo *gAddr, *gAddrPtr, hints; - std::string sPort = std::to_string(req.url.port); - memset(&hints,0,sizeof hints); - hints.ai_family = AF_UNSPEC; - hints.ai_flags = AI_ADDRCONFIG; - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = 6; // tcp - if ((ec = getaddrinfo(req.url.host.c_str(), sPort.c_str(), &hints, &gAddr)) == 0) { - // try to connect to each address. - gAddrPtr = gAddr; + // connect using tcp + struct addrinfo *gAddr, *gAddrPtr, hints; + std::string sPort = std::to_string(d_port); + memset(&hints,0,sizeof hints); + hints.ai_family = AF_UNSPEC; + hints.ai_flags = AI_ADDRCONFIG; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = 6; // tcp + if ((ec = getaddrinfo(d_host.c_str(), sPort.c_str(), &hints, &gAddr)) == 0) { + // try to connect to each address. + gAddrPtr = gAddr; - while(gAddrPtr) { - try { - d_socket = new Socket(gAddrPtr->ai_family, gAddrPtr->ai_socktype, gAddrPtr->ai_protocol); - d_addr.setSockaddr(gAddrPtr->ai_addr, gAddrPtr->ai_addrlen); - d_socket->connect(d_addr); - d_socket->setNonBlocking(); - d_socket->writenWithTimeout(out.str().c_str(), out.str().size(), timeout); - rv = 1; - } catch (NetworkError& ne) { - L<<Logger::Error<<"While writing to HTTP endpoint "<<d_addr.toStringWithPort()<<": "<<ne.what()<<std::endl; - } catch (...) { - L<<Logger::Error<<"While writing to HTTP endpoint "<<d_addr.toStringWithPort()<<": exception caught"<<std::endl; - } - - if (rv > -1) break; - delete d_socket; - d_socket = NULL; - gAddrPtr = gAddrPtr->ai_next; - + while(gAddrPtr) { + try { + d_socket = new Socket(gAddrPtr->ai_family, gAddrPtr->ai_socktype, gAddrPtr->ai_protocol); + d_addr.setSockaddr(gAddrPtr->ai_addr, gAddrPtr->ai_addrlen); + d_socket->connect(d_addr); + d_socket->setNonBlocking(); + d_socket->writenWithTimeout(out.str().c_str(), out.str().size(), timeout); + rv = 1; + } catch (NetworkError& ne) { + L<<Logger::Error<<"While writing to HTTP endpoint "<<d_addr.toStringWithPort()<<": "<<ne.what()<<std::endl; + } catch (...) { + L<<Logger::Error<<"While writing to HTTP endpoint "<<d_addr.toStringWithPort()<<": exception caught"<<std::endl; } - freeaddrinfo(gAddr); - } else { - L<<Logger::Error<<"Unable to resolve " << req.url.host << ": " << gai_strerror(ec) << std::endl; + + if (rv > -1) break; + delete d_socket; + d_socket = NULL; + gAddrPtr = gAddrPtr->ai_next; + } + freeaddrinfo(gAddr); + } else { + L<<Logger::Error<<"Unable to resolve " << d_host << ": " << gai_strerror(ec) << std::endl; } return rv; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/modules/remotebackend/remotebackend.hh new/pdns-4.1.7/modules/remotebackend/remotebackend.hh --- old/pdns-4.1.5/modules/remotebackend/remotebackend.hh 2018-11-06 18:14:14.000000000 +0100 +++ new/pdns-4.1.7/modules/remotebackend/remotebackend.hh 2019-03-18 11:51:54.000000000 +0100 @@ -104,6 +104,8 @@ std::string buildMemberListArgs(std::string prefix, const Json& args); Socket* d_socket; ComboAddress d_addr; + std::string d_host; + uint16_t d_port; }; #ifdef REMOTEBACKEND_ZEROMQ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/pdns/effective_tld_names.dat new/pdns-4.1.7/pdns/effective_tld_names.dat --- old/pdns-4.1.5/pdns/effective_tld_names.dat 2018-11-06 18:17:24.000000000 +0100 +++ new/pdns-4.1.7/pdns/effective_tld_names.dat 2019-03-18 11:56:31.000000000 +0100 @@ -1414,9 +1414,9 @@ tos.it toscana.it trentin-sud-tirol.it -trentin-süd-tirol.it +trentin-süd-tirol.it trentin-sudtirol.it -trentin-südtirol.it +trentin-südtirol.it trentin-sued-tirol.it trentin-suedtirol.it trentino-a-adige.it @@ -1426,9 +1426,9 @@ trentino-s-tirol.it trentino-stirol.it trentino-sud-tirol.it -trentino-süd-tirol.it +trentino-süd-tirol.it trentino-sudtirol.it -trentino-südtirol.it +trentino-südtirol.it trentino-sued-tirol.it trentino-suedtirol.it trentino.it @@ -1439,15 +1439,15 @@ trentinos-tirol.it trentinostirol.it trentinosud-tirol.it -trentinosüd-tirol.it +trentinosüd-tirol.it trentinosudtirol.it -trentinosüdtirol.it +trentinosüdtirol.it trentinosued-tirol.it trentinosuedtirol.it trentinsud-tirol.it -trentinsüd-tirol.it +trentinsüd-tirol.it trentinsudtirol.it -trentinsüdtirol.it +trentinsüdtirol.it trentinsued-tirol.it trentinsuedtirol.it tuscany.it @@ -1464,13 +1464,13 @@ valled-aosta.it valledaosta.it vallee-aoste.it -vallée-aoste.it +vallée-aoste.it vallee-d-aoste.it -vallée-d-aoste.it +vallée-d-aoste.it valleeaoste.it -valléeaoste.it +valléeaoste.it valleedaoste.it -valléedaoste.it +valléedaoste.it vao.it vda.it ven.it @@ -1504,7 +1504,7 @@ avellino.it ba.it balsan-sudtirol.it -balsan-südtirol.it +balsan-südtirol.it balsan-suedtirol.it balsan.it bari.it @@ -1523,7 +1523,7 @@ bolzano-altoadige.it bolzano.it bozen-sudtirol.it -bozen-südtirol.it +bozen-südtirol.it bozen-suedtirol.it bozen.it br.it @@ -1532,7 +1532,7 @@ bs.it bt.it bulsan-sudtirol.it -bulsan-südtirol.it +bulsan-südtirol.it bulsan-suedtirol.it bulsan.it bz.it @@ -1552,9 +1552,9 @@ cb.it ce.it cesena-forli.it -cesena-forlì.it +cesena-forlì.it cesenaforli.it -cesenaforlì.it +cesenaforlì.it ch.it chieti.it ci.it @@ -1585,9 +1585,9 @@ fm.it foggia.it forli-cesena.it -forlì-cesena.it +forlì-cesena.it forlicesena.it -forlìcesena.it +forlìcesena.it fr.it frosinone.it ge.it @@ -1718,7 +1718,7 @@ sr.it ss.it suedtirol.it -südtirol.it +südtirol.it sv.it ta.it taranto.it @@ -3790,10 +3790,18 @@ org.lr net.lr -// ls : https://en.wikipedia.org/wiki/.ls +// ls : http://www.nic.ls/ +// Confirmed by registry <lsad...@nic.ls> ls +ac.ls +biz.ls co.ls +edu.ls +gov.ls +info.ls +net.ls org.ls +sc.ls // lt : https://en.wikipedia.org/wiki/.lt lt @@ -4651,9 +4659,6 @@ // ccTLD for the Netherlands nl -// BV.nl will be a registry for dutch BV's (besloten vennootschap) -bv.nl - // no : http://www.norid.no/regelverk/index.en.html // The Norwegian registry has declined to notify us of updates. The web pages // referenced below are the official source of the data. There is also an @@ -7402,9 +7407,6 @@ // blackfriday : 2014-01-16 Uniregistry, Corp. blackfriday -// blanco : 2015-07-16 BLANCO GmbH + Co KG -blanco - // blockbuster : 2015-07-30 Dish DBS Corporation blockbuster @@ -8014,9 +8016,6 @@ // enterprises : 2013-09-20 Binky Moon, LLC enterprises -// epost : 2015-07-23 Deutsche Post AG -epost - // epson : 2014-12-04 Seiko Epson Corporation epson @@ -9838,9 +9837,6 @@ // space : 2014-04-03 DotSpace Inc. space -// spiegel : 2014-02-05 SPIEGEL-Verlag Rudolf Augstein GmbH & Co. KG -spiegel - // sport : 2017-11-16 Global Association of International Sports Federations (GAISF) sport @@ -9874,9 +9870,6 @@ // statefarm : 2015-07-30 State Farm Mutual Automobile Insurance Company statefarm -// statoil : 2014-12-04 Statoil ASA -statoil - // stc : 2014-10-09 Saudi Telecom Company stc @@ -10678,9 +10671,6 @@ // zip : 2014-05-08 Charleston Road Registry Inc. zip -// zippo : 2015-07-02 Zadco Company -zippo - // zone : 2013-11-14 Binky Moon, LLC zone @@ -10835,6 +10825,11 @@ // Submitted by Vincent Tseng <vincentts...@asustor.com> myasustor.com +// Automattic Inc. : https://automattic.com/ +// Submitted by Alex Concha <alex.con...@automattic.com> +go-vip.co +wpcomstaging.com + // AVM : https://avm.de // Submitted by Andreas Weise <a.we...@avm.de> myfritz.net @@ -10881,6 +10876,11 @@ // Submitted by Dave Tharp <browsersafetymark...@quicinc.com> browsersafetymark.io +// Bytemark Hosting : https://www.bytemark.co.uk +// Submitted by Paul Cammish <paul.camm...@bytemark.co.uk> +dh.bytemark.co.uk +vm.bytemark.co.uk + // callidomus : https://www.callidomus.com/ // Submitted by Marcus Popp <ad...@callidomus.com> mycd.eu @@ -11073,6 +11073,11 @@ reg.dk store.dk +// dapps.earth : https://dapps.earth/ +// Submitted by Daniil Burdakov <icqk...@gmail.com> +*.dapps.earth +*.bzz.dapps.earth + // Debian : https://www.debian.org/ // Submitted by Peter Palfrader / Debian Sysadmin Team <dsa-publicsuffixl...@debian.org> debian.net @@ -11085,6 +11090,11 @@ // Submitted by Norbert Auler <m...@dnshome.de> dnshome.de +// DotArai : https://www.dotarai.com/ +// Submitted by Atsadawat Netcharadsang <atsada...@dotarai.co.th> +online.th +shop.th + // DrayTek Corp. : https://www.draytek.com/ // Submitted by Paul Fang <m...@draytek.com> drayddns.com @@ -11614,6 +11624,7 @@ // Fastly Inc. : http://www.fastly.com/ // Submitted by Fastly Security <secur...@fastly.com> +fastly-terrarium.com fastlylb.net map.fastlylb.net freetls.fastly.net @@ -11641,9 +11652,19 @@ app.os.fedoraproject.org app.os.stg.fedoraproject.org +// Fermax : https://fermax.com/ +// submitted by Koen Van Isterdael <k.vanisterd...@fermax.be> +mydobiss.com + // Filegear Inc. : https://www.filegear.com // Submitted by Jason Zhu <ja...@owtware.com> filegear.me +filegear-au.me +filegear-de.me +filegear-gb.me +filegear-ie.me +filegear-jp.me +filegear-sg.me // Firebase, Inc. // Submitted by Chris Raynor <ch...@firebase.com> @@ -11706,6 +11727,8 @@ // Google, Inc. // Submitted by Eduardo Vela <e...@google.com> +run.app +a.run.app *.0emm.com appspot.com blogspot.ae @@ -11825,6 +11848,19 @@ // Submitted by Hannu Aronsson <h...@iki.fi> iki.fi +// Individual Network Berlin e.V. : https://www.in-berlin.de/ +// Submitted by Christian Seitz <ch...@in-berlin.de> +dyn-berlin.de +in-berlin.de +in-brb.de +in-butter.de +in-dsl.de +in-dsl.net +in-dsl.org +in-vpn.de +in-vpn.net +in-vpn.org + // info.at : http://www.info.at/ biz.at info.at @@ -11911,6 +11947,22 @@ lcube-server.de svn-repos.de +// Leadpages : https://www.leadpages.net +// Submitted by Greg Dallavalle <doma...@leadpages.net> +leadpages.co +lpages.co +lpusercontent.com + +// Lifetime Hosting : https://Lifetime.Hosting/ +// Submitted by Mike Fillator <support@lifetime.hosting> +co.business +co.education +co.events +co.financial +co.network +co.place +co.technology + // Lightmaker Property Manager, Inc. : https://app.lmpm.com/ // Submitted by Greg Holland <greg.holl...@lmpm.com> app.lmpm.com @@ -11928,6 +11980,15 @@ // Submitted by Victor Velchev <ad...@liquidnetlimited.com> we.bs +// LubMAN UMCS Sp. z o.o : https://lubman.pl/ +// Submitted by Ireneusz Maliszewski <ireneusz.maliszew...@lubman.pl> +krasnik.pl +leczna.pl +lubartow.pl +lublin.pl +poniatowa.pl +swidnik.pl + // Lug.org.uk : https://lug.org.uk // Submitted by Jon Spriggs <ad...@lug.org.uk> uklugs.org @@ -12315,6 +12376,10 @@ chirurgiens-dentistes-en-france.fr byen.site +// Redstar Consultants : https://www.redstarconsultants.com/ +// Submitted by Jons Slemmer <j...@redstarconsultants.com> +instantcloud.cn + // Russian Academy of Sciences // Submitted by Tech Support <supp...@rasnet.ru> ras.ru @@ -12343,6 +12408,10 @@ rackmaze.com rackmaze.net +// Read The Docs, Inc : https://www.readthedocs.org +// Submitted by David Fischer <t...@readthedocs.org> +readthedocs.io + // Red Hat, Inc. OpenShift : https://openshift.redhat.com/ // Submitted by Tim Kramer <tkra...@rhcloud.com> rhcloud.com @@ -12419,6 +12488,10 @@ sinaapp.com vipsinaapp.com +// Siteleaf : https://www.siteleaf.com/ +// Submitted by Skylar Challand <supp...@siteleaf.com> +siteleaf.net + // Skyhat : http://www.skyhat.io // Submitted by Shante Adam <sha...@skyhat.io> bounty-full.com @@ -12444,6 +12517,10 @@ // Submitted by Stefan Neufeind <i...@speedpartner.de> customer.speedpartner.de +// Standard Library : https://stdlib.com +// Submitted by Jacob Lee <ja...@stdlib.com> +api.stdlib.com + // Storj Labs Inc. : https://storj.io/ // Submitted by Philip Hutchins <hostmas...@storj.io> storj.farm @@ -12456,6 +12533,11 @@ // Submitted by Dan Miller <d...@sub6.com> temp-dns.com +// Swisscom Application Cloud: https://developer.swisscom.com +// Submitted by Matthias.Winzeler <matthias.winze...@swisscom.com> +applicationcloud.io +scapp.io + // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng <ronyw...@synology.com> diskstation.me @@ -12484,6 +12566,12 @@ med.pl sopot.pl +// Telebit : https://telebit.cloud +// Submitted by AJ ONeal <aj@telebit.cloud> +telebit.app +telebit.io +*.telebit.xyz + // The Gwiddle Foundation : https://gwiddlefoundation.org.uk // Submitted by Joshua Bayfield <joshua.bayfi...@gwiddlefoundation.org.uk> gwiddle.co.uk @@ -12643,6 +12731,10 @@ // Submitted by Olli Vanhoja <o...@zeit.co> now.sh +// Zine EOOD : https://zine.bg/ +// Submitted by Martin Angelov <mar...@zine.bg> +bss.design + // Zone.id : https://zone.id/ // Submitted by Su Hendro <ad...@zone.id> zone.id diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdns-4.1.5/pdns/ws-auth.cc new/pdns-4.1.7/pdns/ws-auth.cc --- old/pdns-4.1.5/pdns/ws-auth.cc 2018-11-06 18:14:14.000000000 +0100 +++ new/pdns-4.1.7/pdns/ws-auth.cc 2019-03-18 11:51:54.000000000 +0100 @@ -471,6 +471,7 @@ } static void gatherRecords(const Json container, const DNSName& qname, const QType qtype, const int ttl, vector<DNSResourceRecord>& new_records, vector<DNSResourceRecord>& new_ptrs) { + static const std::set<uint16_t> onlyOneEntryTypes = { QType::CNAME, QType::SOA }; UeberBackend B; DNSResourceRecord rr; rr.qname = qname; @@ -479,7 +480,12 @@ rr.ttl = ttl; validateGatheredRRType(rr); - for(auto record : container["records"].array_items()) { + const auto& items = container["records"].array_items(); + if (onlyOneEntryTypes.count(qtype.getCode()) != 0 && items.size() > 1) { + throw ApiException("RRset for "+rr.qname.toString()+"/"+rr.qtype.getName()+" has more than one record"); + } + + for(const auto& record : items) { string content = stringFromJson(record, "content"); rr.disabled = boolFromJson(record, "disabled");