From 998e94a3b4432c813d638a13affe1a98f5ea2dac Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Tue, 17 Jan 2017 01:37:25 +0100 Subject: [PATCH] lib-http: server: Do not generate a payload for a failure response for a HEAD request. --- src/lib-http/http-server-request.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib-http/http-server-request.c b/src/lib-http/http-server-request.c index acb2a29cec..e0fbedfc27 100644 --- a/src/lib-http/http-server-request.c +++ b/src/lib-http/http-server-request.c @@ -302,12 +302,16 @@ http_server_request_create_fail_response(struct http_server_request *req, req->failed = TRUE; + i_assert(status / 100 != 1 && status != 204 && status != 304); + resp = http_server_response_create(req, status, reason); - http_server_response_add_header - (resp, "Content-Type", "text/plain; charset=utf-8"); - reason = t_strconcat(reason, "\r\n", NULL); - http_server_response_set_payload_data - (resp, (const unsigned char *)reason, strlen(reason)); + if (!http_request_method_is(&req->req, "HEAD")) { + http_server_response_add_header + (resp, "Content-Type", "text/plain; charset=utf-8"); + reason = t_strconcat(reason, "\r\n", NULL); + http_server_response_set_payload_data + (resp, (const unsigned char *)reason, strlen(reason)); + } return resp; }