From: Timo Sirainen Date: Thu, 27 Jun 2013 17:28:51 +0000 (+0300) Subject: lib-http: Call request's destroy callback always, not just on success. X-Git-Tag: 2.2.5~89 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe681e6db72f30bd754b622005bbe298e5ca775a;p=thirdparty%2Fdovecot%2Fcore.git lib-http: Call request's destroy callback always, not just on success. --- 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);