Hello community,

here is the log from the commit of package pdns-recursor for openSUSE:Factory 
checked in at 2020-11-26 23:14:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pdns-recursor (Old)
 and      /work/SRC/openSUSE:Factory/.pdns-recursor.new.5913 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pdns-recursor"

Thu Nov 26 23:14:22 2020 rev:41 rq:850845 version:4.4.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/pdns-recursor/pdns-recursor.changes      
2020-11-24 22:10:47.587401778 +0100
+++ /work/SRC/openSUSE:Factory/.pdns-recursor.new.5913/pdns-recursor.changes    
2020-11-26 23:15:31.353043566 +0100
@@ -1,0 +2,10 @@
+Wed Nov 25 15:04:21 UTC 2020 - Adam Majer <adam.ma...@suse.de>
+
+- update to 4.4.1
+  * Allow specifying a name in getMetric() that is used for Prometheus
+  * Avoids a CNAME loop detection issue with DNS64
+  * No longer sends overly long NOD lookups.
+  * If a.b.c CNAME x.a.b.c is encountered, switch off QName Minimization.
+  * Fix the processing of answers generated from gettag.
+
+-------------------------------------------------------------------

Old:
----
  pdns-recursor-4.4.0.tar.bz2
  pdns-recursor-4.4.0.tar.bz2.sig

New:
----
  pdns-recursor-4.4.1.tar.bz2
  pdns-recursor-4.4.1.tar.bz2.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pdns-recursor.spec ++++++
--- /var/tmp/diff_new_pack.C3w0lp/_old  2020-11-26 23:15:32.149044185 +0100
+++ /var/tmp/diff_new_pack.C3w0lp/_new  2020-11-26 23:15:32.153044188 +0100
@@ -35,7 +35,7 @@
 %endif
 
 Name:           pdns-recursor
-Version:        4.4.0
+Version:        4.4.1
 Release:        0
 BuildRequires:  autoconf
 BuildRequires:  automake

++++++ pdns-recursor-4.4.0.tar.bz2 -> pdns-recursor-4.4.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/configure 
new/pdns-recursor-4.4.1/configure
--- old/pdns-recursor-4.4.0/configure   2020-10-16 12:35:02.000000000 +0200
+++ new/pdns-recursor-4.4.1/configure   2020-11-24 23:28:50.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-recursor 4.4.0.
+# Generated by GNU Autoconf 2.69 for pdns-recursor 4.4.1.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
 # Identity of this package.
 PACKAGE_NAME='pdns-recursor'
 PACKAGE_TARNAME='pdns-recursor'
