diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2022-03-25 02:11:35 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2022-03-25 08:43:42 -0400 |
commit | 38a01d98fff1c5fe096a833a6ec2922d9653548f (patch) | |
tree | a6463d3931a1c9cd43be83bfd31abd19c83c4af1 /src/gw_backend.c | |
parent | fa5e9b5364dae268c31b4c7f79be6a1017277978 (diff) | |
download | lighttpd-git-38a01d98fff1c5fe096a833a6ec2922d9653548f.tar.gz |
[core] ensure socket ready before checking connect
ensure socket ready for writing before checking connect() status
(sanity check in case request gets rescheduled for another reason
before the socket is ready for writing)
Diffstat (limited to 'src/gw_backend.c')
-rw-r--r-- | src/gw_backend.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gw_backend.c b/src/gw_backend.c index fb884b12..83b77460 100644 --- a/src/gw_backend.c +++ b/src/gw_backend.c @@ -1972,6 +1972,8 @@ static handler_t gw_write_request(gw_handler_ctx * const hctx, request_st * cons __attribute_fallthrough__ case GW_STATE_CONNECT_DELAYED: if (hctx->state == GW_STATE_CONNECT_DELAYED) { /*(not GW_STATE_INIT)*/ + if (!(fdevent_fdnode_interest(hctx->fdn) & FDEVENT_OUT)) + return HANDLER_WAIT_FOR_EVENT; int socket_error = fdevent_connect_status(hctx->fd); if (socket_error != 0) { gw_proc_connect_error(r, hctx->host, hctx->proc, hctx->pid, |