bind9/lib/ns
Artem Boldariev 5b7d4341fe Use the TLS context cache for server-side contexts
Using the TLS context cache for server-side contexts could reduce the
number of contexts to initialise in the configurations when e.g. the
same 'tls' entry is used in multiple 'listen-on' statements for the
same DNS transport, binding to multiple IP addresses.

In such a case, only one TLS context will be created, instead of a
context per IP address, which could reduce the initialisation time, as
initialising even a non-ephemeral TLS context introduces some delay,
which can be *visually* noticeable by log activity.

Also, this change lays down a foundation for Mutual TLS (when the
server validates a client certificate, additionally to a client
validating the server), as the TLS context cache can be extended to
store additional data required for validation (like intermediates CA
chain).

Additionally to the above, the change ensures that the contexts are
not being changed after initialisation, as such a practice is frowned
upon. Previously we would set the supported ALPN tags within
isc_nm_listenhttp() and isc_nm_listentlsdns(). We do not do that for
client-side contexts, so that appears to be an overlook. Now we set
the supported ALPN tags right after server-side contexts creation,
similarly how we do for client-side ones.
2021-12-29 10:25:14 +02:00
..
include Use the TLS context cache for server-side contexts 2021-12-29 10:25:14 +02:00
tests Use the TLS context cache for server-side contexts 2021-12-29 10:25:14 +02:00
client.c Set the clientmgr isc_mem_t context name 2021-12-14 19:15:58 +00:00
hooks.c The isc/platform.h header has been completely removed 2021-07-06 05:33:48 +00:00
interfacemgr.c remove ns_interface reference counting 2021-12-15 09:46:06 -08:00
listenlist.c Use the TLS context cache for server-side contexts 2021-12-29 10:25:14 +02:00
log.c Remove LIB<*>_EXTERNAL_DATA defines 2021-07-06 05:33:48 +00:00
Makefile.am Remove libns init/shutdown functions 2021-10-04 13:57:34 -07:00
notify.c Make isc_result a static enum 2021-10-06 11:22:20 +02:00
query.c Add synthesis of NODATA at wildcard 2021-12-02 14:24:37 +01:00
server.c Add (http-)listener-clients option (DoH quota mechanism) 2021-07-16 11:50:20 +03:00
sortlist.c Make isc_result a static enum 2021-10-06 11:22:20 +02:00
stats.c update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
update.c Add {krb5,ms}-subdomain-self-rhs update policy rules 2021-10-15 11:18:41 +11:00
xfrout.c Replace "master/slave" terms in code comments 2021-10-12 13:09:00 -07:00