]> git.ipfire.org Git - thirdparty/pdns.git/commit
dnsdist: add opt-in fatal bind failures for console and webserver 17099/head
authorb.courtois <b.courtois@criteo.com>
Tue, 31 Mar 2026 20:06:01 +0000 (22:06 +0200)
committerb.courtois <b.courtois@criteo.com>
Thu, 28 May 2026 20:48:07 +0000 (22:48 +0200)
commita37aaafa1a694caafb7b034dda8cb4f71eb09d8b
treea846fe668413c90e3a53f733aed93c2499900425
parent36f6762677539abd610f33fc48310bcf39defe05
dnsdist: add opt-in fatal bind failures for console and webserver

Introduce opt-in fatal behavior when binding the webserver socket or
the control socket fails, to make startup failures visible to service
managers like systemd.
Expose the feature in both configuration styles:
- Lua: setConsoleBindFatal(bool), setWebserverBindFatal(bool)
- YAML: console.bind_fatal, webserver.bind_fatal

When enabled, dnsdist now exits with failure on bind exceptions for:
- control socket listeners
- webserver listeners

Wire the new settings through runtime configuration loading, Lua
configuration items, and YAML parsing, and add console completion
entries for both setters.
Update documentation with new config functions and behavior notes.

Add regression tests in test_BindFatal.py for Lua and YAML, validating:
- default/not set: bind failures are non-fatal
- explicit false: bind failures are non-fatal
- explicit true: bind failures are fatal at startup

Signed-off-by: b.courtois <b.courtois@criteo.com>
pdns/dnsdistdist/dnsdist-configuration-yaml.cc
pdns/dnsdistdist/dnsdist-configuration.hh
pdns/dnsdistdist/dnsdist-console-completion.cc
pdns/dnsdistdist/dnsdist-lua-configuration-items.cc
pdns/dnsdistdist/dnsdist-lua.cc
pdns/dnsdistdist/dnsdist-settings-definitions.yml
pdns/dnsdistdist/dnsdist.cc
pdns/dnsdistdist/docs/reference/config.rst
regression-tests.dnsdist/test_BindFatal.py [new file with mode: 0644]