]>
git.ipfire.org Git - thirdparty/pdns.git/log
Miod Vallat [Thu, 7 Aug 2025 09:58:23 +0000 (11:58 +0200)]
Merge pull request #15964 from miodvallat/498_changelog
auth 4.9.8 changelog and secpoll update
Miod Vallat [Thu, 7 Aug 2025 05:38:26 +0000 (07:38 +0200)]
Merge pull request #15965 from Ikke/docs-geoip-lua-records
docs: clarify geoip service health checks uses lua records
Kevin Daudt [Wed, 6 Aug 2025 18:47:47 +0000 (20:47 +0200)]
docs: clarify geoip service health checks uses lua records
The geoip backend documentation mentions:
> Additionally, the GeoIP backend can be used to provide service over
> several clusters, any of which can be taken out of use easily, for
> example for maintenance purposes.
But no details on how that is achieved. Without knowing Lua records
exist, it's hard to find how to do it.
Add a reference to the Lua records documentation to make it easier to
see the connection.
Signed-off-by: Kevin Daudt <me@ikke.info>
Miod Vallat [Wed, 6 Aug 2025 14:36:07 +0000 (16:36 +0200)]
4.9.8 changelog and secpoll update.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Mon, 4 Aug 2025 13:15:59 +0000 (15:15 +0200)]
Merge pull request #15894 from miodvallat/honk_if_you_like_to_rectify
scrub harder in zone rectify
Miod Vallat [Mon, 4 Aug 2025 04:42:03 +0000 (06:42 +0200)]
Merge pull request #15957 from RvdE/patch-1
Add missing #if statements to dnsdist-lua.cc
RvdE [Sun, 3 Aug 2025 20:25:33 +0000 (22:25 +0200)]
Add missing #if statements to dnsdist-lua.cc
This adds some missing #if statements to support building without OpenSSL.
Signed-off-by: RvdE <tremere@cainites.net>
Remi Gacogne [Thu, 31 Jul 2025 20:05:09 +0000 (22:05 +0200)]
Merge pull request #15939 from rgacogne/ddist-increase-leeway-for-timeout-response-test
dnsdist: Increase the time granted for the "timeout then restart" test
Miod Vallat [Thu, 31 Jul 2025 14:03:20 +0000 (16:03 +0200)]
Merge pull request #15866 from miodvallat/elastic_search
Provide a default searchRecords implementation
Miod Vallat [Thu, 31 Jul 2025 12:01:20 +0000 (14:01 +0200)]
Merge pull request #15947 from miodvallat/lazy_caching
auth: cache the result of some metadata lookups during packet processing
Miod Vallat [Thu, 31 Jul 2025 10:59:35 +0000 (12:59 +0200)]
Clarify the implications of not providing dns_get_all_domains.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Wed, 30 Jul 2025 09:45:53 +0000 (11:45 +0200)]
Cache the result of some metadata lookup.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Wed, 23 Jul 2025 12:26:09 +0000 (14:26 +0200)]
Give backends the ability to perform extra actions during zone rectify.
Use this is the LMDB backend to purge possibly orphaned (dangling) NSEC3
records created by 4.x servers.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Thu, 17 Jul 2025 15:24:42 +0000 (17:24 +0200)]
Provide a default searchRecords implementation.
This is the LMDB searchRecords being promoted to backend-agnostic, as it
only depends on list() and getAllDomains() to work (and get(), obviously).
A new capability, CAP_SEARCH, is added to advertize these requirements are
fulfilled; search will return failure if they are not.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Thu, 31 Jul 2025 09:47:14 +0000 (11:47 +0200)]
Merge pull request #15944 from miodvallat/EDOM
lmdb: be more careful when looking into the domains table
Miod Vallat [Thu, 31 Jul 2025 09:28:47 +0000 (11:28 +0200)]
Merge pull request #15922 from miodvallat/cheap_tricks
miscellaneous boring cleanups
Miod Vallat [Thu, 31 Jul 2025 09:20:03 +0000 (11:20 +0200)]
Merge pull request #15948 from miodvallat/random-bakery
auth: random edns cookies
Miod Vallat [Thu, 31 Jul 2025 07:33:51 +0000 (09:33 +0200)]
Merge pull request #14927 from Cybertinus/patch-1
Update pdnsutil.bash_completion.d
Otto Moerbeek [Wed, 30 Jul 2025 17:21:07 +0000 (19:21 +0200)]
Merge pull request #15949 from omoerbeek/rec-tidy-
20250709
rec: assorted tidy
Otto Moerbeek [Wed, 30 Jul 2025 16:05:21 +0000 (18:05 +0200)]
Typo in comment
Otto Moerbeek [Wed, 30 Jul 2025 15:26:47 +0000 (17:26 +0200)]
Merge pull request #15950 from omoerbeek/rec-reorder-cacheentry
rec: reorder fields of record cache entry by size (saves 8 bytes per entry on 64-bit systems)
Otto Moerbeek [Wed, 30 Jul 2025 15:02:07 +0000 (17:02 +0200)]
Typo in comment
Co-authored-by: Doug Freed <dwfreed@mtu.edu>
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Wed, 30 Jul 2025 14:08:26 +0000 (16:08 +0200)]
Process review comments from Miod
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Miod Vallat [Wed, 30 Jul 2025 12:40:11 +0000 (14:40 +0200)]
Allow edns-cookie-secret to be set to "random".
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Otto Moerbeek [Wed, 9 Jul 2025 13:04:42 +0000 (15:04 +0200)]
rec: asssorted tidy
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Tue, 29 Jul 2025 14:25:09 +0000 (16:25 +0200)]
rec: reorder fields of record cache entry by size (saves 8 bytes per entry on 64-bit systems)
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Miod Vallat [Wed, 30 Jul 2025 08:13:27 +0000 (10:13 +0200)]
Appease clang-tidy
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Wed, 30 Jul 2025 07:07:49 +0000 (09:07 +0200)]
Be more careful when looking into the domains table.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Wed, 30 Jul 2025 06:12:53 +0000 (08:12 +0200)]
Merge pull request #15928 from miodvallat/slebalwar
Make keyUnconv a bit less inefficient
Miod Vallat [Wed, 30 Jul 2025 05:47:34 +0000 (07:47 +0200)]
Merge pull request #15603 from zeha/svcb-generic
SVCB: allow parsing keys in generic format without value
Chris Hofstaedtler [Tue, 27 May 2025 20:04:34 +0000 (22:04 +0200)]
SVCB: allow parsing generic key without value
Remi Gacogne [Tue, 29 Jul 2025 14:46:14 +0000 (16:46 +0200)]
Merge pull request #15881 from rgacogne/ddist-opcode-mnemonic
dnsdist: Support mnemonics for the Opcode selector
Otto Moerbeek [Tue, 29 Jul 2025 13:40:50 +0000 (15:40 +0200)]
Merge pull request #15938 from omoerbeek/rec-pregen-librs
rec: put lib.rs into tarball
Otto Moerbeek [Tue, 29 Jul 2025 10:52:02 +0000 (12:52 +0200)]
Merge pull request #15936 from omoerbeek/prep-5.1.7-5.2.5
rec: Prep for 5.1.7 and 5.2.5
Remi Gacogne [Tue, 29 Jul 2025 09:42:24 +0000 (11:42 +0200)]
dnsdist: Increase the time granted for the "timeout then restart" test
This test fails from time to time in our CI. After investigation, it
turns out that sometimes the response comes just a few milliseconds
after the 3 seconds timeout has expired:
```
Got answer from 127.0.0.1:14191, relayed to 127.0.0.1:36139 (UDP), took 3.00105e+06 us
```
So let's use a slightly larger timeout of 4 seconds. It will not add
any delay if the response is received faster than that and will hopefully
reduce the number of spurious failures.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Tue, 29 Jul 2025 09:32:03 +0000 (11:32 +0200)]
Merge pull request #15937 from rgacogne/ddist-no-rust-quiche-ci-least
ci: Don't install Rust or Quiche when testing DNSdist 'least'
Otto Moerbeek [Mon, 28 Jul 2025 14:47:00 +0000 (16:47 +0200)]
rec: put lib.rs into tarball
Plus some rearrangement is more like the dnsdist one
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Mon, 28 Jul 2025 09:39:06 +0000 (11:39 +0200)]
Prep for 5.1.7 and 5.2.5
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Thu, 24 Jul 2025 09:11:24 +0000 (11:11 +0200)]
dns: Get rid of the ugly special case for OpCode 3
As suggested by Miod.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Mon, 21 Jul 2025 09:56:47 +0000 (11:56 +0200)]
dnsdist: Support mnemonics for the Opcode selector
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Mon, 28 Jul 2025 07:33:44 +0000 (09:33 +0200)]
Merge pull request #15904 from rgacogne/ddist-fix-systemd-unit-meson
dnsdist: Fix systemd template unit and restricted network families when building with meson
Remi Gacogne [Mon, 28 Jul 2025 07:32:42 +0000 (09:32 +0200)]
Merge pull request #15923 from rgacogne/ddist-add-test-netmask-exclusion
dnsdist: Test netmask exclusions via YAML
Remi Gacogne [Mon, 28 Jul 2025 07:32:09 +0000 (09:32 +0200)]
Merge pull request #15919 from rgacogne/ddist-upgrade-quiche
dnsdist: Upgrade Cloudflare's Quiche to 0.24.4
Remi Gacogne [Mon, 28 Jul 2025 07:32:00 +0000 (09:32 +0200)]
Merge pull request #15914 from rgacogne/ddist-fix-quickstart-qps
dnsdist: Fix invalid "qps" in Quickstart Guide
Otto Moerbeek [Mon, 28 Jul 2025 05:43:27 +0000 (07:43 +0200)]
Merge pull request #15915 from omoerbeek/rust-build-env
rec and dnsdist: properly set up env vars for rust build
Remi Gacogne [Fri, 25 Jul 2025 14:42:00 +0000 (16:42 +0200)]
ci: Don't install Rust or Quiche when testing DNSdist 'least'
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 13:00:13 +0000 (15:00 +0200)]
Do not use countLabels() in chopOff() loop conditions.
Instead, compute it once outside of the loop in a local variable and
decrement that variable.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 12:59:06 +0000 (14:59 +0200)]
More use of hasLabels
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 09:10:32 +0000 (11:10 +0200)]
Address clang-tidy complains.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 07:05:25 +0000 (09:05 +0200)]
Simplify some DNSName label processing.
Instead of checking countLabels() against zero, introduce a faster
hasLabels() which does not need to actually count them.
Also replace getRawLabels()[n] with getRawLabel(n), the only difference
being that getRawLabel() will raise an exception if n is out of bounds,
instead of returning garbage.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 06:30:33 +0000 (08:30 +0200)]
Use ERCode symbolic names instead of their numerical values.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 06:21:53 +0000 (08:21 +0200)]
Factor logic checking for a zone metadata being equal to "1".
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 06:03:36 +0000 (08:03 +0200)]
Declare global const DNSName variables for frequently-used names
(such as the TSIG key algorithms)
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Miod Vallat [Fri, 25 Jul 2025 10:34:23 +0000 (12:34 +0200)]
Build the DNSName in order in keyUnconv.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Remi Gacogne [Fri, 25 Jul 2025 08:08:58 +0000 (10:08 +0200)]
dnsdist: Test netmask exclusions via YAML
Follow-up to #15822.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Fri, 25 Jul 2025 08:02:00 +0000 (10:02 +0200)]
Merge pull request #15890 from rgacogne/lua-wrapper-std-optional
LuaWrapper: Add support for `std::optional`
Remi Gacogne [Thu, 24 Jul 2025 15:25:20 +0000 (17:25 +0200)]
Merge pull request #15916 from rgacogne/ddist-rings-update-atomic-outside-lock
dnsdist: Update rings' atomic counter without holding the lock
Remi Gacogne [Thu, 24 Jul 2025 15:25:07 +0000 (17:25 +0200)]
Merge pull request #15917 from rgacogne/ddist-early-return-empty-chains
dnsdist: Return early when a rule chain is empty
Remi Gacogne [Thu, 24 Jul 2025 15:24:58 +0000 (17:24 +0200)]
Merge pull request #15918 from rgacogne/ddist-cache-update-atomic-outside-lock
dnsdist: Update a cache's atomic counter without holding the lock
Remi Gacogne [Thu, 24 Jul 2025 14:49:52 +0000 (16:49 +0200)]
dnsdist: Upgrade Cloudflare's Quiche to 0.24.4
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Thu, 24 Jul 2025 14:02:39 +0000 (16:02 +0200)]
dnsdist: Update a cache's atomic counter without holding the lock
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Tue, 22 Jul 2025 09:19:19 +0000 (11:19 +0200)]
dnsdist: Return early when a rule chain is empty
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Tue, 22 Jul 2025 09:18:38 +0000 (11:18 +0200)]
dnsdist: Update rings' atomic counter without holding the lock
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Otto Moerbeek [Thu, 24 Jul 2025 13:41:50 +0000 (15:41 +0200)]
rec and dnsdist: properly set up env vars
env.append() appends to an existing value
Should fix the error in #15896, but the reported location of cargo
still might be wrong.
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Thu, 24 Jul 2025 13:09:31 +0000 (15:09 +0200)]
Merge pull request #15902 from rgacogne/ddist-fix-qtype-rate
dnsdist: Fix QType rate dynamic block with YAML
Remi Gacogne [Thu, 24 Jul 2025 12:56:52 +0000 (14:56 +0200)]
dnsdist: Fix invalid "qps" in Quickstart Guide
As noted by Holger Hoffstätte, the quickstart guide has an outdated
YAML configuration sample which is no longer valid. `qps` has been
renamed to `queries_per_second` well before the release candidates.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Miod Vallat [Thu, 24 Jul 2025 10:50:08 +0000 (12:50 +0200)]
Merge pull request #15899 from miodvallat/betamax
auth 5.0.0ß1 changelog + secpoll
Remi Gacogne [Thu, 24 Jul 2025 09:42:03 +0000 (11:42 +0200)]
dnsdist: Fix restricted network families when building with meson
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Thu, 24 Jul 2025 09:41:38 +0000 (11:41 +0200)]
dnsdist: Fix systemd template unit when building with meson
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Otto Moerbeek [Thu, 24 Jul 2025 09:21:12 +0000 (11:21 +0200)]
Merge pull request #15893 from omoerbeek/rec-rpz-custom-cname-chain
rec: try harder to follow cname chain on RPZ hit with custom CNAME record
Remi Gacogne [Thu, 24 Jul 2025 09:17:04 +0000 (11:17 +0200)]
dnsdist: Apply Miod's suggestions (thanks!)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Miod Vallat [Thu, 24 Jul 2025 06:43:33 +0000 (08:43 +0200)]
Changelog and secpoll update for 5.0.0-beta1.
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
Otto Moerbeek [Thu, 24 Jul 2025 09:08:39 +0000 (11:08 +0200)]
Merge pull request #15900 from omoerbeek/rec-prep-5.3.0-beta1
rec: prep for rec-5.3.0-beta1
Remi Gacogne [Thu, 24 Jul 2025 08:57:28 +0000 (10:57 +0200)]
dnsdist: Fix QType rate dynamic block with YAML
The YAML configuration for the the "QType rate" dynamic block was
totally broken, trying to configure a rcode rate rule instead of a
qtype rate one.
Thanks to HellSpawn for reporting this the issue!
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Thu, 24 Jul 2025 08:12:57 +0000 (10:12 +0200)]
test-luawrapper: Appease the clang-tidy gods
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Otto Moerbeek [Thu, 24 Jul 2025 08:06:21 +0000 (10:06 +0200)]
Typos in comments
Co-authored-by: Remi Gacogne <github@coredump.fr>
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Wed, 23 Jul 2025 13:14:58 +0000 (15:14 +0200)]
rec: prep for rec-5.3.0-beta1
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Thu, 24 Jul 2025 05:25:13 +0000 (07:25 +0200)]
Use unmodified flag for post policy
Otto Moerbeek [Wed, 23 Jul 2025 10:06:41 +0000 (12:06 +0200)]
rec: if a RPZ hit has a custom CNAME record, we should try harder to follow it
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Tue, 22 Jul 2025 12:05:56 +0000 (14:05 +0200)]
LuaWrapper: Add support for `std::optional`
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Otto Moerbeek [Tue, 22 Jul 2025 11:15:46 +0000 (13:15 +0200)]
Merge pull request #15888 from omoerbeek/rec-ottrace-align
rec: add a reserved/alignment byte in EDNS record
Otto Moerbeek [Tue, 22 Jul 2025 10:11:48 +0000 (12:11 +0200)]
rec: add a reserved/alignment byte in EDNS record
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Otto Moerbeek [Tue, 22 Jul 2025 09:32:02 +0000 (11:32 +0200)]
Merge pull request #15887 from omoerbeek/rec-version-edns-traceid
rec: add version to edns record for OpenTelemetry data
Otto Moerbeek [Mon, 21 Jul 2025 13:53:59 +0000 (15:53 +0200)]
Better code for setting and getting traceids and spanids from EDNS
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Mon, 21 Jul 2025 14:54:02 +0000 (16:54 +0200)]
Merge pull request #15885 from rgacogne/ddist200-eol
dnsdist: Update EOL statements now that 2.0.0 has been released
Remi Gacogne [Mon, 21 Jul 2025 13:19:39 +0000 (15:19 +0200)]
secpoll: Mark EOL DNSdist versions as such
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Mon, 21 Jul 2025 12:58:58 +0000 (14:58 +0200)]
dnsdist: Update EOL statements now that 2.0.0 has been released
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Remi Gacogne [Mon, 21 Jul 2025 12:57:23 +0000 (14:57 +0200)]
Merge pull request #15882 from rgacogne/ddist200-changelog-secpoll
dnsdist: Update ChangeLog and security polling zone for 2.0.0
Otto Moerbeek [Mon, 21 Jul 2025 12:44:51 +0000 (14:44 +0200)]
Add a 1 byte version number to edns option OTTRACEIDS
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Mon, 21 Jul 2025 10:04:32 +0000 (12:04 +0200)]
dnsdist: Update ChangeLog and security polling zone for 2.0.0
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
Otto Moerbeek [Mon, 21 Jul 2025 11:51:10 +0000 (13:51 +0200)]
Merge pull request #15883 from omoerbeek/recp-prep-
20260722
rec: Prep for rec
20250721 releases
Otto Moerbeek [Mon, 21 Jul 2025 11:30:56 +0000 (13:30 +0200)]
Fix spell checking
Otto Moerbeek [Mon, 21 Jul 2025 11:24:45 +0000 (13:24 +0200)]
Fix spell check issues
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
aerique [Mon, 21 Jul 2025 10:58:33 +0000 (12:58 +0200)]
Merge pull request #15859 from aerique/feature/update-repo-test-script
Update repo test script.
Otto Moerbeek [Thu, 17 Jul 2025 08:44:03 +0000 (10:44 +0200)]
Prep for rec
20250721 releases
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Remi Gacogne [Mon, 21 Jul 2025 09:08:35 +0000 (11:08 +0200)]
Merge pull request #15824 from rgacogne/ddist-test-built-in-console-client
dnsdist: Test the built-in console client in our regression tests
Remi Gacogne [Mon, 21 Jul 2025 09:06:21 +0000 (11:06 +0200)]
Merge pull request #15872 from rgacogne/ddist-only-parse-z-once
dnsdist: Only parse EDNS Z once
Remi Gacogne [Mon, 21 Jul 2025 07:24:32 +0000 (09:24 +0200)]
Merge pull request #15869 from rgacogne/get21z-speedup
dnsdist: Small speedup for `getEDNSUDPPayloadSizeAndZ()`
Miod Vallat [Mon, 21 Jul 2025 04:27:28 +0000 (06:27 +0200)]
Merge pull request #15867 from miodvallat/interesting_times
Provide record timestamps in the API
Remi Gacogne [Thu, 17 Jul 2025 15:11:11 +0000 (17:11 +0200)]
dnsdist: Only parse EDNS Z once
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>