From 70683faf380681a11e16a85090162581aed55d73 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 17 Dec 2021 20:37:58 +0100 Subject: httpd: don't send Content-Length in error pages header function old new delta send_headers 701 713 +12 Signed-off-by: Denys Vlasenko --- networking/httpd.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/networking/httpd.c b/networking/httpd.c index 31c8489d3..4def1b6fc 100644 --- a/networking/httpd.c +++ b/networking/httpd.c @@ -1125,7 +1125,7 @@ static void send_headers(unsigned responseNum) "Connection: close\r\n", responseNum, responseString #if ENABLE_FEATURE_HTTPD_DATE - ,date_str + , date_str #endif ); } @@ -1222,17 +1222,29 @@ static void send_headers(unsigned responseNum) // (NB: standards do not define "Transfer-Length:" _header_, // transfer-length above is just a concept). +#if ENABLE_FEATURE_HTTPD_RANGES \ + || ENABLE_FEATURE_HTTPD_LAST_MODIFIED \ + || ENABLE_FEATURE_HTTPD_ETAG len += sprintf(iobuf + len, -#if ENABLE_FEATURE_HTTPD_RANGES +# if ENABLE_FEATURE_HTTPD_RANGES "Accept-Ranges: bytes\r\n" -#endif -#if ENABLE_FEATURE_HTTPD_LAST_MODIFIED +# endif +# if ENABLE_FEATURE_HTTPD_LAST_MODIFIED "Last-Modified: %s\r\n" -#endif -#if ENABLE_FEATURE_HTTPD_ETAG +# endif +# if ENABLE_FEATURE_HTTPD_ETAG "ETag: %s\r\n" +# endif +# if ENABLE_FEATURE_HTTPD_LAST_MODIFIED + , date_str +# endif +# if ENABLE_FEATURE_HTTPD_ETAG + , G.etag +# endif #endif - + ); + if (!infoString) { + len += sprintf(iobuf + len, /* Because of 4.4 (5), we can forgo sending of "Content-Length" * since we close connection afterwards, but it helps clients * to e.g. estimate download times, show progress bars etc. @@ -1240,14 +1252,9 @@ static void send_headers(unsigned responseNum) * but de-facto standard is to send it (see comment below). */ "Content-Length: %"OFF_FMT"u\r\n", -#if ENABLE_FEATURE_HTTPD_LAST_MODIFIED - date_str, -#endif -#if ENABLE_FEATURE_HTTPD_ETAG - G.etag, -#endif file_size - ); + ); + } } /* This should be "Transfer-Encoding", not "Content-Encoding": -- cgit v1.2.3-55-g6feb