bind9/lib/isc
Artem Boldariev e525029b89 DoH: Simplify http_do_bio()
This commit significantly simplifies the code flow in the
http_do_bio() function, which is responsible for processing incoming
and outgoing HTTP/2 data. It seems that the way it was structured
before was indirectly caused by the presence of the missing callback
calls bug, fixed in 8b8f4d500d.

The change introduced by this commit is known to remove a bottleneck
and allows reproducible and measurable performance improvement for
long runs (>= 1h) of "stress:long:rpz:doh+udp:linux:*" tests.

Additionally, it fixes a similar issue with potentially missing send
callback calls processing and hardens the code against use-after-free
errors related to the session object (they can potentially occur).

(cherry picked from commit 0956fb9b9e)
2025-03-03 12:06:05 +02:00
..
include Reduce sizeof isc_sockaddr from 152 to 48 bytes 2025-01-22 14:12:38 +01:00
netmgr DoH: Simplify http_do_bio() 2025-03-03 12:06:05 +02:00
.gitignore [master] update gitignore files; use rev-parse to get srcid 2014-06-17 13:49:30 -07:00
aes.c Remove EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() shims 2022-03-02 10:49:47 +00:00
app.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
assertions.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
astack.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
backtrace.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
base32.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
base64.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
buffer.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
commandline.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
condition.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
counter.c Implement global limit for outgoing queries 2024-12-06 15:17:53 +00:00
crc64.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dir.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
entropy.c De-duplicate __FILE__, __LINE__ 2022-10-17 16:00:26 +01:00
entropy_private.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
errno.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
errno2result.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
errno2result.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
error.c Include the function name when reporting unexpected errors 2022-10-17 16:00:27 +01:00
event.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
file.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
glob.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
hash.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
heap.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
hex.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
hmac.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
ht.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
httpd.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
interfaceiter.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
iterated_hash.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
jemalloc_shim.h Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
lex.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
lib.c remove isc_bind9 variable 2023-02-09 10:07:39 -08:00
log.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
Makefile.am Replace isc_fsaccess API with more secure file creation 2023-03-31 16:47:15 +02:00
managers.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
md.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
mem.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
mem_p.h Improve stability of the jemalloc workaround 2023-11-01 18:04:07 +01:00
meminfo.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
mutex.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
mutexblock.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
net.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
netaddr.c Reduce sizeof isc_sockaddr from 152 to 48 bytes 2025-01-22 14:12:38 +01:00
netmgr_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
netscope.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
nonce.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
openssl_shim.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
openssl_shim.h Remove unused <openssl/{hmac,engine}.h> headers from OpenSSL shims 2024-10-18 01:29:27 +00:00
os.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
os_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
parseint.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
picohttpparser.c Update picohttpparser.{c,h} with upstream repository 2024-12-08 12:30:11 +00:00
picohttpparser.h Update picohttpparser.{c,h} with upstream repository 2024-12-08 12:30:11 +00:00
pool.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
portset.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
quota.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
radix.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
random.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
ratelimiter.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
regex.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
region.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
resource.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
result.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
rwlock.c Fix a bug in isc_rwlock_trylock() 2025-01-07 13:30:26 +00:00
safe.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
serial.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
siphash.c Accept 'in=NULL' with 'inlen=0' in isc_{half}siphash24 2023-01-10 18:36:08 +11:00
sockaddr.c Reduce sizeof isc_sockaddr from 152 to 48 bytes 2025-01-22 14:12:38 +01:00
stats.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
stdio.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
stdtime.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
string.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
symtab.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
syslog.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
task.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
task_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
taskpool.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
thread.c Remove redundant #include <isc/strerr.h> 2022-10-17 16:08:28 +01:00
time.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
timer.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
timer_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tls.c Provide more visibility into configuration errors 2024-11-26 12:24:41 +11:00
tls_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tm.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
trampoline.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
trampoline_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
url.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00
utf8.c Remove redundant parentheses from the return statement 2024-11-19 16:06:16 +01:00