From a4d40da9f2a0e9e1251c8989e6294790e61b51d6 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Sun, 15 Oct 2017 21:58:50 -0400 Subject: [PATCH] [core] remove fd interest if create_env returns remove fd interest in FDEVENT_OUT to backend if create_env hook returns a status that is not HANDLER_GO_ON, HANDLER_FINISHED, or HANDLER_ERROR (e.g. HANDLER_WAIT_FOR_EVENT or HANDLER_WAIT_FOR_FD or HANDLER_COMEBACK) --- src/gw_backend.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gw_backend.c b/src/gw_backend.c index 68798e46..0cf7b57b 100644 --- a/src/gw_backend.c +++ b/src/gw_backend.c @@ -1793,7 +1793,12 @@ static handler_t gw_write_request(server *srv, gw_handler_ctx *hctx) { { handler_t rc = hctx->create_env(srv, hctx); - if (HANDLER_GO_ON != rc) return rc; + if (HANDLER_GO_ON != rc) { + if (HANDLER_FINISHED != rc && HANDLER_ERROR != rc) + fdevent_event_clr(srv->ev, &(hctx->fde_ndx), hctx->fd, + FDEVENT_OUT); + return rc; + } } /*(disable Nagle algorithm if streaming and content-length unknown)*/