]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: http-client-request - Properly reset payload state upon retry/redirect.
authorStephan Bosch <stephan.bosch@open-xchange.com>
Fri, 24 Apr 2020 21:12:51 +0000 (23:12 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 27 Apr 2020 17:27:34 +0000 (17:27 +0000)
src/lib-http/http-client-request.c

index 1b04b9ebf2feaeee2282f5055305b85bc6f32244..8a0cc3c662f91aee13b6e4ba42367b6351065350 100644 (file)
@@ -1426,6 +1426,8 @@ http_client_request_send_real(struct http_client_request *req, bool pipelined)
        iov[2].iov_len = 2;
 
        req->state = HTTP_REQUEST_STATE_PAYLOAD_OUT;
+       req->payload_finished = FALSE;
+
        req->send_attempts++;
        if (req->first_sent_time.tv_sec == 0)
                req->first_sent_time = ioloop_timeval;
@@ -1698,6 +1700,10 @@ http_client_request_reset(struct http_client_request *req, bool rewind,
 
        /* Drop payload output stream from previous attempt */
        o_stream_unref(&req->payload_output);
+
+       /* Reset payload state */
+       req->payload_finished = FALSE;
+
        return 0;
 }