dovecot-2.2: lib-http server: Create a new data stack frame for ...

dovecot at dovecot.org dovecot at dovecot.org
Tue Aug 5 14:30:10 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/7e084d643e59
changeset: 17679:7e084d643e59
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Aug 05 16:28:15 2014 +0200
description:
lib-http server: Create a new data stack frame for all the callbacks.

diffstat:

 src/lib-http/http-server-connection.c |  10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diffs (36 lines):

diff -r c9151da3a9b3 -r 7e084d643e59 src/lib-http/http-server-connection.c
--- a/src/lib-http/http-server-connection.c	Tue Aug 05 16:22:43 2014 +0200
+++ b/src/lib-http/http-server-connection.c	Tue Aug 05 16:28:15 2014 +0200
@@ -367,6 +367,7 @@
 	struct http_server_request *req, *pending_request;
 	enum http_request_parse_error error_code;
 	const char *error;
+	bool cont;
 	int ret;
 
 	i_assert(!conn->input_broken && conn->incoming_payload == NULL);
@@ -431,7 +432,10 @@
 			/* handle request 
 			   req may be destroyed after this, so don't refer to it if ret > 0 */
 			http_server_request_ref(req);
-			if (!http_server_connection_handle_request(conn, req)) {
+			T_BEGIN {
+				cont = http_server_connection_handle_request(conn, req);
+			} T_END;
+			if (!cont) {
 				http_server_request_unref(&req);
 				return;
 			}
@@ -828,10 +832,10 @@
 	connection_deinit(&conn->conn);
 
 	if (conn->callbacks != NULL &&
-		conn->callbacks->connection_destroy != NULL) {
+		conn->callbacks->connection_destroy != NULL) T_BEGIN {
 		conn->callbacks->connection_destroy
 			(conn->context, conn->disconnect_reason);
-	}
+	} T_END;
 
 	i_free(conn->disconnect_reason);
 	i_free(conn);


More information about the dovecot-cvs mailing list