dovecot-2.2: lib-http: Wrap response payload istream into a istr...

dovecot at dovecot.org dovecot at dovecot.org
Thu Apr 3 16:56:56 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/790afcf05f0d
changeset: 17191:790afcf05f0d
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Apr 03 19:56:47 2014 +0300
description:
lib-http: Wrap response payload istream into a istream-timeout.

diffstat:

 src/lib-http/http-client-connection.c  |  6 +++++-
 src/plugins/fts-solr/solr-connection.c |  4 ++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diffs (43 lines):

diff -r e0a3b902cd3f -r 790afcf05f0d src/lib-http/http-client-connection.c
--- a/src/lib-http/http-client-connection.c	Thu Apr 03 19:54:27 2014 +0300
+++ b/src/lib-http/http-client-connection.c	Thu Apr 03 19:56:47 2014 +0300
@@ -8,6 +8,7 @@
 #include "array.h"
 #include "ioloop.h"
 #include "istream.h"
+#include "istream-timeout.h"
 #include "ostream.h"
 #include "time-util.h"
 #include "iostream-rawlog.h"
@@ -433,7 +434,8 @@
 		/* wrap the stream to capture the destroy event without destroying the
 		   actual payload stream. */
 		conn->incoming_payload = response->payload =
-			i_stream_create_limit(response->payload, (uoff_t)-1);
+			i_stream_create_timeout(response->payload,
+				conn->client->set.request_timeout_msecs);
 		i_stream_add_destroy_callback(response->payload,
 					      http_client_payload_destroyed,
 					      req);
@@ -1195,5 +1197,7 @@
 		conn->to_idle = io_loop_move_timeout(&conn->to_idle);
 	if (conn->to_response != NULL)
 		conn->to_response = io_loop_move_timeout(&conn->to_response);
+	if (conn->incoming_payload != NULL)
+		i_stream_switch_ioloop(conn->incoming_payload);
 	connection_switch_ioloop(&conn->conn);
 }
diff -r e0a3b902cd3f -r 790afcf05f0d src/plugins/fts-solr/solr-connection.c
--- a/src/plugins/fts-solr/solr-connection.c	Thu Apr 03 19:54:27 2014 +0300
+++ b/src/plugins/fts-solr/solr-connection.c	Thu Apr 03 19:56:47 2014 +0300
@@ -391,8 +391,8 @@
 
 	i_stream_ref(response->payload);
 	conn->payload = response->payload;
-	conn->io = io_add(i_stream_get_fd(response->payload), IO_READ,
-			  solr_connection_payload_input, conn);
+	conn->io = io_add_istream(response->payload,
+				  solr_connection_payload_input, conn);
 	solr_connection_payload_input(conn);
 }
 


More information about the dovecot-cvs mailing list