]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
4 years agoauth-4.5.0-beta1: docs+secpoll 10486/head
Peter van Dijk [Wed, 9 Jun 2021 08:50:25 +0000 (10:50 +0200)] 
auth-4.5.0-beta1: docs+secpoll

4 years agoMerge pull request #10481 from omoerbeek/rec-prep-4.5.2
Otto Moerbeek [Wed, 9 Jun 2021 08:16:30 +0000 (10:16 +0200)] 
Merge pull request #10481 from omoerbeek/rec-prep-4.5.2

Rec: Prep for 4.4.4 and 4.5.2

4 years agoMerge pull request #10467 from omoerbeek/rec-openbsd-kqueue
Otto Moerbeek [Tue, 8 Jun 2021 08:07:08 +0000 (10:07 +0200)] 
Merge pull request #10467 from omoerbeek/rec-openbsd-kqueue

Switch OpenBSD to kqueue mplexer

4 years agoMerge branch 'rec-prep-4.4.4' into rec-prep-4.5.2 10481/head
Otto [Tue, 8 Jun 2021 08:00:22 +0000 (10:00 +0200)] 
Merge branch 'rec-prep-4.4.4' into rec-prep-4.5.2

4 years agoMention correct version now that this is backported.
Otto [Mon, 7 Jun 2021 07:39:20 +0000 (09:39 +0200)] 
Mention correct version now that this is backported.

4 years agoPrep for 4.5.2, no secpoll change yet since it will conflict with the rec-4.4.4 one.
Otto [Mon, 7 Jun 2021 12:08:11 +0000 (14:08 +0200)] 
Prep for 4.5.2, no secpoll change yet since it will conflict with the rec-4.4.4 one.

4 years agoMerge pull request #10437 from Habbie/ldap-docs-master-yes auth-4.6.0-alpha0
Peter van Dijk [Mon, 7 Jun 2021 10:39:35 +0000 (12:39 +0200)] 
Merge pull request #10437 from Habbie/ldap-docs-master-yes

auth ldap: note that master mode -is- supported

4 years agoPrep for rec-4.4.4
Otto [Mon, 7 Jun 2021 08:24:07 +0000 (10:24 +0200)] 
Prep for rec-4.4.4

4 years agoMerge pull request #10469 from Habbie/dnsdist-no-dnsdist-table auth-4.5.0-beta1
Remi Gacogne [Mon, 7 Jun 2021 08:43:39 +0000 (10:43 +0200)] 
Merge pull request #10469 from Habbie/dnsdist-no-dnsdist-table

dnsdist: remove dnsdist.* lookup fallback

4 years agoMerge pull request #10463 from Habbie/lua-forward-reverse
Peter van Dijk [Sun, 6 Jun 2021 18:32:30 +0000 (20:32 +0200)] 
Merge pull request #10463 from Habbie/lua-forward-reverse

auth LUA: add filterForward function, to limit the scope of createForward[6]

4 years agoadd filterForward function, plus initialiser helper in newNMG 10463/head
Peter van Dijk [Tue, 1 Jun 2021 13:54:02 +0000 (15:54 +0200)] 
add filterForward function, plus initialiser helper in newNMG

4 years agoauth LUA testing: test the exception feature
Peter van Dijk [Mon, 31 May 2021 15:15:14 +0000 (17:15 +0200)] 
auth LUA testing: test the exception feature

4 years agoexpand LUA createForward/Reverse testing
Peter van Dijk [Mon, 31 May 2021 10:51:18 +0000 (12:51 +0200)] 
expand LUA createForward/Reverse testing

4 years agoauthtests.py: fix rcode comparison and reporting
Peter van Dijk [Mon, 31 May 2021 14:46:22 +0000 (16:46 +0200)] 
authtests.py: fix rcode comparison and reporting

4 years agorename suffix to format
Peter van Dijk [Fri, 28 May 2021 21:14:21 +0000 (23:14 +0200)] 
rename suffix to format

4 years agoMerge pull request #10470 from mind04/pdns-auth-py
Peter van Dijk [Sun, 6 Jun 2021 15:03:21 +0000 (17:03 +0200)] 
Merge pull request #10470 from mind04/pdns-auth-py

auth: disable zone-cache for the regression.auth-py tests

4 years agoauth: fix the nobackend tests 10470/head
Kees Monshouwer [Sun, 6 Jun 2021 11:01:12 +0000 (13:01 +0200)] 
auth: fix the nobackend tests

4 years agoauth: disable zone-cache for the regression.auth-py tests
Kees Monshouwer [Sat, 5 Jun 2021 23:33:03 +0000 (01:33 +0200)] 
auth: disable zone-cache for the regression.auth-py tests

4 years agodnsdist: remove dnsdist.* lookup fallback 10469/head
Peter van Dijk [Sat, 5 Jun 2021 16:57:56 +0000 (18:57 +0200)] 
dnsdist: remove dnsdist.* lookup fallback

4 years agoMerge pull request #10426 from omoerbeek/rec-refresh-ns-and-addr-fix
Otto Moerbeek [Fri, 4 Jun 2021 14:34:49 +0000 (16:34 +0200)] 
Merge pull request #10426 from omoerbeek/rec-refresh-ns-and-addr-fix

