dovecot-2.2: lib-http: http-client: Connection was using wrong r...

dovecot at dovecot.org dovecot at dovecot.org
Sun Sep 15 03:38:25 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/abd565369b8f
changeset: 16731:abd565369b8f
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Sun Sep 15 03:28:21 2013 +0300
description:
lib-http: http-client: Connection was using wrong request index in request_wait_list to continue sending outgoing payload.

diffstat:

 src/lib-http/http-client-connection.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (24 lines):

diff -r 7b775a06c38f -r abd565369b8f src/lib-http/http-client-connection.c
--- a/src/lib-http/http-client-connection.c	Sun Sep 15 03:27:31 2013 +0300
+++ b/src/lib-http/http-client-connection.c	Sun Sep 15 03:28:21 2013 +0300
@@ -241,7 +241,9 @@
 	http_client_connection_debug(conn, 
 		"Expected 100-continue response timed out; sending payload anyway");
 
-	req_idx = array_idx(&conn->request_wait_list, 0);
+	i_assert(array_count(&conn->request_wait_list) > 0);
+	req_idx = array_idx(&conn->request_wait_list,
+		array_count(&conn->request_wait_list)-1);
 	req = req_idx[0];
 
 	conn->payload_continue = TRUE;
@@ -673,7 +675,8 @@
 	}
 
 	if (array_count(&conn->request_wait_list) > 0 && conn->output_locked) {
-		req_idx = array_idx(&conn->request_wait_list, 0);
+		req_idx = array_idx(&conn->request_wait_list,
+			array_count(&conn->request_wait_list)-1);
 		req = req_idx[0];
 
 		if (!req->payload_sync || conn->payload_continue) {


More information about the dovecot-cvs mailing list