[git commit] httpd: do not send Last-Modified / ETag / Content-Length for error pages

Denys Vlasenko vda.linux at googlemail.com
Fri Dec 17 20:02:16 UTC 2021


commit: https://git.busybox.net/busybox/commit/?id=b720629dfec0e8e991e75b751dad215af2bc657f
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
send_headers                                         713     701     -12
send_headers_and_exit                                 20      34     +14

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/httpd.c | 34 ++++++++++++++--------------------
 1 file changed, 14 insertions(+), 20 deletions(-)

diff --git a/networking/httpd.c b/networking/httpd.c
index 4def1b6fc..1ba1d1063 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1222,29 +1222,17 @@ 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.
@@ -1252,9 +1240,14 @@ 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":
@@ -1297,6 +1290,7 @@ static void send_headers_and_exit(int responseNum) NORETURN;
 static void send_headers_and_exit(int responseNum)
 {
 	IF_FEATURE_HTTPD_GZIP(content_gzip = 0;)
+	file_size = -1; /* no Last-Modified:, ETag:, Content-Length: */
 	send_headers(responseNum);
 	log_and_exit();
 }


More information about the busybox-cvs mailing list