-PACKAGE_VERSION='4.4.0'
-PACKAGE_STRING='pdns-recursor 4.4.0'
+PACKAGE_VERSION='4.4.1'
+PACKAGE_STRING='pdns-recursor 4.4.1'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1519,7 +1519,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-recursor 4.4.0 to adapt to many kinds of systems.
+\`configure' configures pdns-recursor 4.4.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1590,7 +1590,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pdns-recursor 4.4.0:";;
+     short | recursive ) echo "Configuration of pdns-recursor 4.4.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1772,7 +1772,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pdns-recursor configure 4.4.0
+pdns-recursor configure 4.4.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2365,7 +2365,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-recursor $as_me 4.4.0, which was
+It was created by pdns-recursor $as_me 4.4.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3233,7 +3233,7 @@
 
 # Define the identity of the package.
  PACKAGE='pdns-recursor'
- VERSION='4.4.0'
+ VERSION='4.4.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -25391,7 +25391,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pdns-recursor $as_me 4.4.0, which was
+This file was extended by pdns-recursor $as_me 4.4.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -25457,7 +25457,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-recursor config.status 4.4.0
+pdns-recursor 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-recursor-4.4.0/configure.ac 
new/pdns-recursor-4.4.1/configure.ac
--- old/pdns-recursor-4.4.0/configure.ac        2020-10-16 12:34:52.000000000 
+0200
+++ new/pdns-recursor-4.4.1/configure.ac        2020-11-24 23:28:35.000000000 
+0100
@@ -1,6 +1,6 @@
 AC_PREREQ([2.61])
 
-AC_INIT([pdns-recursor], [4.4.0])
+AC_INIT([pdns-recursor], [4.4.1])
 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])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/effective_tld_names.dat 
new/pdns-recursor-4.4.1/effective_tld_names.dat
--- old/pdns-recursor-4.4.0/effective_tld_names.dat     2020-10-16 
12:36:14.000000000 +0200
+++ new/pdns-recursor-4.4.1/effective_tld_names.dat     2020-11-24 
23:30:40.000000000 +0100
@@ -4703,6 +4703,7 @@
 // Norid geographical second level domains : 
https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/
 // Norid category second level domains : 
https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/
 // Norid category second-level domains managed by parties other than Norid : 
https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/
+// RSS feed: https://teknisk.norid.no/en/feed/
 no
 // Norid category second level domains : 
https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/
 fhs.no
@@ -7110,7 +7111,7 @@
 
 // newGTLDs
 
-// List of new gTLDs imported from 
https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 
2020-10-12T17:47:39Z
+// List of new gTLDs imported from 
https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 
2020-11-21T18:09:21Z
 // This list is auto-generated, don't edit it manually.
 // aaa : 2015-02-26 American Automobile Association, Inc.
 aaa
@@ -7337,7 +7338,7 @@
 // aws : 2015-06-25 Amazon Registry Services, Inc.
 aws
 
-// axa : 2013-12-19 AXA SA
+// axa : 2013-12-19 AXA Group Operations SAS
 axa
 
 // azure : 2014-12-18 Microsoft Corporation
@@ -8651,9 +8652,6 @@
 // jcb : 2014-11-20 JCB Co., Ltd.
 jcb
 
-// jcp : 2015-04-23 JCP Media, Inc.
-jcp
-
 // jeep : 2015-07-30 FCA US LLC.
 jeep
 
@@ -9242,7 +9240,7 @@
 // ong : 2014-03-06 Public Interest Registry
 ong
 
-// onl : 2013-09-16 I-Registry Ltd.
+// onl : 2013-09-16 iRegistry GmbH
 onl
 
 // online : 2015-01-15 DotOnline Inc.
@@ -9539,7 +9537,7 @@
 // rexroth : 2015-06-18 Robert Bosch GMBH
 rexroth
 
-// rich : 2013-11-21 I-Registry Ltd.
+// rich : 2013-11-21 iRegistry GmbH
 rich
 
 // richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited
@@ -10073,7 +10071,7 @@
 // travelersinsurance : 2015-03-26 Travelers TLD, LLC
 travelersinsurance
 
-// trust : 2014-10-16 NCC Group Domain Services, Inc.
+// trust : 2014-10-16 UNR Corp.
 trust
 
 // trv : 2015-03-26 Travelers TLD, LLC
@@ -10680,12 +10678,6 @@
 // Submitted by Werner Kaltofen <w...@all-inkl.com>
 kasserver.com
 
-// Algorithmia, Inc. : algorithmia.com
-// Submitted by Eli Perelman <eperel...@algorithmia.io>
-*.algorithmia.com
-!teams.algorithmia.com
-!test.algorithmia.com
-
 // Altervista: https://www.altervista.org
 // Submitted by Carlo Cannas <tech_st...@altervista.it>
 altervista.org
@@ -10868,6 +10860,10 @@
 // Submitted by Paul Crowder <paul.crow...@blackbaud.com>
 blackbaudcdn.net
 
+// Blatech : http://www.blatech.net
+// Submitted by Luke Bratch <l...@bratch.co.uk>
+of.je
+
 // Boomla : https://boomla.com
 // Submitted by Tibor Halter <thal...@boomla.com>
 boomla.net
@@ -10981,10 +10977,6 @@
 // Submitted by B. Blechschmidt <hostmas...@certmgr.org>
 certmgr.org
 
-// Citrix : https://citrix.com
-// Submitted by Alex Stoddard <alex.stodd...@citrix.com>
-xenapponazure.com
-
 // Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/
 // Submitted by Rishabh Nambiar & Michael Brown <t...@discourse.org>
 discourse.group
@@ -11073,10 +11065,6 @@
 cloudns.pw
 cloudns.us
 
-// Cloudeity Inc : https://cloudeity.com
-// Submitted by Stefan Dimitrov <cont...@cloudeity.com>
-cloudeity.net
-
 // CNPY : https://cnpy.gdn
 // Submitted by Angelo Gladding <ang...@lahacker.net>
 cnpy.gdn
@@ -11537,6 +11525,10 @@
 definima.net
 definima.io
 
+// DigitalOcean : https://digitalocean.com/
+// Submitted by Braxton Huggins <bhugg...@digitalocean.com>
+ondigitalocean.app
+
 // dnstrace.pro : https://dnstrace.pro/
 // Submitted by Chris Partridge <ch...@partridge.tech>
 bci.dnstrace.pro
@@ -11802,6 +11794,10 @@
 // submitted by Koen Van Isterdael <k.vanisterd...@fermax.be>
 mydobiss.com
 
+// FH Muenster : https://www.fh-muenster.de
+// Submitted by Robin Naundorf <r.naund...@fh-muenster.de>
+fh-muenster.io
+
 // Filegear Inc. : https://www.filegear.com
 // Submitted by Jason Zhu <ja...@owtware.com>
 filegear.me
@@ -12058,6 +12054,10 @@
 development.run
 ravendb.run
 
+// Hong Kong Productivity Council: https://www.hkpc.org/
+// Submitted by SECaaS Team <summc...@hkpc.org>
+secaas.hk
+
 // HOSTBIP REGISTRY : https://www.hostbip.com/
 // Submitted by Atanunu Igbunuroghene <publicsuffixl...@hostbip.com>
 bpl.biz
@@ -12167,7 +12167,7 @@
 // Submitted by Yuji Minagawa <domains-ad...@iodata.jp>
 iobb.net
 
-//Jelastic, Inc. : https://jelastic.com/
+// Jelastic, Inc. : https://jelastic.com/
 // Submited by Ihor Kolodyuk <i...@jelastic.com>
 mel.cloudlets.com.au
 cloud.interhostsolutions.be
@@ -12182,6 +12182,9 @@
 it1.eur.aruba.jenv-aruba.cloud
 it1.jenv-aruba.cloud
 it1-eur.jenv-arubabiz.cloud
+oxa.cloud
+tn.oxa.cloud
+uk.oxa.cloud
 primetel.cloud
 uk.primetel.cloud
 ca.reclaim.cloud
@@ -12252,6 +12255,7 @@
 enscaled.sg
 jele.site
 jelastic.team
+orangecloud.tn
 j.layershift.co.uk
 phx.enscaled.us
 mircloud.us
@@ -12329,10 +12333,6 @@
 // Submitted by Greg Holland <greg.holl...@lmpm.com>
 app.lmpm.com
 
-// Linki Tools UG : https://linki.tools
-// Submitted by Paulo Matos <pmatos@linki.tools>
-linkitools.space
-
 // linkyard ldt: https://www.linkyard.ch/
 // Submitted by Mario Siegenthaler <mario.siegentha...@linkyard.ch>
 linkyard.cloud
@@ -12371,7 +12371,6 @@
 
 // Lug.org.uk : https://lug.org.uk
 // Submitted by Jon Spriggs <ad...@lug.org.uk>
-uklugs.org
 glug.org.uk
 lug.org.uk
 lugs.org.uk
@@ -12448,11 +12447,17 @@
 co.pl
 
 // Microsoft Corporation : http://microsoft.com
-// Submitted by Mostafa Elzeiny <moelz...@microsoft.com>
+// Submitted by Mitch Webster <miwe...@microsoft.com>
 *.azurecontainer.io
 azurewebsites.net
 azure-mobile.net
 cloudapp.net
+azurestaticapps.net
+centralus.azurestaticapps.net
+eastasia.azurestaticapps.net
+eastus2.azurestaticapps.net
+westeurope.azurestaticapps.net
+westus2.azurestaticapps.net
 
 // minion.systems : http://minion.systems
 // Submitted by Robert Böttinger <r@minion.systems>
@@ -12494,19 +12499,22 @@
 ui.nabu.casa
 
 // Names.of.London : https://names.of.london/
-// Submitted by James Stevens <regis...@names.of.london> or <ja...@jrcs.net>
+// Submitted by James Stevens <registry[at]names.of.london> or 
<publiclist[at]jrcs.net>
 pony.club
 of.fashion
-on.fashion
-of.football
 in.london
 of.london
+from.marketing
+with.marketing
 for.men
+repair.men
 and.mom
 for.mom
 for.one
+under.one
 for.sale
-of.work
+that.win
+from.work
 to.work
 
 // NCTU.ME : https://nctu.me/
@@ -12826,6 +12834,12 @@
 // Submitted by Kenneth Van Alstyne <kvanalst...@perspecta.com>
 perspecta.cloud
 
+// PE Ulyanov Kirill Sergeevich : https://airy.host
+// Submitted by Kirill Ulyanov <k.ulya...@airy.host>
+lk3.ru
+ra-ru.ru
+zsew.ru
+
 // Planet-Work : https://www.planet-work.com/
 // Submitted by Frédéric VANNIÈRE <f.vanni...@planet-work.com>
 on-web.fr
@@ -12887,6 +12901,10 @@
 // Submitted by Kor Nielsen <k...@pubtls.org>
 pubtls.org
 
+// QOTO, Org.
+// Submitted by Jeffrey Phillips Freeman <jeffrey.free...@qoto.org>
+qoto.io
+
 // Qualifio : https://qualifio.com/
 // Submitted by Xavier De Cock <xdec...@gmail.com>
 qualifioapp.com
@@ -12972,7 +12990,6 @@
 // Revitalised Limited : http://www.revitalised.co.uk
 // Submitted by Jack Price <j...@revitalised.co.uk>
 wellbeingzone.eu
-ptplus.fit
 wellbeingzone.co.uk
 
 // Rochester Institute of Technology : http://www.rit.edu/
@@ -13346,7 +13363,7 @@
 // Submitted by Fajar Sodik <offic...@wapblog.id>
 idnblogger.com
 indowapblog.com
-bloghp.id
+bloger.id
 wblog.id
 wbq.me
 fastblog.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/lua-recursor4.cc 
new/pdns-recursor-4.4.1/lua-recursor4.cc
--- old/pdns-recursor-4.4.0/lua-recursor4.cc    2020-10-13 22:49:08.000000000 
+0200
+++ new/pdns-recursor-4.4.1/lua-recursor4.cc    2020-11-24 16:38:09.000000000 
+0100
@@ -354,8 +354,8 @@
 
   d_pd.push_back({"now", &g_now});
 
-  d_lw->writeFunction("getMetric", [](const std::string& str) {
-      return DynMetric{getDynMetric(str)};
+  d_lw->writeFunction("getMetric", [](const std::string& str, 
boost::optional<std::string> prometheusName) {
+    return DynMetric{getDynMetric(str, prometheusName ? *prometheusName : "")};
     });
 
   d_lw->registerFunction("inc", &DynMetric::inc);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/mtasker.hh 
new/pdns-recursor-4.4.1/mtasker.hh
--- old/pdns-recursor-4.4.0/mtasker.hh  2020-10-16 10:10:45.000000000 +0200
+++ new/pdns-recursor-4.4.1/mtasker.hh  2020-11-24 16:38:09.000000000 +0100
@@ -81,7 +81,7 @@
     EventKey key;
     std::shared_ptr<pdns_ucontext_t> context;
     struct timeval ttd;
-    int tid;    
+    int tid;
   };
 
   typedef multi_index_container<
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/pdns_recursor.1 
new/pdns-recursor-4.4.1/pdns_recursor.1
--- old/pdns-recursor-4.4.0/pdns_recursor.1     2020-10-16 12:36:13.000000000 
+0200
+++ new/pdns-recursor-4.4.1/pdns_recursor.1     2020-11-24 23:30:40.000000000 
+0100
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "PDNS_RECURSOR" "1" "Oct 16, 2020" "" "PowerDNS Recursor"
+.TH "PDNS_RECURSOR" "1" "Nov 24, 2020" "" "PowerDNS Recursor"
 .SH NAME
 pdns_recursor \- The PowerDNS Recursor binary
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/pdns_recursor.cc 
new/pdns-recursor-4.4.1/pdns_recursor.cc
--- old/pdns-recursor-4.4.0/pdns_recursor.cc    2020-10-16 10:10:45.000000000 
+0200
+++ new/pdns-recursor-4.4.1/pdns_recursor.cc    2020-11-24 16:38:09.000000000 
+0100
@@ -644,7 +644,7 @@
   pair<MT_t::waiters_t::iterator, MT_t::waiters_t::iterator> 
chain=MT->d_waiters.equal_range(pident, PacketIDBirthdayCompare());
 
   for(; chain.first != chain.second; chain.first++) {
-    if(chain.first->key.fd > -1) { // don't chain onto existing chained waiter!
+    if(chain.first->key.fd > -1 && !chain.first->key.closed) { // don't chain 
onto existing chained waiter or a chain already processed
       /*
       cerr<<"Orig: "<<pident.domain<<", "<<pident.remote.toString()<<", 
id="<<id<<endl;
       cerr<<"Had hit: "<< chain.first->key.domain<<", 
"<<chain.first->key.remote.toString()<<", id="<<chain.first->key.id
@@ -1132,7 +1132,13 @@
     // Send a DNS A query to <domain>.g_nodLookupDomain
     static const QType qt(QType::A);
     static const uint16_t qc(QClass::IN);
-    DNSName qname = dname + g_nodLookupDomain;
+    DNSName qname;
+    try {
+      qname = dname + g_nodLookupDomain;
+    }
+    catch(const std::range_error &e) {
+      return;
+    }
     vector<DNSRecord> dummy;
     directResolve(qname, qt, qc, dummy);
   }
@@ -1186,7 +1192,16 @@
 
 int getFakeAAAARecords(const DNSName& qname, ComboAddress prefix, 
vector<DNSRecord>& ret)
 {
-  int rcode = directResolve(qname, QType(QType::A), QClass::IN, ret);
+  /* we pass a separate vector of records because we will be resolving the 
initial qname
+     again, possibly encountering the same CNAME(s), and we don't want to 
trigger the CNAME
+     loop detection. */
+  vector<DNSRecord> newRecords;
+  int rcode = directResolve(qname, QType(QType::A), QClass::IN, newRecords);
+
+  ret.reserve(ret.size() + newRecords.size());
+  for (auto& record : newRecords) {
+    ret.push_back(std::move(record));
+  }
 
   // Remove double CNAME records
   std::set<DNSName> seenCNAMEs;
@@ -1488,7 +1503,7 @@
         }
       }
 
-      if (policyOverride) {
+      if (!policyOverride) {
         /* No RPZ or gettag overrides it anyway */
         ret = std::move(dc->d_records);
         res = *dc->d_rcode;
@@ -3712,6 +3727,9 @@
 // resend event to everybody chained onto it
 static void doResends(MT_t::waiters_t::iterator& iter, PacketID resend, const 
string& content)
 {
+  // We close the chain for new entries, since they won't be processed anyway
+  iter->key.closed = true;
+
   if(iter->key.chain.empty())
     return;
   //  cerr<<"doResends called!\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/pubsuffix.cc 
new/pdns-recursor-4.4.1/pubsuffix.cc
--- old/pdns-recursor-4.4.0/pubsuffix.cc        2020-10-16 12:36:14.000000000 
+0200
+++ new/pdns-recursor-4.4.1/pubsuffix.cc        2020-11-24 23:30:41.000000000 
+0100
@@ -5634,6 +5634,7 @@
 "betainabox.com",
 "bnr.la",
 "blackbaudcdn.net",
+"of.je",
 "boomla.net",
 "boxfuse.io",
 "square7.ch",
@@ -5691,7 +5692,6 @@
 "shop.ro",
 "c.la",
 "certmgr.org",
-"xenapponazure.com",
 "discourse.group",
 "discourse.team",
 "virtueeldomein.nl",
@@ -5730,7 +5730,6 @@
 "cloudns.pro",
 "cloudns.pw",
 "cloudns.us",
-"cloudeity.net",
 "cnpy.gdn",
 "co.nl",
 "co.no",
@@ -6081,6 +6080,7 @@
 "ddnss.org",
 "definima.net",
 "definima.io",
+"ondigitalocean.app",
 "bci.dnstrace.pro",
 "ddnsfree.com",
 "ddnsgeek.com",
@@ -6279,6 +6279,7 @@
 "couk.me",
 "ukco.me",
 "mydobiss.com",
+"fh-muenster.io",
 "filegear.me",
 "filegear-au.me",
 "filegear-de.me",
@@ -6430,6 +6431,7 @@
 "ravendb.me",
 "development.run",
 "ravendb.run",
+"secaas.hk",
 "bpl.biz",
 "orx.biz",
 "ng.city",
@@ -6507,6 +6509,9 @@
 "it1.eur.aruba.jenv-aruba.cloud",
 "it1.jenv-aruba.cloud",
 "it1-eur.jenv-arubabiz.cloud",
+"oxa.cloud",
+"tn.oxa.cloud",
+"uk.oxa.cloud",
 "primetel.cloud",
 "uk.primetel.cloud",
 "ca.reclaim.cloud",
@@ -6577,6 +6582,7 @@
 "enscaled.sg",
 "jele.site",
 "jelastic.team",
+"orangecloud.tn",
 "j.layershift.co.uk",
 "phx.enscaled.us",
 "mircloud.us",
@@ -6606,7 +6612,6 @@
 "co.place",
 "co.technology",
 "app.lmpm.com",
-"linkitools.space",
 "linkyard.cloud",
 "linkyard-cloud.ch",
 "members.linode.com",
@@ -6623,7 +6628,6 @@
 "lublin.pl",
 "poniatowa.pl",
 "swidnik.pl",
-"uklugs.org",
 "glug.org.uk",
 "lug.org.uk",
 "lugs.org.uk",
@@ -6667,6 +6671,12 @@
 "azurewebsites.net",
 "azure-mobile.net",
 "cloudapp.net",
+"azurestaticapps.net",
+"centralus.azurestaticapps.net",
+"eastasia.azurestaticapps.net",
+"eastus2.azurestaticapps.net",
+"westeurope.azurestaticapps.net",
+"westus2.azurestaticapps.net",
 "csx.cc",
 "forte.id",
 "mozilla-iot.org",
@@ -6687,16 +6697,19 @@
 "ui.nabu.casa",
 "pony.club",
 "of.fashion",
-"on.fashion",
-"of.football",
 "in.london",
 "of.london",
+"from.marketing",
+"with.marketing",
 "for.men",
+"repair.men",
 "and.mom",
 "for.mom",
 "for.one",
+"under.one",
 "for.sale",
-"of.work",
+"that.win",
+"from.work",
 "to.work",
 "nctu.me",
 "netlify.app",
@@ -6904,6 +6917,9 @@
 "gotpantheon.com",
 "mypep.link",
 "perspecta.cloud",
+"lk3.ru",
+"ra-ru.ru",
+"zsew.ru",
 "on-web.fr",
 "bc.platform.sh",
 "ent.platform.sh",
@@ -6924,6 +6940,7 @@
 "chirurgiens-dentistes-en-france.fr",
 "byen.site",
 "pubtls.org",
+"qoto.io",
 "qualifioapp.com",
 "qbuser.com",
 "instantcloud.cn",
@@ -6948,7 +6965,6 @@
 "devices.resinstaging.io",
 "hzc.io",
 "wellbeingzone.eu",
-"ptplus.fit",
 "wellbeingzone.co.uk",
 "git-pages.rit.edu",
 "sandcats.io",
@@ -7133,7 +7149,7 @@
 "wafflecell.com",
 "idnblogger.com",
 "indowapblog.com",
-"bloghp.id",
+"bloger.id",
 "wblog.id",
 "wbq.me",
 "fastblog.net",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/rec-carbon.cc 
new/pdns-recursor-4.4.1/rec-carbon.cc
--- old/pdns-recursor-4.4.0/rec-carbon.cc       2020-10-13 22:49:08.000000000 
+0200
+++ new/pdns-recursor-4.4.1/rec-carbon.cc       2020-11-24 16:38:09.000000000 
+0100
@@ -54,14 +54,13 @@
     s.connect(remote);  // we do the connect so the first attempt happens 
while we gather stats
  
     if(msg.empty()) {
-      typedef map<string,string> all_t;
-      all_t all=getAllStatsMap(StatComponent::Carbon);
+      auto all = getAllStatsMap(StatComponent::Carbon);
       
       ostringstream str;
       time_t now=time(0);
       
-      for(const all_t::value_type& val :  all) {
-        
str<<namespace_name<<'.'<<hostname<<'.'<<instance_name<<'.'<<val.first<<' 
'<<val.second<<' '<<now<<"\r\n";
+      for(const auto& val : all) {
+        
str<<namespace_name<<'.'<<hostname<<'.'<<instance_name<<'.'<<val.first<<' 
'<<val.second.d_value<<' '<<now<<"\r\n";
       }
       msg = str.str();
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/rec_channel.hh 
new/pdns-recursor-4.4.1/rec_channel.hh
--- old/pdns-recursor-4.4.0/rec_channel.hh      2020-10-13 22:49:08.000000000 
+0200
+++ new/pdns-recursor-4.4.1/rec_channel.hh      2020-11-24 16:38:09.000000000 
+0100
@@ -72,7 +72,13 @@
 
 enum class StatComponent { API, Carbon, RecControl, SNMP };
 
-std::map<std::string, std::string> getAllStatsMap(StatComponent component);
+struct StatsMapEntry {
+  std::string d_prometheusName;
+  std::string d_value;
+};
+typedef std::map<std::string, StatsMapEntry> StatsMap;
+StatsMap getAllStatsMap(StatComponent component);
+
 extern std::mutex g_carbon_config_lock;
 std::vector<std::pair<DNSName, uint16_t> >* pleaseGetQueryRing();
 std::vector<std::pair<DNSName, uint16_t> >* pleaseGetServfailQueryRing();
@@ -83,7 +89,7 @@
 std::vector<ComboAddress>* pleaseGetLargeAnswerRemotes();
 std::vector<ComboAddress>* pleaseGetTimeouts();
 DNSName getRegisteredName(const DNSName& dom);
-std::atomic<unsigned long>* getDynMetric(const std::string& str);
+std::atomic<unsigned long>* getDynMetric(const std::string& str, const 
std::string& prometheusName);
 optional<uint64_t> getStatByName(const std::string& name);
 bool isStatBlacklisted(StatComponent component, const std::string& name);
 void blacklistStat(StatComponent component, const string& name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/rec_channel_rec.cc 
new/pdns-recursor-4.4.1/rec_channel_rec.cc
--- old/pdns-recursor-4.4.0/rec_channel_rec.cc  2020-10-16 10:10:45.000000000 
+0200
+++ new/pdns-recursor-4.4.1/rec_channel_rec.cc  2020-11-24 16:38:09.000000000 
+0100
@@ -43,7 +43,12 @@
 static map<string, const std::atomic<uint64_t>*> d_getatomics;
 static map<string, function< uint64_t() > >  d_get64bitmembers;
 static std::mutex d_dynmetricslock;
-static map<string, std::atomic<unsigned long>* > d_dynmetrics;
+struct dynmetrics {
+  std::atomic<unsigned long> *d_ptr;
+  std::string d_prometheusName;
+};
+
+static map<string, dynmetrics> d_dynmetrics;
 
 static std::map<StatComponent, std::set<std::string>> s_blacklistedStats;
 
@@ -82,16 +87,31 @@
   d_get64bitmembers[name]=f;
 }
 
-std::atomic<unsigned long>* getDynMetric(const std::string& str)
+static std::string getPrometheusName(const std::string& arg)
+{
+  std::string name = arg;
+  std::replace_if(name.begin(), name.end(), [](char c){
+    return !isalnum(static_cast<unsigned char>(c));}, '_');
+  return "pdns_recursor_" + name;
+}
+
+std::atomic<unsigned long>* getDynMetric(const std::string& str, const 
std::string& prometheusName)
 {
   std::lock_guard<std::mutex> l(d_dynmetricslock);
   auto f = d_dynmetrics.find(str);
   if(f != d_dynmetrics.end())
-    return f->second;
+    return f->second.d_ptr;
 
-  auto ret = new std::atomic<unsigned long>();
+  std::string name(str);
+  if (!prometheusName.empty()) {
+    name = prometheusName;
+  } else {
+    name = getPrometheusName(name);
+  }
+
+  auto ret = dynmetrics{new std::atomic<unsigned long>(), name};
   d_dynmetrics[str]= ret;
-  return ret;
+  return ret.d_ptr;
 }
 
 static optional<uint64_t> get(const string& name)
@@ -106,9 +126,9 @@
     return d_get64bitmembers.find(name)->second();
 
   std::lock_guard<std::mutex> l(d_dynmetricslock);
-  auto f =rplookup(d_dynmetrics, name);
-  if(f)
-    return (*f)->load();
+  auto f = rplookup(d_dynmetrics, name);
+  if (f)
+    return f->d_ptr->load();
   
   return ret;
 }
@@ -118,25 +138,25 @@
   return get(name);
 }
 
-map<string,string> getAllStatsMap(StatComponent component)
+StatsMap getAllStatsMap(StatComponent component)
 {
-  map<string,string> ret;
+  StatsMap ret;
   const auto& blacklistMap = s_blacklistedStats.at(component);
 
   for(const auto& the32bits :  d_get32bitpointers) {
     if (blacklistMap.count(the32bits.first) == 0) {
-      ret.insert(make_pair(the32bits.first, 
std::to_string(*the32bits.second)));
+      ret.insert(make_pair(the32bits.first, 
StatsMapEntry{getPrometheusName(the32bits.first), 
std::to_string(*the32bits.second)}));
     }
   }
   for(const auto& atomic :  d_getatomics) {
     if (blacklistMap.count(atomic.first) == 0) {
-      ret.insert(make_pair(atomic.first, 
std::to_string(atomic.second->load())));
+      ret.insert(make_pair(atomic.first, 
StatsMapEntry{getPrometheusName(atomic.first), 
std::to_string(atomic.second->load())}));
     }
   }
 
   for(const auto& the64bitmembers :  d_get64bitmembers) {
     if (blacklistMap.count(the64bitmembers.first) == 0) {
-      ret.insert(make_pair(the64bitmembers.first, 
std::to_string(the64bitmembers.second())));
+      ret.insert(make_pair(the64bitmembers.first, 
StatsMapEntry{getPrometheusName(the64bitmembers.first), 
std::to_string(the64bitmembers.second())}));
     }
   }
 
@@ -144,7 +164,7 @@
     std::lock_guard<std::mutex> l(d_dynmetricslock);
     for(const auto& a : d_dynmetrics) {
       if (blacklistMap.count(a.first) == 0) {
-        ret.insert({a.first, std::to_string(*a.second)});
+        ret.insert(make_pair(a.first, StatsMapEntry{a.second.d_prometheusName, 
std::to_string(*a.second.d_ptr)}));
       }
     }
   }
@@ -154,11 +174,10 @@
 
 static string getAllStats()
 {
-  typedef map<string, string> varmap_t;
-  varmap_t varmap = getAllStatsMap(StatComponent::RecControl);
+  auto varmap = getAllStatsMap(StatComponent::RecControl);
   string ret;
-  for(varmap_t::value_type& tup :  varmap) {
-    ret += tup.first + "\t" + tup.second +"\n";
+  for (const auto& tup : varmap) {
+    ret += tup.first + "\t" + tup.second.d_value + "\n";
   }
   return ret;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/rec_control.1 
new/pdns-recursor-4.4.1/rec_control.1
--- old/pdns-recursor-4.4.0/rec_control.1       2020-10-16 12:36:13.000000000 
+0200
+++ new/pdns-recursor-4.4.1/rec_control.1       2020-11-24 23:30:40.000000000 
+0100
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "REC_CONTROL" "1" "Oct 16, 2020" "" "PowerDNS Recursor"
+.TH "REC_CONTROL" "1" "Nov 24, 2020" "" "PowerDNS Recursor"
 .SH NAME
 rec_control \- Command line tool to control a running Recursor
 .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/syncres.cc 
new/pdns-recursor-4.4.1/syncres.cc
--- old/pdns-recursor-4.4.0/syncres.cc  2020-10-16 10:10:45.000000000 +0200
+++ new/pdns-recursor-4.4.1/syncres.cc  2020-11-24 16:38:09.000000000 +0100
@@ -1497,6 +1497,13 @@
         throw ImmediateServFailException(msg);
       }
 
+      if (newTarget.isPartOf(qname)) {
+        // a.b.c. CNAME x.a.b.c will go to great depths with QM on
+        string msg = "got a CNAME referral (from cache) to child, disabling 
QM";
+        LOG(prefix<<qname<<": "<<msg<<endl);
+        setQNameMinimization(false);
+      }
+
       // Check to see if we already have seen the new target as a previous 
target
       if (scanForCNAMELoop(newTarget, ret)) {
         string msg = "got a CNAME referral (from cache) that causes a loop";
@@ -3662,6 +3669,11 @@
     rcode = RCode::ServFail;
     return;
   }
+  if (newtarget.isPartOf(qname)) {
+    // a.b.c. CNAME x.a.b.c will go to great depths with QM on
+    LOG(prefix<<qname<<": status=got a CNAME referral to child, disabling 
QM"<<endl);
+    setQNameMinimization(false);
+  }
 
   if (depth > 10) {
     LOG(prefix<<qname<<": status=got a CNAME referral, but recursing too deep, 
returning SERVFAIL"<<endl);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/syncres.hh 
new/pdns-recursor-4.4.1/syncres.hh
--- old/pdns-recursor-4.4.0/syncres.hh  2020-10-16 10:10:45.000000000 +0200
+++ new/pdns-recursor-4.4.1/syncres.hh  2020-11-24 16:38:09.000000000 +0100
@@ -926,7 +926,7 @@
 
 struct PacketID
 {
-  PacketID() : id(0), type(0), sock(0), inNeeded(0), inIncompleteOkay(false), 
outPos(0), nearMisses(0), fd(-1)
+  PacketID() : id(0), type(0), sock(0), inNeeded(0), inIncompleteOkay(false), 
outPos(0), nearMisses(0), fd(-1), closed(false)
   {
     remote.reset();
   }
@@ -948,6 +948,7 @@
   mutable chain_t chain;
   mutable uint32_t nearMisses; // number of near misses - host correct, id 
wrong
   int fd;
+  mutable bool closed; // Processing already started, don't accept new chained 
ids
 
   bool operator<(const PacketID& b) const
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdns-recursor-4.4.0/ws-recursor.cc 
new/pdns-recursor-4.4.1/ws-recursor.cc
--- old/pdns-recursor-4.4.0/ws-recursor.cc      2020-10-16 10:10:45.000000000 
+0200
+++ new/pdns-recursor-4.4.1/ws-recursor.cc      2020-11-24 16:38:09.000000000 
+0100
@@ -50,8 +50,12 @@
 
 void productServerStatisticsFetch(map<string,string>& out)
 {
-  map<string,string> stats = getAllStatsMap(StatComponent::API);
-  out.swap(stats);
+  auto stats = getAllStatsMap(StatComponent::API);
+  map<string,string> ret;
+  for (const auto& entry: stats) {
+    ret.insert(make_pair(entry.first, entry.second.d_value));
+  }
+  out.swap(ret);
 }
 
 boost::optional<uint64_t> productServerStatisticsFetch(const std::string& name)
@@ -434,16 +438,14 @@
 
     registerAllStats();
 
-
     std::ostringstream output;
-    typedef map <string, string> varmap_t;
-    varmap_t varmap = getAllStatsMap(
-            StatComponent::API); // Argument controls blacklisting of any 
stats. So stats-api-blacklist will be used to block returned stats.
-    for (const auto &tup :  varmap) {
-        std::string metricName = tup.first;
 
-        // Prometheus suggest using '_' instead of '-'
-        std::string prometheusMetricName = "pdns_recursor_" + 
boost::replace_all_copy(metricName, "-", "_");
+    // Argument controls blacklisting of any stats. So
+    // stats-api-blacklist will be used to block returned stats.
+    auto varmap = getAllStatsMap(StatComponent::API);
+    for (const auto& tup : varmap) {
+        std::string metricName = tup.first;
+        std::string prometheusMetricName = tup.second.d_prometheusName;
 
         MetricDefinition metricDetails;
 
@@ -459,7 +461,7 @@
           output << "# HELP " << prometheusMetricName << " " << 
metricDetails.description << "\n";
           output << "# TYPE " << prometheusMetricName << " " << 
prometheusTypeName << "\n";
         }
-        output << prometheusMetricName << " " << tup.second << "\n";
+        output << prometheusMetricName << " " << tup.second.d_value << "\n";
     }
 
     output << "# HELP pdns_recursor_info " << "Info from pdns_recursor, value 
is always 1" << "\n";
@@ -469,7 +471,6 @@
     resp->body = output.str();
     resp->headers["Content-Type"] = "text/plain";
     resp->status = 200;
-
 }
 
 
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to