From: Stephan Bosch Date: Thu, 5 Jul 2018 21:52:51 +0000 (+0200) Subject: lib-http: http-client-request - Prevent request content stream from finishing the... X-Git-Tag: 2.3.11.2~308 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=081e5fed721c09d4890c0114a0ec41a15e7a9ee3;p=thirdparty%2Fdovecot%2Fcore.git lib-http: http-client-request - Prevent request 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 requests. 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-client-connection.c b/src/lib-http/http-client-connection.c index f0f1c66fdc..176aff6911 100644 --- a/src/lib-http/http-client-connection.c +++ b/src/lib-http/http-client-connection.c @@ -1434,6 +1434,7 @@ http_client_connection_ready(struct http_client_connection *conn) /* start protocol I/O */ conn->http_parser = http_response_parser_init (conn->conn.input, &set->response_hdr_limits, 0); + o_stream_set_finish_via_child(conn->conn.output, FALSE); o_stream_set_flush_callback(conn->conn.output, http_client_connection_output, conn); } diff --git a/src/lib-http/http-client-request.c b/src/lib-http/http-client-request.c index 0ea0a08ab5..7760a90a7e 100644 --- a/src/lib-http/http-client-request.c +++ b/src/lib-http/http-client-request.c @@ -1329,6 +1329,7 @@ static int http_client_request_send_real(struct http_client_request *req, str_append(rtext, "Transfer-Encoding: chunked\r\n"); req->payload_output = http_transfer_chunked_ostream_create(conn->conn.output); + o_stream_set_finish_also_parent(req->payload_output, FALSE); } else if (req->payload_input != NULL || req->payload_empty || strcasecmp(req->method, "POST") == 0 ||