Mercurial > dovecot > core-2.2
changeset 19819:c1a959cba67a
lib-http: http_server_request_unref() now always sets *req=NULL
This makes its behavior consistent with other APIs in Dovecot.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 22 Feb 2016 20:58:03 +0200 |
parents | 2cc7c59f1311 |
children | a0e487d9c6f9 |
files | src/lib-http/http-server-request.c src/lib-http/http-server-response.c |
diffstat | 2 files changed, 4 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-http/http-server-request.c Mon Feb 22 20:47:37 2016 +0200 +++ b/src/lib-http/http-server-request.c Mon Feb 22 20:58:03 2016 +0200 @@ -66,6 +66,8 @@ struct http_server_connection *conn = req->conn; i_assert(req->refcount > 0); + + *_req = NULL; if (--req->refcount > 0) return TRUE; @@ -84,7 +86,6 @@ if (req->response != NULL) http_server_response_free(req->response); pool_unref(&req->pool); - *_req = NULL; return FALSE; } @@ -449,8 +450,7 @@ ret = hsristream->read_status; - http_server_request_unref(&req); - if (req == NULL) + if (!http_server_request_unref(&req)) hsristream->req = NULL; http_server_connection_unref(&conn); }
--- a/src/lib-http/http-server-response.c Mon Feb 22 20:47:37 2016 +0200 +++ b/src/lib-http/http-server-response.c Mon Feb 22 20:58:03 2016 +0200 @@ -405,8 +405,7 @@ /* callback may have messed with our pointer, so unref using local variable */ - http_server_request_unref(&req); - if (req == NULL) + if (!http_server_request_unref(&req)) *_resp = NULL; http_server_connection_unref(&conn);