]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: http-server-response - Add response reference counting API.
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 11 Nov 2019 16:45:35 +0000 (17:45 +0100)
committermartti.rannanjarvi <martti.rannanjarvi@open-xchange.com>
Sat, 18 Apr 2020 14:55:11 +0000 (14:55 +0000)
Uses request reference counting internally. This is just a convenience API.

src/lib-http/http-server-response.c
src/lib-http/http-server.h

index aed59a40eceab485042e936af92493451533eadd..76c5387b44e685520c158e6a402680e9a07c0029 100644 (file)
@@ -97,6 +97,24 @@ void http_server_response_request_destroy(struct http_server_response *resp)
        e_debug(resp->event, "Destroy");
 }
 
+void http_server_response_ref(struct http_server_response *resp)
+{
+       http_server_request_ref(resp->request);
+}
+
+bool http_server_response_unref(struct http_server_response **_resp)
+{
+       struct http_server_response *resp = *_resp;
+       struct http_server_request *req;
+
+       *_resp = NULL;
+       if (resp == NULL)
+               return FALSE;
+
+       req = resp->request;
+       return http_server_request_unref(&req);
+}
+
 void http_server_response_add_header(struct http_server_response *resp,
                                     const char *key, const char *value)
 {
index bbd33a5535cbf26aab724ce39f8535185e7c58a3..89e64c94fb4405507b6b35a0d11c224aaf06a1fe 100644 (file)
@@ -71,6 +71,12 @@ struct http_server_response *
 http_server_response_create(struct http_server_request *req,
                            unsigned int status, const char *reason);
 
+/* Reference a server response */
+void http_server_response_ref(struct http_server_response *resp);
+/* Unreference a server response. Returns TRUE if there are still more
+   references, FALSE if not. */
+bool http_server_response_unref(struct http_server_response **_resp);
+
 /* Add a custom header to the response. This can override headers that are
    otherwise created implicitly. */
 void http_server_response_add_header(struct http_server_response *resp,