Fix a race between scheduling a new request onto an idle connection and
authorclaudio <claudio@openbsd.org>
Tue, 30 Jan 2024 10:16:13 +0000 (10:16 +0000)
committerclaudio <claudio@openbsd.org>
Tue, 30 Jan 2024 10:16:13 +0000 (10:16 +0000)
commit29ff95df43934b5ff6e8527adbf81d09cb7b6e73
tree5d175dc04c52184eafde6c9fefab401719a17b35
parente1e64b4194d9ec59fb193517857545a6fea0bcd9
Fix a race between scheduling a new request onto an idle connection and
closing the same connection.

When closing an idle connection that connection needs to be moved off the
idle queue and back onto the active queue. Do this in the two possible
cases (directly in http_close() and in http_handle() for the STATE_IDLE
case). In both cases it is possible that the system needs to repoll the
connection and while waiting a request could be scheduled on that connection
if it remains on the idle queue.

Problem hit by job@
OK tb@
usr.sbin/rpki-client/http.c