http_client_peer_trigger_request_handler(conn->peer);
}
+void http_client_connection_request_destroyed(
+ struct http_client_connection *conn, struct http_client_request *req)
+{
+ struct istream *payload = conn->incoming_payload;
+
+ i_assert(req->conn == conn);
+ if (conn->pending_request != req)
+ return;
+
+ http_client_connection_debug(conn,
+ "Pending request destroyed prematurely");
+
+ if (payload == NULL)
+ return;
+ i_stream_ref(payload);
+ i_stream_destroy(&payload);
+}
+
static bool
http_client_connection_return_response(
struct http_client_connection *conn,
void http_client_connection_close(struct http_client_connection **_conn);
void http_client_connection_peer_closed(struct http_client_connection **_conn);
+void http_client_connection_request_destroyed(
+ struct http_client_connection *conn, struct http_client_request *req);
int http_client_connection_output(struct http_client_connection *conn);
void http_client_connection_start_request_timeout(
req->destroy_callback = NULL;
callback(req->destroy_context);
}
+
+ if (req->conn != NULL)
+ http_client_connection_request_destroyed(req->conn, req);
+
http_client_request_remove(req);
http_client_request_unref(&req);
}