rec: When refreshing, do not consider root almost expired

4 years agoSwitch OpenBSD to kqueue mplexer; untested 10467/head
Otto [Fri, 4 Jun 2021 14:02:35 +0000 (16:02 +0200)] 
Switch OpenBSD to kqueue mplexer; untested

4 years agomake ttl value's origin clear 10426/head
Otto Moerbeek [Fri, 4 Jun 2021 12:58:50 +0000 (14:58 +0200)] 
make ttl value's origin clear

Co-authored-by: Remi Gacogne <github@coredump.fr>
4 years agoAdd testcase for "almost expired".
Otto [Fri, 4 Jun 2021 11:27:44 +0000 (13:27 +0200)] 
Add testcase for "almost expired".

4 years agoMerge pull request #10450 from pieterlexis/modernize-ax_check_sign
Peter van Dijk [Thu, 3 Jun 2021 20:36:55 +0000 (22:36 +0200)] 
Merge pull request #10450 from pieterlexis/modernize-ax_check_sign

Update AX_CHECK_SIGN for autoconf 2.71

4 years agoMerge pull request #10454 from mind04/pdns-tiny-getalldomains
Peter van Dijk [Thu, 3 Jun 2021 18:57:41 +0000 (20:57 +0200)] 
Merge pull request #10454 from mind04/pdns-tiny-getalldomains

auth: add/fix getAllDomains()

4 years agoMerge pull request #10466 from tuxis-ie/fix_issue_10465
Peter van Dijk [Thu, 3 Jun 2021 14:57:29 +0000 (16:57 +0200)] 
Merge pull request #10466 from tuxis-ie/fix_issue_10465

Update documentation to reflect changes in default-soa-content.

4 years agoadd markup 10466/head
Peter van Dijk [Thu, 3 Jun 2021 14:57:18 +0000 (16:57 +0200)] 
add markup

4 years agoMerge pull request #10461 from mind04/pdns-createdomain
Peter van Dijk [Thu, 3 Jun 2021 14:51:19 +0000 (16:51 +0200)] 
Merge pull request #10461 from mind04/pdns-createdomain

auth: simplify createDomain()

4 years agoMerge pull request #10452 from cmouse/doc-unknown-rr
Peter van Dijk [Thu, 3 Jun 2021 13:46:31 +0000 (15:46 +0200)] 
Merge pull request #10452 from cmouse/doc-unknown-rr

docs: Document unknown record type in supported types

4 years agoauth: document and check backend zone-cache capability 10454/head
Kees Monshouwer [Thu, 3 Jun 2021 06:44:38 +0000 (08:44 +0200)] 
auth: document and check backend zone-cache capability

4 years agoUpdate with @Habbie's suggestions
Mark Schouten [Thu, 3 Jun 2021 11:59:37 +0000 (13:59 +0200)] 
Update with @Habbie's suggestions

4 years agoUpdate documentation to reflect changes in default-soa-content.
Mark Schouten [Thu, 3 Jun 2021 10:32:06 +0000 (12:32 +0200)] 
Update documentation to reflect changes in default-soa-content.

There are more settings that need replacing.

4 years agoMerge pull request #10460 from rgacogne/rec-referral-from-parent-on-ds
Remi Gacogne [Thu, 3 Jun 2021 08:44:39 +0000 (10:44 +0200)] 
Merge pull request #10460 from rgacogne/rec-referral-from-parent-on-ds

rec: Don't follow referral from the parent to the child for DS queries

4 years agoauth: simplify createDomain() 10461/head
Kees Monshouwer [Mon, 31 May 2021 21:25:13 +0000 (23:25 +0200)] 
auth: simplify createDomain()

4 years agoMerge pull request #10419 from rgacogne/ddist-fix-edns-notify
Remi Gacogne [Wed, 2 Jun 2021 14:36:13 +0000 (16:36 +0200)] 
Merge pull request #10419 from rgacogne/ddist-fix-edns-notify

dnsdist: Properly handle ECS for queries with ancount or nscount > 0

4 years agorec: Cleaner way of handling a referral to a child zone for DS queries 10460/head
Remi Gacogne [Wed, 2 Jun 2021 14:29:40 +0000 (16:29 +0200)] 
rec: Cleaner way of handling a referral to a child zone for DS queries

4 years agorec: Also test for the "referral to child on DS query" case in a Secure zone
Remi Gacogne [Wed, 2 Jun 2021 14:26:14 +0000 (16:26 +0200)] 
rec: Also test for the "referral to child on DS query" case in a Secure zone

4 years agoBetter approach: just never consider root records "almost expired".
Otto [Wed, 2 Jun 2021 14:11:44 +0000 (16:11 +0200)] 
Better approach: just never consider root records "almost expired".

They will be refreshed by the periodic task anyway.

4 years agorec: Fix a typo in a comment
Remi Gacogne [Wed, 2 Jun 2021 13:02:42 +0000 (15:02 +0200)] 
rec: Fix a typo in a comment

4 years agorec: Add a unit test for the "referral to child on DS query" case
Remi Gacogne [Wed, 2 Jun 2021 13:00:32 +0000 (15:00 +0200)] 
rec: Add a unit test for the "referral to child on DS query" case

