]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: client: peer: Moved http_client_peer_unref() function.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sun, 18 Dec 2016 17:44:05 +0000 (18:44 +0100)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 7 Dec 2017 16:40:45 +0000 (18:40 +0200)
This is a preparation for a subsequent change.

src/lib-http/http-client-peer.c

index 1af419df25fe8122a42c3f01c98882e254558e1e..9a7ec1582bc678ec9ab19224d93003969eacda37 100644 (file)
@@ -303,6 +303,33 @@ http_client_peer_disconnect(struct http_client_peer *peer)
        array_clear(&peer->queues);
 }
 
+bool http_client_peer_unref(struct http_client_peer **_peer)
+{
+       struct http_client_peer *peer = *_peer;
+       struct http_client_peer_pool *ppool = peer->ppool;
+
+       i_assert(peer->refcount > 0);
+
+       *_peer = NULL;
+
+       if (--peer->refcount > 0)
+               return TRUE;
+
+       http_client_peer_debug(peer, "Peer destroy");
+
+       http_client_peer_disconnect(peer);
+       http_client_peer_pool_unref(&ppool);
+
+       i_assert(array_count(&peer->queues) == 0);
+
+       array_free(&peer->conns);
+       array_free(&peer->queues);
+       i_free(peer->addr_name);
+       i_free(peer->label);
+       i_free(peer);
+       return FALSE;
+}
+
 static void
 http_client_peer_do_connect(struct http_client_peer *peer,
        unsigned int count)
@@ -733,33 +760,6 @@ void http_client_peer_trigger_request_handler(struct http_client_peer *peer)
        }
 }
 
-bool http_client_peer_unref(struct http_client_peer **_peer)
-{
-       struct http_client_peer *peer = *_peer;
-
-       i_assert(peer->refcount > 0);
-
-       *_peer = NULL;
-
-       if (--peer->refcount > 0)
-               return TRUE;
-
-       http_client_peer_debug(peer, "Peer destroy");
-
-       http_client_peer_disconnect(peer);
-       http_client_peer_pool_unref(&peer->ppool);
-
-       i_assert(array_count(&peer->queues) == 0);
-
-       array_free(&peer->conns);
-       array_free(&peer->queues);
-       i_free(peer->addr_name);
-       i_free(peer->label);
-       i_free(peer);
-
-       return FALSE;
-}
-
 void http_client_peer_close(struct http_client_peer **_peer)
 {
        struct http_client_peer *peer = *_peer;