From: Stephan Bosch Date: Sun, 26 Oct 2014 16:43:57 +0000 (+0200) Subject: lib-http: server: Fixed a hang occurring sometimes when response is sent for a reques... X-Git-Tag: 2.2.16.rc1~279 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=659ab82ad5c21d05d0bb06b7e236a0c4159fa3c0;p=thirdparty%2Fdovecot%2Fcore.git lib-http: server: Fixed a hang occurring sometimes when response is sent for a request that had payload. Forgot to always trigger sending response when processing request payload finishes. --- diff --git a/src/lib-http/http-server-connection.c b/src/lib-http/http-server-connection.c index 61ba45f767..de52f90eb0 100644 --- a/src/lib-http/http-server-connection.c +++ b/src/lib-http/http-server-connection.c @@ -229,6 +229,8 @@ static void http_server_payload_destroyed(struct http_server_request *req) req->state = HTTP_SERVER_REQUEST_STATE_PROCESSING; if (req->response != NULL && req->response->submitted) http_server_request_submit_response(req); + } else if (req->state == HTTP_SERVER_REQUEST_STATE_SUBMITTED_RESPONSE) { + http_server_request_ready_to_respond(req); } /* input stream may have pending input. make sure input handler @@ -749,7 +751,7 @@ void http_server_connection_trigger_responses( bool http_server_connection_pending_payload(struct http_server_connection *conn) { - return http_request_parser_pending_payload(conn->http_parser); + return conn->incoming_payload != NULL; } static struct connection_settings http_server_connection_set = {