4 years agoMerge pull request #10445 from rgacogne/rec-typo-edns-prometheus-metric
Otto Moerbeek [Wed, 2 Jun 2021 11:28:18 +0000 (13:28 +0200)] 
Merge pull request #10445 from rgacogne/rec-typo-edns-prometheus-metric

rec: Fix a typo in the prometheus "edns-ping-mismatches" metric

4 years agoMerge pull request #10459 from Habbie/auth-py-tests
Peter van Dijk [Wed, 2 Jun 2021 10:15:17 +0000 (12:15 +0200)] 
Merge pull request #10459 from Habbie/auth-py-tests

auth-py tests: unbreak, enable in CircleCI

4 years agoUpdate AX_CHECK_SIGN for autoconf 2.71 10450/head
Pieter Lexis [Wed, 26 May 2021 12:24:17 +0000 (14:24 +0200)] 
Update AX_CHECK_SIGN for autoconf 2.71

When running autoreconf with ax_check_sign.m4, autoconf 2.71 complains
about the use of `AX_TRY_COMPILE`:

```
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:29: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:29: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/ax_check_sign.m4:41: AX_CHECK_SIGN is expanded from...
m4/pdns_check_time_t.m4:1: PDNS_CHECK_TIME_T is expanded from...
configure.ac:29: the top level
```

This updates the macro to use `AC_COMPILE_IFELSE`, which has been present in
autoconf since at least version 2.60, released in 26 Jun 2006 (I did not
check any older releases).

