From fe681e6db72f30bd754b622005bbe298e5ca775a Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 27 Jun 2013 20:28:51 +0300 Subject: [PATCH] lib-http: Call request's destroy callback always, not just on success. --- src/lib-http/http-client-request.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib-http/http-client-request.c b/src/lib-http/http-client-request.c index 30bdafc81b..13c51267fd 100644 --- a/src/lib-http/http-client-request.c +++ b/src/lib-http/http-client-request.c @@ -92,6 +92,11 @@ void http_client_request_unref(struct http_client_request **_req) if (--req->refcount > 0) return; + if (req->destroy_callback != NULL) { + req->destroy_callback(req->destroy_context); + req->destroy_callback = NULL; + } + /* only decrease pending request counter if this request was submitted */ if (req->state > HTTP_REQUEST_STATE_NEW) req->client->pending_requests--; @@ -541,9 +546,6 @@ void http_client_request_finish(struct http_client_request **_req) req->callback = NULL; req->state = HTTP_REQUEST_STATE_FINISHED; - if (req->destroy_callback != NULL) - req->destroy_callback(req->destroy_context); - if (req->payload_wait && req->client->ioloop != NULL) io_loop_stop(req->client->ioloop); http_client_request_unref(_req); -- 2.47.3