bind9/lib
Artem Boldariev 16c1d1eb2e Avoid indefinite send re-scheduling in TLS DNS
When a peer is not reading the data we are sending it was for the TLS
DNS code to end up in a situation when it would indefinitely
reschedule send requests, effectively turning the 'uv_loop' into a
busy loop that would consume CPU cycles in endless efforts to send
outgoing data.

The main reason for that was only one send buffer dedicated for sends:
the code would re-queue sends until it is empty - that would never
happen when the remote side is not reading data.

That seems like an omission from the older day of the Network Manager
as it is quiet simple to make the code use multiple buffers for
sends. That ultimately breaks the cycle of futile send request
rescheduling.

As a side effect, this commit also gets rid of one memory copying on a
hot path.
2024-06-18 11:58:59 +03:00
..
bind9 Deprecate AES algorithm for DNS cookies 2023-12-05 10:52:03 +01:00
dns Remove support for SIG(0) message verification 2024-06-10 19:02:49 +02:00
irs Properly process extra nameserver lines in resolv.conf 2023-05-16 13:29:33 +10:00
isc Avoid indefinite send re-scheduling in TLS DNS 2024-06-18 11:58:59 +03:00
isccc NetBSD has added 'hmac' to libc so rename our uses of hmac 2023-12-14 11:14:04 +11:00
isccfg Add a limit to the number of RR types for single name 2024-06-10 18:50:06 +02:00
ns Clear qctx->zversion 2024-06-10 19:20:06 +02:00
.gitignore The isc/platform.h header has been completely removed 2021-07-06 05:33:48 +00:00
Makefile.am move samples/resolve.c to bin/tests/system 2021-04-16 14:29:43 +02:00