]> git.ipfire.org Git - thirdparty/bind9.git/commit
Serialize the HTTP/1.1 statschannel requests
authorOndřej Surý <ondrej@isc.org>
Tue, 18 Oct 2022 19:46:16 +0000 (21:46 +0200)
committerOndřej Surý <ondrej@isc.org>
Thu, 20 Oct 2022 15:23:36 +0000 (17:23 +0200)
commit9274876dec065ffd895efeea4ede83d2c3a9e521
tree3836169613ee81dcd2fc9e0749c401517407753b
parentf3847437b2b45d243dcc961c7d8649f55277f5aa
Serialize the HTTP/1.1 statschannel requests

The statschannel truncated test still terminates abruptly sometimes and
it doesn't return the answer for the first query.  This might happen
when the second process_request() discovers there's not enough space
before the sending is complete and the connection is terminated before
the client gets the data.

Change the isc_http, so it pauses the reading when it receives the data
and resumes it only after the sending has completed or there's
incomplete request waiting for more data.

This makes the request processing slightly less efficient, but also less
taxing for the server, because previously all requests that has been
received via single TCP read would be processed in the loop and the
sends would be queued after the read callback has processed a full
buffer.

(cherry picked from commit 13959781cb7dab5cc6cec3e14cf97a9507fc36fe)
lib/isc/httpd.c