This patch has been [submitted](http://savannah.gnu.org/patch/index.php?10071) [upstream](https://github.com/autoconf-archive/autoconf-archive/pull/225).

4 years agoMerge pull request #10407 from zeha/bullseye
Peter van Dijk [Tue, 1 Jun 2021 08:36:56 +0000 (10:36 +0200)] 
Merge pull request #10407 from zeha/bullseye

builder-support: add Debian bullseye dockerfiles

4 years agoMerge pull request #10462 from pieterlexis/update-boost-m4
Peter van Dijk [Tue, 1 Jun 2021 08:33:27 +0000 (10:33 +0200)] 
Merge pull request #10462 from pieterlexis/update-boost-m4

Update boost.m4

4 years agoauth LUA testing: allow 2 seconds for health checking to run 10459/head
Peter van Dijk [Tue, 1 Jun 2021 08:12:42 +0000 (10:12 +0200)] 
auth LUA testing: allow 2 seconds for health checking to run

4 years agoUpdate boost.m4 10462/head
Pieter Lexis [Tue, 1 Jun 2021 07:12:15 +0000 (09:12 +0200)] 
Update boost.m4

4 years agorec: Don't follow referral from the parent to the child for DS queries
Remi Gacogne [Mon, 31 May 2021 15:00:18 +0000 (17:00 +0200)] 
rec: Don't follow referral from the parent to the child for DS queries

It happens if the server does not know about the DS special case.
Treat the delegation as a unsigned NODATA answer in that case.

For example for sthc.nordlo.cloud we go from the existing:

```
[1]   sthc.nordlo.cloud: Resolved 'nordlo.cloud' NS ns2.zetup.se to: 159.253.27.75
[1]   sthc.nordlo.cloud: Trying IP 159.253.27.75:53, asking 'sthc.nordlo.cloud|DS'
[1]   sthc.nordlo.cloud: Got 3 answers from ns2.zetup.se (159.253.27.75), rcode=0 (No Error), aa=0, in 35ms
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns2.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns1.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: OPT answer '.' from 'nordlo.cloud' nameservers
[1]   sthc.nordlo.cloud: determining status after receiving this packet
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns2.loopia.se.'
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns1.loopia.se.'
[1]   sthc.nordlo.cloud: status=did not resolve, got 2 NS, looping to them
[1]   sthc.nordlo.cloud.: Nameservers: ns1.loopia.se(37.85ms), ns2.loopia.se(38.26ms)
[1]   sthc.nordlo.cloud: Trying to resolve NS 'ns1.loopia.se' (1/2)
[1]   Nameserver ns1.loopia.se IPs: 93.188.0.20(37.85ms)
[1]   sthc.nordlo.cloud: Resolved 'sthc.nordlo.cloud' NS ns1.loopia.se to: 93.188.0.20
[1]   sthc.nordlo.cloud: Trying IP 93.188.0.20:53, asking 'sthc.nordlo.cloud|DS'
```

to:

```
[1]   sthc.nordlo.cloud: Resolved 'nordlo.cloud' NS ns2.zetup.se to: 159.253.27.75
[1]   sthc.nordlo.cloud: Trying IP 159.253.27.75:53, asking 'sthc.nordlo.cloud|DS'
[1]   sthc.nordlo.cloud: Got 3 answers from ns2.zetup.se (159.253.27.75), rcode=0 (No Error), aa=0, in 35ms
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns2.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: accept answer 'sthc.nordlo.cloud|NS|ns1.loopia.se.' from 'nordlo.cloud' nameservers? ttl=3600, place=2 YES!
[1]   sthc.nordlo.cloud: OPT answer '.' from 'nordlo.cloud' nameservers
[1]   sthc.nordlo.cloud: determining status after receiving this packet
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns2.loopia.se.'
[1]   sthc.nordlo.cloud: got (implicit) negative indication of DS record for 'sthc.nordlo.cloud'
[1]   sthc.nordlo.cloud: got NS record 'sthc.nordlo.cloud' -> 'ns1.loopia.se.'
[1]   sthc.nordlo.cloud: status=noerror, other types may exist, but we are done (have negative SOA)
[1] : no signatures for sthc.nordlo.cloud, we likely missed a cut between cloud and nordlo.cloud, looking for it
```

4 years agocircleci: test auth-py
Peter van Dijk [Mon, 15 Feb 2021 13:20:15 +0000 (14:20 +0100)] 
circleci: test auth-py

4 years agoauth testing: enable svc-autohints when testing autohints
Peter van Dijk [Mon, 31 May 2021 13:00:59 +0000 (15:00 +0200)] 
auth testing: enable svc-autohints when testing autohints

4 years agoauth: enable zone cache by default
Peter van Dijk [Wed, 26 May 2021 10:50:14 +0000 (12:50 +0200)] 
auth: enable zone cache by default

4 years agoauth: test with a variety of zone-cache-refresh-interval flavors
Kees Monshouwer [Wed, 26 May 2021 21:43:52 +0000 (23:43 +0200)] 
auth: test with a variety of zone-cache-refresh-interval flavors

4 years agoauth: implement getAllDomains() in geoip backend
Kees Monshouwer [Wed, 26 May 2021 21:32:12 +0000 (23:32 +0200)] 
auth: implement getAllDomains() in geoip backend

4 years agoauth: add dns-get-all-domains in lua2 backend script
Kees Monshouwer [Wed, 26 May 2021 20:30:56 +0000 (22:30 +0200)] 
auth: add dns-get-all-domains in lua2 backend script

4 years agoauth: fix possibe crash in getAllDomains()
Kees Monshouwer [Wed, 26 May 2021 18:41:08 +0000 (20:41 +0200)] 
auth: fix possibe crash in getAllDomains()

4 years agoMerge pull request #10455 from Habbie/builder-yum-upgrade
Peter van Dijk [Fri, 28 May 2021 10:30:21 +0000 (12:30 +0200)] 
Merge pull request #10455 from Habbie/builder-yum-upgrade

builder rpmbuild: run yum upgrade first

4 years agobuilder rpmbuild: run yum upgrade first 10455/head
Peter van Dijk [Thu, 27 May 2021 16:04:46 +0000 (18:04 +0200)] 
builder rpmbuild: run yum upgrade first

4 years agoMerge pull request #10434 from pieterlexis/upgrade-local-ipv6
Peter van Dijk [Thu, 27 May 2021 11:19:22 +0000 (13:19 +0200)] 
Merge pull request #10434 from pieterlexis/upgrade-local-ipv6

Fix the upgrade guide for local-ipv6 + other doc fixes

4 years agoFix SQL highlighting in pgsql docs 10434/head
Pieter Lexis [Fri, 21 May 2021 13:36:54 +0000 (15:36 +0200)] 
Fix SQL highlighting in pgsql docs

4 years agoCorrectly update local-ipv6 deprecation info
Pieter Lexis [Fri, 21 May 2021 13:32:41 +0000 (15:32 +0200)] 
Correctly update local-ipv6 deprecation info

4 years agoMerge pull request #10376 from Habbie/auth-4.5.0-alpha1-docs
Peter van Dijk [Thu, 27 May 2021 08:39:18 +0000 (10:39 +0200)] 
Merge pull request #10376 from Habbie/auth-4.5.0-alpha1-docs

changelog and secpoll for auth-4.5.0-alpha1

4 years agoupdate release date; mention new zone cache feature 10376/head
Peter van Dijk [Thu, 27 May 2021 08:26:56 +0000 (10:26 +0200)] 
update release date; mention new zone cache feature

4 years agodocs: Document unknown record type in supported types 10452/head
Aki Tuomi [Wed, 26 May 2021 17:37:26 +0000 (20:37 +0300)] 
docs: Document unknown record type in supported types

4 years agoMerge pull request #10398 from dmachard/doc-dnsdist-eol
Remi Gacogne [Wed, 26 May 2021 15:41:56 +0000 (17:41 +0200)] 
Merge pull request #10398 from dmachard/doc-dnsdist-eol

 dnsdist: docs new EOL page

4 years agoMerge pull request #10417 from omoerbeek/rec-docs-PolicyEvent.appliedPolicy
Otto Moerbeek [Wed, 26 May 2021 11:21:11 +0000 (13:21 +0200)] 
Merge pull request #10417 from omoerbeek/rec-docs-PolicyEvent.appliedPolicy

rec: Refer to the description in dq.appliedPolicy for PolicyEvent.appliedPolicy

4 years agoMerge pull request #10416 from omoerbeek/redundant-checks-updateCacheFromRecords
Otto Moerbeek [Wed, 26 May 2021 11:20:53 +0000 (13:20 +0200)] 
Merge pull request #10416 from omoerbeek/redundant-checks-updateCacheFromRecords

rec: Remove checks in updateCacheFromRecords that are already done by sanitizeRecords.

4 years agoMerge pull request #10396 from omoerbeek/rec-log-levels
Otto Moerbeek [Wed, 26 May 2021 11:20:27 +0000 (13:20 +0200)] 
Merge pull request #10396 from omoerbeek/rec-log-levels

Take into account g_quiet when determing loglevel and change a few loglevels

4 years agodoc formatting/parsing fixes
Peter van Dijk [Wed, 26 May 2021 11:00:03 +0000 (13:00 +0200)] 
doc formatting/parsing fixes

4 years agochangelog and secpoll for auth-4.5.0-alpha1
Peter van Dijk [Mon, 10 May 2021 09:50:59 +0000 (11:50 +0200)] 
changelog and secpoll for auth-4.5.0-alpha1

4 years agorec: Fix a typo in the prometheus "edns-ping-mismatches" metric 10445/head
Remi Gacogne [Wed, 26 May 2021 08:59:50 +0000 (10:59 +0200)] 
rec: Fix a typo in the prometheus "edns-ping-mismatches" metric

4 years agoMerge pull request #10440 from omoerbeek/rec-nsec3-iter-default
Otto Moerbeek [Wed, 26 May 2021 08:43:33 +0000 (10:43 +0200)] 
Merge pull request #10440 from omoerbeek/rec-nsec3-iter-default

rec: Change nsec3-max-iterations default to 150

4 years agoMerge pull request #10342 from pieterlexis/svcb-rename-echconfig
Peter van Dijk [Tue, 25 May 2021 19:25:56 +0000 (21:25 +0200)] 
Merge pull request #10342 from pieterlexis/svcb-rename-echconfig

SVCB: rename echconfig to ech and add test vectors from draft

4 years agoMerge pull request #10423 from rgacogne/ddist-tcp-max-connections-stats-race
Remi Gacogne [Tue, 25 May 2021 16:11:28 +0000 (18:11 +0200)] 
Merge pull request #10423 from rgacogne/ddist-tcp-max-connections-stats-race

dnsdist: Add a suppression for a race in TCP stats reported by TSAN

4 years agoMerge pull request #10439 from rgacogne/ddist-snmp-tsan-race
Remi Gacogne [Tue, 25 May 2021 16:11:02 +0000 (18:11 +0200)] 
Merge pull request #10439 from rgacogne/ddist-snmp-tsan-race

dnsdist: Fix a data race reported by TSAN in SNMP metrics

4 years agoChange nsec3-max-iterations default to 150 10440/head
Otto [Tue, 25 May 2021 14:17:40 +0000 (16:17 +0200)] 
Change nsec3-max-iterations default to 150

4 years agoMerge pull request #10433 from Habbie/rec-irrelevant-logging
Otto Moerbeek [Tue, 25 May 2021 13:55:21 +0000 (15:55 +0200)] 
Merge pull request #10433 from Habbie/rec-irrelevant-logging

rec: distinguish the various 'Removing irrelevant record' log lines

4 years agoMerge pull request #10326 from omoerbeek/docs-year
Otto Moerbeek [Tue, 25 May 2021 13:42:10 +0000 (15:42 +0200)] 
Merge pull request #10326 from omoerbeek/docs-year

docs: Determine copyright upper bound year by code

4 years agoMerge pull request #10304 from Habbie/auth-faq-protectsystem
Pieter Lexis [Tue, 25 May 2021 13:40:52 +0000 (15:40 +0200)] 
Merge pull request #10304 from Habbie/auth-faq-protectsystem

auth faq: document a ProtectSystem=full implication

4 years agodnsdist: Fix a data race reported by TSAN in SNMP metrics 10439/head
Remi Gacogne [Tue, 25 May 2021 13:37:59 +0000 (15:37 +0200)] 
dnsdist: Fix a data race reported by TSAN in SNMP metrics

Unless I'm mistaken, the report (below) is a false positive since
`std::atomic<T>::operator T` is equivalent to `load()` and
`std::atomic<T>::operator=` to `store()`, but perhaps I'm missing
something.
Note that I could not reproduce the issue using clang++ 11.1.0's
TSAN, only with the one from g++ 11.1.0.

```
==================
WARNING: ThreadSanitizer: data race (pid=11157)
  Atomic read of size 8 at 0x7b7400002580 by thread T2:
    #0 __tsan_atomic64_load <null> (dnsdist+0x7a6eb0)
    #1 std::atomic<double>::load(std::memory_order) const /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/atomic:250:2 (dnsdist+0x83c4da)
    #2 pdns::stat_t_trait<double>::operator double() const /opt/project/pdns/dnsdistdist/./stat_t.hh:67:60 (dnsdist+0xd05b2e)
    #3 backendStatTable_handler(netsnmp_mib_handler_s*, netsnmp_handler_registration_s*, netsnmp_agent_request_info_s*, netsnmp_request_info_s*) /opt/project/pdns/dnsdistdist/dnsdist-snmp.cc:356:54 (dnsdist+0xeceab8)
    #4 netsnmp_call_next_handler <null> (libnetsnmpagent.so.30+0x2a0cc)
    #5 SNMPAgent::handleSNMPQueryCB(int, boost::any&) /opt/project/pdns/dnsdistdist/snmp-agent.cc:96:13 (dnsdist+0xfb2417)
    #6 boost::detail::function::void_function_invoker2<void (*)(int, boost::any&), void, int, boost::any&>::invoke(boost::detail::function::function_buffer&, int, boost::any&) /usr/include/boost/function/function_template.hpp:118:11 (dnsdist+0x8956e8)
    #7 boost::function2<void, int, boost::any&>::operator()(int, boost::any&) const /usr/include/boost/function/function_template.hpp:768:14 (dnsdist+0xf9f13c)
    #8 EpollFDMultiplexer::run(timeval*, int) /opt/project/pdns/dnsdistdist/epollmplexer.cc:176:7 (dnsdist+0xfd1feb)
    #9 SNMPAgent::worker() /opt/project/pdns/dnsdistdist/snmp-agent.cc:141:24 (dnsdist+0xfb273f)
    #10 void std::__invoke_impl<void, void (SNMPAgent::*)(), SNMPAgent*>(std::__invoke_memfun_deref, void (SNMPAgent::*&&)(), SNMPAgent*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:73:14 (dnsdist+0xf36079)
    #11 std::__invoke_result<void (SNMPAgent::*)(), SNMPAgent*>::type std::__invoke<void (SNMPAgent::*)(), SNMPAgent*>(void (SNMPAgent::*&&)(), SNMPAgent*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/invoke.h:95:14 (dnsdist+0xf35f71)
    #12 decltype(std::__invoke(_S_declval<0ul>(), _S_declval<1ul>())) std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:244:13 (dnsdist+0xf35f1e)
    #13 std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:253:11 (dnsdist+0xf35ec5)
    #14 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (SNMPAgent::*)(), SNMPAgent*> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/thread:196:13 (dnsdist+0xf35c29)
    #15 <null> <null> (libstdc++.so.6+0xbbb2e)

  Previous write of size 8 at 0x7b7400002580 by thread T18:
    [failed to restore the stack]

  Location is heap block of size 2304 at 0x7b7400001e00 allocated by main thread:
    #0 operator new(unsigned long, std::align_val_t) <null> (dnsdist+0x7e8c57)
    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ext/new_allocator.h:108:31 (dnsdist+0xe6b4e2)
    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/alloc_traits.h:436:20 (dnsdist+0xe6b430)
    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<DownstreamState, std::allocator<DownstreamState>, (__gnu_cxx::_Lock_policy)2> >&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/allocated_ptr.h:97:21 (dnsdist+0xe6b1d0)
    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<DownstreamState, std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(DownstreamState*&, std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h:675:19 (dnsdist+0xe6fb0a)
    #5 std::__shared_ptr<DownstreamState, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h:1342:14 (dnsdist+0xe6fa7a)
    #6 std::shared_ptr<DownstreamState>::shared_ptr<std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(std::_Sp_alloc_shared_tag<std::allocator<DownstreamState> >, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:359:4 (dnsdist+0xe6f99d)
    #7 std::shared_ptr<DownstreamState> std::allocate_shared<DownstreamState, std::allocator<DownstreamState>, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(std::allocator<DownstreamState> const&, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:705:14 (dnsdist+0xe6f8e0)
    #8 std::shared_ptr<DownstreamState> std::make_shared<DownstreamState, ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool>(ComboAddress&, ComboAddress&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr.h:721:14 (dnsdist+0xe6a726)
    #9 setupLuaConfig(LuaContext&, bool, bool)::$_2::operator()(boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>) const /opt/project/pdns/dnsdistdist/dnsdist-lua.cc:356:11 (dnsdist+0xdf9166)
    #10 _ZN10LuaContext6BinderIRZL14setupLuaConfigRS_bbE3$_2RKN5boost7variantINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJSt13unordered_mapISB_NS5_IbJSB_St6vectorISt4pairIiSB_ESaISF_EESt8functionIFSt5tupleIJ7DNSNamettEERKSK_ttP9dnsheaderEEEEESt4hashISB_ESt8equal_toISB_ESaISE_IKSB_SS_EEEEEEEclIJRKNS4_8optionalIiEEEEEDTcldtdefpT8functiondtdefpT5paramspclsr3stdE7forwardIT_Efp_EEEDpOS1A_ /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1846:20 (dnsdist+0xdf89af)
    #11 _ZN10LuaContext6BinderIRNS0_IRZL14setupLuaConfigRS_bbE3$_2RKN5boost7variantINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJSt13unordered_mapISB_NS5_IbJSB_St6vectorISt4pairIiSB_ESaISF_EESt8functionIFSt5tupleIJ7DNSNamettEERKSK_ttP9dnsheaderEEEEESt4hashISB_ESt8equal_toISB_ESaISE_IKSB_SS_EEEEEEEERKNS4_8optionalIiEEEclIJEEEDTcldtdefpT8functiondtdefpT5paramspclsr3stdE7forwardIT_Efp_EEEDpOS1C_ /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1846:20 (dnsdist+0xdf8917)
    #12 std::shared_ptr<DownstreamState> LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, LuaContext::Binder<LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, boost::optional<int> const&>&>(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState> >, LuaContext::Binder<LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, boost::optional<int> const&>&, int) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1766:16 (dnsdist+0xdf88be)
    #13 std::enable_if<IsOptional<boost::optional<int> >::value, std::shared_ptr<DownstreamState> >::type LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, boost::optional<int> >(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState> >, LuaContext::Binder<setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > const&>&, int, LuaContext::tag<boost::optional<int> >) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1774:20 (dnsdist+0xdf8624)
    #14 std::enable_if<!(IsOptional<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > >::value), std::shared_ptr<DownstreamState> >::type LuaContext::readIntoFunction<std::shared_ptr<DownstreamState>, setupLuaConfig(LuaContext&, bool, bool)::$_2&, boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int> >(lua_State*, LuaContext::tag<std::shared_ptr<DownstreamState> >, setupLuaConfig(LuaContext&, bool, bool)::$_2&, int, LuaContext::tag<boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > > >, LuaContext::tag<boost::optional<int> >) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1796:16 (dnsdist+0xdf848d)
    #15 std::enable_if<(!(std::integral_constant<bool, false>::value)) && (!(std::is_void<bool>::value)), LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::callback2<setupLuaConfig(LuaContext&, bool, bool)::$_2&>(lua_State*, bool&&, int) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2429:31 (dnsdist+0xdf83c2)
    #16 LuaContext::PushedObject LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::callback<setupLuaConfig(LuaContext&, bool, bool)::$_2>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_2*, int) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2398:20 (dnsdist+0xdf8169)
    #17 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_2>::value, LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::push<setupLuaConfig(LuaContext&, bool, bool)::$_2>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_2)::'lambda'(lua_State*)::operator()(lua_State*) const /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2327:20 (dnsdist+0xdf80c9)
    #18 std::enable_if<boost::has_trivial_destructor<setupLuaConfig(LuaContext&, bool, bool)::$_2>::value, LuaContext::PushedObject>::type LuaContext::Pusher<std::shared_ptr<DownstreamState> (boost::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::function<std::tuple<DNSName, unsigned short, unsigned short> (DNSName const&, unsigned short, unsigned short, dnsheader*)> > > > > >, boost::optional<int>), void>::push<setupLuaConfig(LuaContext&, bool, bool)::$_2>(lua_State*, setupLuaConfig(LuaContext&, bool, bool)::$_2)::'lambda'(lua_State*)::__invoke(lua_State*) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:2323:31 (dnsdist+0xdf8055)
    #19 _init <null> (libluajit-5.1.so.2+0x9dd6)
    #20 std::tuple<> LuaContext::call<std::tuple<> >(lua_State*, LuaContext::PushedObject) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:1413:29 (dnsdist+0xc9ae67)
    #21 LuaContext::executeCode(std::istream&) /opt/project/pdns/dnsdistdist/./ext/luawrapper/include/LuaContext.hpp:267:9 (dnsdist+0xe6077a)
    #22 setupLua(LuaContext&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /opt/project/pdns/dnsdistdist/dnsdist-lua.cc:2599:10 (dnsdist+0xdf4ff3)
    #23 main /opt/project/pdns/dnsdistdist/dnsdist.cc:2235:17 (dnsdist+0xf282ea)

  Thread T2 'dnsdist/SNMP' (tid=11160, running) created by main thread at:
    #0 pthread_create <null> (dnsdist+0x75f2d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbbdb4)
    #2 SNMPAgent::run() /opt/project/pdns/dnsdistdist/./snmp-agent.hh:36:14 (dnsdist+0xf3087c)
    #3 main /opt/project/pdns/dnsdistdist/dnsdist.cc:2373:20 (dnsdist+0xf28f32)

  Thread T18 'dnsdist/healthC' (tid=11176, running) created by main thread at:
    #0 pthread_create <null> (dnsdist+0x75f2d5)
    #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xbbdb4)
    #2 main /opt/project/pdns/dnsdistdist/dnsdist.cc:2463:12 (dnsdist+0xf29769)

SUMMARY: ThreadSanitizer: data race (/opt/dnsdist-with-tsan/bin/dnsdist+0x7a6eb0) in __tsan_atomic64_load
```

4 years agoMerge pull request #10432 from mind04/pdns-zonecache auth-4.5.0-alpha1
Peter van Dijk [Tue, 25 May 2021 10:05:31 +0000 (12:05 +0200)] 
Merge pull request #10432 from mind04/pdns-zonecache

auth: zone-cache improvements

4 years agoauth ldap: note that master mode -is- supported 10437/head
Peter van Dijk [Mon, 24 May 2021 18:10:42 +0000 (20:10 +0200)] 
auth ldap: note that master mode -is- supported

4 years agoMerge pull request #10430 from mind04/pdns-wording
Peter van Dijk [Fri, 21 May 2021 17:00:46 +0000 (19:00 +0200)] 
Merge pull request #10430 from mind04/pdns-wording

auth: use primary and secondary for pdnsutil and pdns_control commands

4 years agorec: distinguish the various 'Removing irrelevant record' log lines 10433/head
Peter van Dijk [Fri, 21 May 2021 13:45:54 +0000 (15:45 +0200)] 
rec: distinguish the various 'Removing irrelevant record' log lines

4 years agoauth: replace or insert newly created zones in the zone cache 10432/head
Kees Monshouwer [Thu, 20 May 2021 14:17:13 +0000 (16:17 +0200)] 
auth: replace or insert newly created zones in the zone cache

4 years agoauth: add new autosecondary domains to the zone cache
Kees Monshouwer [Thu, 20 May 2021 13:17:40 +0000 (15:17 +0200)] 
auth: add new autosecondary domains to the zone cache

4 years agoauth: update pdnsutil help message 10430/head
Kees Monshouwer [Wed, 19 May 2021 19:04:52 +0000 (21:04 +0200)] 
auth: update pdnsutil help message

4 years agoauth: use primary/seconday in pddns_control and s/zone/domain
Kees Monshouwer [Tue, 18 May 2021 19:19:13 +0000 (21:19 +0200)] 
auth: use primary/seconday in pddns_control and s/zone/domain

4 years agoauth: use primary/seconday in pdnsutil
Kees Monshouwer [Tue, 18 May 2021 19:02:49 +0000 (21:02 +0200)] 
auth: use primary/seconday in pdnsutil

4 years agoMerge pull request #10399 from mind04/pdns-recheck
Peter van Dijk [Thu, 20 May 2021 12:35:09 +0000 (14:35 +0200)] 
Merge pull request #10399 from mind04/pdns-recheck

auth: make sure we recheck failed SOA lookups for notifies

4 years agoMerge pull request #10429 from rgacogne/loop-warnings
Remi Gacogne [Thu, 20 May 2021 05:15:56 +0000 (07:15 +0200)] 
Merge pull request #10429 from rgacogne/loop-warnings

Fix 'temporary used in loop' warnings reported by g++ 11.1.0

4 years agoMerge branch 'PowerDNS:master' into doc-dnsdist-eol 10398/head
Denis MACHARD [Wed, 19 May 2021 18:07:01 +0000 (20:07 +0200)] 
Merge branch 'PowerDNS:master' into doc-dnsdist-eol

4 years agoauth: Fix a 'temporary used in loop' warning reported by g++ 11.1.0 10429/head
Remi Gacogne [Wed, 19 May 2021 17:44:12 +0000 (19:44 +0200)] 
auth: Fix a 'temporary used in loop' warning reported by g++ 11.1.0

```
common_startup.cc: In function ‘void mainthread()’:
common_startup.cc:617:24: warning: loop variable ‘algotype’ of type ‘const string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  617 |     for (const string& algotype : {"ksk", "zsk"}) {
      |                        ^~~~~~~~
common_startup.cc:617:24: note: use non-reference type ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
```

4 years agotest-dnsname_cc.cc: Fix a 'temporary used in loop' warning reported by g++ 11.1.0
Remi Gacogne [Wed, 19 May 2021 17:23:24 +0000 (19:23 +0200)] 
test-dnsname_cc.cc: Fix a 'temporary used in loop' warning reported by g++ 11.1.0

```
test-dnsname_cc.cc: In member function ‘void test_dnsname_cc::test_compare_canonical::test_method()’:
test-dnsname_cc.cc:684:26: warning: loop variable ‘b’ of type ‘const string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  684 |   for(const std::string& b : {"bert.com.", "alpha.nl.", "articles.xxx.",
      |                          ^
test-dnsname_cc.cc:684:26: note: use non-reference type ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
```

4 years agoMerge pull request #10421 from mind04/pdns-list-zones
Peter van Dijk [Wed, 19 May 2021 16:38:35 +0000 (18:38 +0200)] 
Merge pull request #10421 from mind04/pdns-list-zones

auth: add an option to in/exclude disabled zones in the pdnsutil list-all-zone and list-keys output.

4 years agoMerge pull request #10260 from mind04/pdns-nsec3param
Peter van Dijk [Wed, 19 May 2021 15:59:51 +0000 (17:59 +0200)] 
Merge pull request #10260 from mind04/pdns-nsec3param

auth: lower max-nsec3-iterations to 100

4 years agoauth: pdnsutil, use cmds.at() 10421/head
Kees Monshouwer [Wed, 19 May 2021 15:02:25 +0000 (17:02 +0200)] 
auth: pdnsutil, use cmds.at()

4 years agoauth: optionally include disabled or empty zones in the pdnsutil list-all-zone and...
Kees Monshouwer [Thu, 4 Mar 2021 15:27:53 +0000 (16:27 +0100)] 
auth: optionally include disabled or empty zones in the pdnsutil list-all-zone and list-keys output

4 years agoauth: lower max-nsec3-iterations to 100 10260/head
Kees Monshouwer [Thu, 1 Apr 2021 18:03:28 +0000 (20:03 +0200)] 
auth: lower max-nsec3-iterations to 100

4 years agoMerge pull request #10424 from mind04/pdns-domain2zone
Peter van Dijk [Wed, 19 May 2021 14:06:29 +0000 (16:06 +0200)] 
Merge pull request #10424 from mind04/pdns-domain2zone

auth: replace domain-metadata-cache-ttl by zone-metadata-cache-ttl

4 years agoauth: change domain to zone round 1 10424/head
Kees Monshouwer [Tue, 18 May 2021 16:55:44 +0000 (18:55 +0200)] 
auth: change domain to zone round 1