dovecot-2.2: lib-http: http-client: Made requests release payloa...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Oct 12 11:14:58 EEST 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/2d44e9025af3
changeset: 16850:2d44e9025af3
user: Stephan Bosch <stephan at rename-it.nl>
date: Sat Oct 12 10:54:50 2013 +0300
description:
lib-http: http-client: Made requests release payload input stream as early as possible.
This prevents deadlock conditions when used for the HTTP proxy.
diffstat:
src/lib-http/http-client-request.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diffs (25 lines):
diff -r ad46c778981d -r 2d44e9025af3 src/lib-http/http-client-request.c
--- a/src/lib-http/http-client-request.c Sat Oct 12 10:54:10 2013 +0300
+++ b/src/lib-http/http-client-request.c Sat Oct 12 10:54:50 2013 +0300
@@ -543,6 +543,10 @@
req->callback = callback;
http_client_request_resubmit(req);
return FALSE;
+ } else {
+ /* release payload early (prevents server/client deadlock in proxy) */
+ if (req->payload_input != NULL)
+ i_stream_unref(&req->payload_input);
}
}
return TRUE;
@@ -563,6 +567,10 @@
http_response_init(&response, status, error);
(void)callback(&response, req->context);
+
+ /* release payload early (prevents server/client in proxy) */
+ if (req->payload_input != NULL)
+ i_stream_unref(&req->payload_input);
}
}
More information about the dovecot-cvs
mailing list