Changelogs for 5.1.x¶
5.1.0¶
Released: 3rd of June 2026This is release 5.1.0 of the Authoritative Server. It provides many small new features and improvements, as well as bug fixes.
Please review the Upgrade Notes before upgrading from versions < 5.0.x.
New Features¶
make Lua records immutable by default
¶References: pull request 17131
Implement a cors flag to set allowed origin in webserver
¶References: pull request 17297
Improvements¶
skip zone cache refresh logic if disabled
¶References: pull request 17355
Lua health checks: more responsiveness
¶References: #16369, pull request 16389
only apply backupSelector to the first non-empty group (Daniel Micay)
¶References: #12789, pull request 17239
Bug Fixes¶
use less inefficient code in web server
¶References: pull request 17284
smarter memory need computation
¶References: pull request 17320
stricter string-to-int conversions
¶References: pull request 17389
lmdb: do not serialize records over 64K in length
¶References: pull request 17447
stricter proxy protocol size limit enforcement
¶References: pull request 17459
once again, relax JSON normalization code for record contents
¶References: #17368, pull request 17373
harden xfr*BitInt writers
¶References: pull request 17240, pull request 17455
lmdb: yet another NSEC bug
¶References: #16816, pull request 17304
Clarify the documentation regarding lmdb-shards-map-size (Håkan Lindqvist)
¶References: pull request 17363
let pdnsutil work with lua backend
¶References: #17364, pull request 17365
Correctly display APL DNS records with IPv4 addresses ending in .0
¶References: pull request 17367
Ednscookies: Fix timestamp validity check
¶References: pull request 17384
Auth: fixes for SA 2026-06
¶References: pull request 17442
5.1.0-beta1¶
Released: 29th of April 2026This is release 5.1.0-beta1 of the Authoritative Server. It provides many small new features and improvements, as well as bug fixes, including fixes for the PowerDNS Security Advisory 2026-05.
Please review the Upgrade Notes before upgrading from versions < 5.0.x.
New Features¶
lmdb: full support for comments
¶References: pull request 16522
lmdb: split domains table
¶References: pull request 16725
simple protobuf logging support
¶References: #16073, pull request 17014
Auth: nested catalogs (Kees Monshouwer)
¶References: pull request 16971
Improvements¶
Modernize documentation
¶References: pull request 16783, pull request 17035
Complete the transition from Swagger to OpenAPI (Kevin P. Fleming)
¶References: pull request 17127
only perform secpoll checks when they make sense
¶References: pull request 17134
add a configurable limit of web server connections
¶References: pull request 17148
Bug Fixes¶
correctly delete ENT records from the API
¶References: pull request 17000
some pdns_control love
¶References: pull request 17130
dnsupdate handling buglet
¶References: pull request 17155
fixes to AXFR in Bind backend
¶References: pull request 17152
safer lua geoip queries
¶References: #17158, pull request 17160
Fix a bunch of issues when building with meson
¶References: #13987, #16702, pull request 16734
minor lmdb fixes (for the 42nd time)
¶References: pull request 17004
redact more configuration secrets in the /config endpoint
¶References: pull request 17011
Broader exception catching around stoi usage
¶References: pull request 17048
DNSWriter: Prevent overflow when generating (too) large DNS packets
¶References: pull request 17071
Handle malformed pointers in dnswriter
¶References: pull request 17076
Dnsparser: Harden the DNS parser against malformed records
¶References: pull request 17077
lua: one more bad case of createForward
¶References: pull request 17126
Webserver: correctly split the basic authorization cookie
¶References: pull request 17149
better handling of yahttp chunk size
¶References: pull request 17196
Auth: fixes for SA 2026-05
¶References: pull request 17193, pull request 17198, pull request 17228
Fix two cases of lacking/wrong max size compares
¶References: pull request 17200
Check boundary in getUnquotedText() as we do in getText()
¶References: #17077, pull request 17235
5.1.0-alpha1¶
Released: 16th of March 2026This is release 5.1.0-alpha1 of the Authoritative Server. It provides many small new features and improvements, as well as bug fixes.
Please review the Upgrade Notes before upgrading from versions < 5.0.x.
New Features¶
Calidns: Initial proxy protocol support
¶References: pull request 15301
Pdnsutil: make “zone list” record sorting optional
¶References: pull request 16569
Pdnsutil: add zone copy command
¶References: pull request 16179
Add support to the new WALLET RRType
¶References: #15449, pull request 16977
Allow adding HTTP Headers in LUA Record ifurlup
¶References: #11610, #8295, pull request 16955
structured logging
¶References: pull request 16240, pull request 16370, pull request 16693
add default-soa-edit-api setting for API zone creation (Seena Fallah)
¶References: #6173, pull request 16807
Add fail-close backupselector mode for Lua healthcheck functions (Xabier Napal)
¶References: #16074, pull request 16659
allow finer-grained rrset changes through the API
¶References: pull request 16589
Lmdb: allow different mapsize values for main and shards
¶References: pull request 16361
Support new SVCB parameters: ohttp, dohpath, tls-supported-groups (Chris Hofstaedtler)
¶References: pull request 15550
Lmdb: optional memory-only freshness check timestamp
¶References: #13024, #16154, pull request 16193
knob to allow underscores in hostnames
¶References: #15386, pull request 16151
Feat: Add DRIP records (HHIT and BRID)
¶References: pull request 16142
backend flush command
¶References: pull request 16184
Lmdb: optional memory-only notification timestamps
¶References: pull request 16141
API: stricter record content validation
¶References: #11052, pull request 16041
Removed Features¶
No longer allow passing the api-key as a query argument
¶References: #16785, pull request 16790
Improvements¶
Prep, but do not actually move to C++20
¶References: #14734, pull request 16077
LMDB: try to reduce the cost of the LS header
¶References: #12663, pull request 16083
Provide a default searchRecords implementation
¶References: pull request 15866
cache the result of some metadata lookups during packet processing
¶References: #15922, pull request 15947
make pdnsutil add-record perform the same checks as the REST API
¶References: #6031, pull request 15386
Pdnsutil: prettier zone output
¶References: #11053, #15891, pull request 15999
Pdnsutil: report corrupted records
¶References: #4941, pull request 15966
Sort API RRs by content if name and type are equal
¶References: #11140, pull request 16951
trim labels faster
¶References: pull request 16928
perform axfr immediately when creating an autosecondary domain
¶References: #16418, pull request 16636
webserver: recognize Accept: / header
¶References: pull request 16520
Display SOA check timestamps in human-readable form
¶References: #11134, pull request 16050
List supported record types in alphabetical order
¶References: pull request 15968
Bug Fixes¶
Remove logging interfaces which lack priority arguments
¶References: pull request 16956
remove configurable random generator leftovers, take 2
¶References: #16639, pull request 16919
one less infinite loop
¶References: pull request 16830
More metaprogramming sugar
¶References: pull request 16917
Fix some performance inefficiencies reported by Coverity
¶References: pull request 16915
get rid of a “may be uninitialized” warning.
¶References: pull request 16854
minor getAllDomains optimizations
¶References: pull request 16573
Drop usage of libboost-system library (Chris Hofstaedtler)
¶References: pull request 16826
Base64 tidy and unit test fix
¶References: #16805, pull request 16817
Stricter timestamp checks
¶References: pull request 16820
correctly compute DNSSEC public key exponent lengths when larger than 255
¶References: pull request 16810
Calidns: Also handle PDNSException`s in `main
¶References: pull request 16703
LuaWrapper: Add support for std::variant
¶References: pull request 16622
rfc2136: more code cleanup
¶References: pull request 16348
lmdb: error path cleanup in upgrade code
¶References: pull request 16547
bunch of boring idempotent commits
¶References: pull request 16467
rfc2136: more churning
¶References: pull request 16343
attempt at technical debt reduction in RFC2136 code
¶References: pull request 16306
Ext/json: sync with upstream
¶References: pull request 16293
Luawrapper: correct lua_pop argument
¶References: pull request 16334
Remove dead code
¶References: pull request 16226, pull request 16243, pull request 16445, pull request 16678, pull request 16954
Remove boost < 1.54 leftovers
¶References: pull request 16033
Lmdb-safe: Remove the read-only transactions counter
¶References: pull request 15844
Fix Boost system lib req: it is no longer a lib for boost >= 1.89
¶References: #15972, pull request 15991
objectionable LMDB logic speedups
¶References: #1, pull request 15864
Prefer milliseconds to microseconds for timeouts
¶References: pull request 15958
smarter backend lookup aborts
¶References: pull request 15450
Lmdb: be more careful when looking into the domains table
¶References: pull request 15944
Miscellaneous boring cleanups
¶References: pull request 15922
pdnsutil: Fix command synopsis of “view list”.
¶References: #16747, pull request 16751
dumresp: fix fd leak
¶References: #16365, pull request 16374
Pdnsutil: fix b2b-migrate to from sql to non-sql
¶References: pull request 16209
Pdnsutil: allow spaces in EDITOR
¶References: pull request 16120
Fix interaction between “pdnsutil zone edit” and pipe backend
¶References: pull request 16114
Fix case sensitivity handling for IXFR requests in ixfrdist (Jeremy Muriel)
¶References: pull request 16063
be a bit more explicit regarding @ no longer being magic in pdnsutil
¶References: pull request 15962
Pdnsutil: smarter SOA handling in zone edit
¶References: pull request 15971
Scrub harder in zone rectify
¶References: pull request 15894
yet another logic botch
¶References: pull request 16245
logic botch in ldap backend
¶References: pull request 16225
Use the proper size after processing a proxy protocol payload
¶References: pull request 16965
fix a crash and some cleanup in the auth-catalogzone.cc (Kees Monshouwer)
¶References: pull request 14057
coverity-induced fixes
¶References: pull request 16638, pull request 16958
correctly update tsig keys with PostgreSQL
¶References: #16945, pull request 16947
Ensure LUA record weights are > 0
¶References: #8854, pull request 16948
stricter handling of the Lua DNS update policy
¶References: pull request 16831
web: stricter control of statistics rings changes
¶References: pull request 16731
fix and document behaviour when multiple ALIAS records in an RRset
¶References: #16864, pull request 16884
loosen check in NotificationQueue::removeIf
¶References: pull request 16902
fix stupid logic error in lmdb-write-update-notification=no
¶References: pull request 16871
better advice when creating zones
¶References: pull request 16670
harden SVCB record parsing
¶References: pull request 16710
stricter TTL enforcement for RRset updates
¶References: #7230, pull request 16753
EDNS cookies: Test the timestamp handling in our unit tests
¶References: pull request 16733
EDNS cookies: fix timestamp handling
¶References: pull request 16730
always send a response for {A,I}XFR requests
¶References: pull request 16301
Actually install binaries when building with meson
¶References: pull request 16671
fix geoip_mmdb backend MMDB_open error handling (Ensar Sarajčić)
¶References: pull request 16669
more robustness in createReverse*
¶References: pull request 16657
lmdb: winter paranoia
¶References: pull request 16642
EXTEND and PRUNE are new in 4.9.12 and 5.0.2, not REPLACE
¶References: pull request 16652
remove configurable random generator leftovers
¶References: #16554, pull request 16639
yet another boring autoconf regression
¶References: pull request 16568
Remove some boost::optional leftovers
¶References: pull request 16601
lua: add missing catch block for STL exceptions in createForward
¶References: #15222, pull request 16564
M4/pdns_check_libcrypto: fix ecdsa/eddsa includedir (famfo)
¶References: pull request 16538
sstuff: convert mapped IPv4 addresses for ACL (famfo)
¶References: #16537, pull request 16539
regress: Fix PDNS_BUILD_PATH for non-meson builds
¶References: pull request 16517
meson: reset binary names to original
¶References: pull request 16401
sdist: copy files as files, not as new dirs
¶References: pull request 16398
Luawrapper: on luajit+arm64+tsan, retry allocs harder
¶References: pull request 16451
Cleanup endianness determining code
¶References: #16091, pull request 16440
Api: relax zone name check in view removal
¶References: #16351, pull request 16352
Drop Socket::getline (Chris Hofstaedtler)
¶References: #16335, pull request 16337
Prevent a potential race condition in cache cleaning (DeyanSG)
¶References: #16286, pull request 16287
Allow selecting a specific version of Lua with meson
¶References: pull request 16259
Luawrapper: don’t segfault on failure in traceback handler
¶References: #15173, #16229, pull request 16230
fix a secondary domain type check in bind backend
¶References: pull request 16213
missing space in error message
¶References: pull request 16195
handle ENT in pipe backend
¶References: pull request 16185
remove confusing message
¶References: #2353, pull request 16113
Provide more context in GeoIPbackend YAML parsing failures
¶References: pull request 16183
some more lmdb polish
¶References: pull request 16176
views: perform character set validation of view names
¶References: pull request 16152
odbc tweaks to appease coverity
¶References: #16109, pull request 16150
handle early lua-records-exec-limit exception correctly
¶References: #16118, #16119, pull request 16121
LUA shared exec: reset exec limit for every invocation
¶References: #16118, pull request 16119
Fix EDNS Cookie & Proxy protocol (Jelle Kaufmann)
¶References: pull request 16112
one more configuration sanity check
¶References: pull request 16116
TSIG metadata tweaks
¶References: #9015, pull request 15873
try to improve some error messages
¶References: pull request 16111
memory corruption in ODBC
¶References: pull request 16109
record contents handling changes
¶References: #5208, pull request 16087
REST API: normalize record contents received
¶References: #15990, pull request 15994
smarter bind zone file freshness check
¶References: #469, pull request 16035
REST API: bring back 404 errors
¶References: pull request 16059
Improve lmdb dyndns test results
¶References: pull request 15891
Correctly handle dnsupdate reject by Lua policy
¶References: #14953, pull request 16024
Web server: try harder to return response in the same type as the request
¶References: #7097, pull request 15969
Fix misleading description of tcp-control-port argument. (Ramsanker K R)
¶References: pull request 16056
Make axfr error message more helpful when a domain can’t be found
¶References: #11084, pull request 16046
More zone names in error messages
¶References: #12154, pull request 16006