bind9/lib/ns
Artem Boldariev 2be0acf3f3 Recreate listeners on DNS transport change
This commit ensures that listeners are recreated on reconfiguration in
the case when their type changes (or when PROXY protocol type changes,
too).

Previously, if a "listen-on" statement was modified to represent a
different transport, BIND would not pick-up the change on
reconfiguration if listener type changes (e.g. DoH -> DoT) for a given
interface address and port combination. This commit fixes that by
recreating the listener.

Initially, that worked for most of the new transports as we would
recreate listeners on each reconfiguration for DoH and DoT. But at
some point we changed that in such a way that listeners were not
recreated to avoid rebinding a port as on some platforms only root can
do that for port numbers <1000, making some ports binding possible
only on start-up. We chose to asynchronously update listener socket
settings (like TLS contexts, HTTP settings) instead.

Now, we both avoid recreating the sockets if unnecessary and recreate
listeners when listener type changes.

(cherry picked from commit d59cf5e0ce)
2024-01-15 14:31:06 +02:00
..
include Recreate listeners on DNS transport change 2024-01-15 14:31:06 +02:00
client.c Remove unnecessary NULL-checks in ns__client_setup() 2023-10-02 10:04:56 +00:00
hooks.c Update sources to Clang 15 formatting 2022-11-29 09:14:07 +01:00
interfacemgr.c Recreate listeners on DNS transport change 2024-01-15 14:31:06 +02:00
listenlist.c remove nonfunctional DSCP implementation 2023-01-09 14:23:26 -08:00
log.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
Makefile.am Move all the unit tests to /tests/<libname>/ 2022-05-31 12:06:00 +02:00
notify.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
query.c Add new dns_rdatatype_iskeymaterial() function 2024-01-12 19:56:54 +11:00
server.c Allocate DNS send buffers using dedicated per-worker memory arenas 2023-09-05 15:02:30 +02:00
sortlist.c De-duplicate __FILE__, __LINE__ 2022-10-17 16:00:26 +01:00
stats.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-31 12:06:00 +02:00
update.c Report the type being filtered from an UPDATE 2024-01-13 01:58:57 +11:00
xfrout.c Adjust comment to have correct message limit value 2023-11-16 12:22:08 +11:00