From: Stephan Bosch Date: Thu, 5 Jul 2018 22:01:14 +0000 (+0200) Subject: lib-http: http-server-response - Prevent response content stream from finishing the... X-Git-Tag: 2.3.11.2~307 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8094dac46579a41f38370a9d92dec4ba13c30076;p=thirdparty%2Fdovecot%2Fcore.git lib-http: http-server-response - Prevent response content stream from finishing the connection output stream. This is not supposed to happen ever, because the connection output stream needs to be available for several responses. This was at some point a problem in some of the test with the new ostream payload API. --- diff --git a/src/lib-http/http-server-connection.c b/src/lib-http/http-server-connection.c index 10ad174280..d1bb19a5a7 100644 --- a/src/lib-http/http-server-connection.c +++ b/src/lib-http/http-server-connection.c @@ -147,6 +147,7 @@ static void http_server_connection_ready(struct http_server_connection *conn) conn->http_parser = http_request_parser_init( conn->conn.input, &base_url, &conn->server->set.request_limits, HTTP_REQUEST_PARSE_FLAG_STRICT); + o_stream_set_finish_via_child(conn->conn.output, FALSE); o_stream_set_flush_callback(conn->conn.output, http_server_connection_output, conn); } diff --git a/src/lib-http/http-server-response.c b/src/lib-http/http-server-response.c index 41baeb8c1c..b930bc753f 100644 --- a/src/lib-http/http-server-response.c +++ b/src/lib-http/http-server-response.c @@ -601,6 +601,7 @@ static int http_server_response_send_real(struct http_server_response *resp) if (!is_head) { resp->payload_output = http_transfer_chunked_ostream_create(conn->conn.output); + o_stream_set_finish_also_parent(resp->payload_output, FALSE); } } } else {