dovecot-2.2: lib-http server: If i/ostream fails, don't return w...

dovecot at dovecot.org dovecot at dovecot.org
Sat Oct 25 23:00:07 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/5cd30ecff35d
changeset: 18023:5cd30ecff35d
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Oct 26 01:59:05 2014 +0300
description:
lib-http server: If i/ostream fails, don't return wrong "stream input size changed" error.
Also handle the real case in a bit nicer way.

diffstat:

 src/lib-http/http-server-response.c |  10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diffs (20 lines):

diff -r e5c58f244c5b -r 5cd30ecff35d src/lib-http/http-server-response.c
--- a/src/lib-http/http-server-response.c	Sat Oct 25 22:18:07 2014 +0000
+++ b/src/lib-http/http-server-response.c	Sun Oct 26 01:59:05 2014 +0300
@@ -259,10 +259,12 @@
 	}
 
 	if (ret < 0 || i_stream_is_eof(resp->payload_input)) {
-		if (!resp->payload_chunked &&
-			resp->payload_input->v_offset - resp->payload_offset != resp->payload_size) {
-			i_error("stream input size changed"); //FIXME
-			return -1;
+		if (ret >= 0 && !resp->payload_chunked &&
+		    resp->payload_input->v_offset - resp->payload_offset != resp->payload_size) {
+			*error_r = t_strdup_printf(
+				"Input stream %s size changed unexpectedly",
+				i_stream_get_name(resp->payload_input));
+			ret = -1;
 		}
 
 		http_server_response_finish_payload_out(resp);


More information about the dovecot-cvs mailing list