From 370753545874ea89be54dbfb52ec77dafb7bad95 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Sun, 21 Jan 2018 16:08:55 +0100 Subject: [PATCH] lib-http: client: Reset redirect counter when the request is retried. The absence of this reset caused problems when there was a redirect limit and the request was retried, in which case the limit is reached too soon. --- src/lib-http/http-client-request.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib-http/http-client-request.c b/src/lib-http/http-client-request.c index f90d8be4c3..15783dc10e 100644 --- a/src/lib-http/http-client-request.c +++ b/src/lib-http/http-client-request.c @@ -1492,6 +1492,7 @@ void http_client_request_redirect(struct http_client_request *req, return; } + i_assert(req->redirects <= req->client->set.max_redirects); if (++req->redirects > req->client->set.max_redirects) { if (req->client->set.max_redirects > 0) { http_client_request_error(&req, @@ -1584,6 +1585,7 @@ void http_client_request_resubmit(struct http_client_request *req) req->peer = NULL; req->state = HTTP_REQUEST_STATE_QUEUED; + req->redirects = 0; http_client_host_submit_request(req->host, req); } -- 2.47.3