]> git.ipfire.org Git - thirdparty/bind9.git/commit
DoH: Simplify http_do_bio()
authorArtem Boldariev <artem@boldariev.com>
Thu, 20 Feb 2025 20:08:01 +0000 (22:08 +0200)
committerArtem Boldariev <artem@boldariev.com>
Mon, 3 Mar 2025 10:06:05 +0000 (12:06 +0200)
commite525029b896e88931c832e0614f7bbd1415a4db3
treec4e022554873dec459196e062609c1e2fc65fc85
parent587e4a2984c912f1aacc821d8c097ada1414e9c3
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 8b8f4d500d9c1d41d95d34a79c8935823978114c.

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 0956fb9b9ec4d07f1b744a829dacfe7a1251a58e)
lib/isc/netmgr/http.c