dovecot-2.2: lib-http: server: Fixed server waiting for payload ...

dovecot at dovecot.org dovecot at dovecot.org
Tue Aug 5 18:25:32 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/72db5dc3d402
changeset: 17682:72db5dc3d402
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Tue Aug 05 20:23:32 2014 +0200
description:
lib-http: server: Fixed server waiting for payload of already failed request.

diffstat:

 src/lib-http/http-server-private.h |  3 ++-
 src/lib-http/http-server-request.c |  2 ++
 2 files changed, 4 insertions(+), 1 deletions(-)

diffs (32 lines):

diff -r 6785b41831d3 -r 72db5dc3d402 src/lib-http/http-server-private.h
--- a/src/lib-http/http-server-private.h	Tue Aug 05 17:43:31 2014 +0200
+++ b/src/lib-http/http-server-private.h	Tue Aug 05 20:23:32 2014 +0200
@@ -82,6 +82,7 @@
 
 	unsigned int payload_halted:1;
 	unsigned int sent_100_continue:1;
+	unsigned int failed:1;
 };
 
 struct http_server_connection {
@@ -175,7 +176,7 @@
 static inline bool
 http_server_request_is_complete(struct http_server_request *req)
 {
-	return (req->conn->input_broken ||
+	return (req->failed || req->conn->input_broken ||
 		(req->next != NULL && !http_server_request_is_new(req->next)) ||
 		!http_server_connection_pending_payload(req->conn));
 }
diff -r 6785b41831d3 -r 72db5dc3d402 src/lib-http/http-server-request.c
--- a/src/lib-http/http-server-request.c	Tue Aug 05 17:43:31 2014 +0200
+++ b/src/lib-http/http-server-request.c	Tue Aug 05 20:23:32 2014 +0200
@@ -187,6 +187,8 @@
 {
 	struct http_server_response *resp;
 
+	req->failed = TRUE;
+
 	resp = http_server_response_create(req, status, reason);
 	http_server_response_add_header
 		(resp, "Content-Type", "text/plain; charset=utf-8");


More information about the dovecot-cvs mailing list