Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2021-12-17 23:01:15 +0300
committerDenys Vlasenko <vda.linux@googlemail.com>2021-12-17 23:02:16 +0300
commitb720629dfec0e8e991e75b751dad215af2bc657f (patch)
treedd760c8b8b7b1e55f431139f7f4a90c4e0ae3bd3
parent70683faf380681a11e16a85090162581aed55d73 (diff)
httpd: do not send Last-Modified / ETag / Content-Length for error pages
function old new delta send_headers 713 701 -12 send_headers_and_exit 20 34 +14 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/httpd.c34
1 files 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();
}