httpd: don't send Content-Length in error pages header

function                                             old     new   delta
send_headers                                         701     713     +12

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2021-12-17 20:37:58 +01:00
parent cb91a818c8
commit 70683faf38

View File

@ -1125,7 +1125,7 @@ static void send_headers(unsigned responseNum)
"Connection: close\r\n", "Connection: close\r\n",
responseNum, responseString responseNum, responseString
#if ENABLE_FEATURE_HTTPD_DATE #if ENABLE_FEATURE_HTTPD_DATE
,date_str , date_str
#endif #endif
); );
} }
@ -1222,17 +1222,29 @@ static void send_headers(unsigned responseNum)
// (NB: standards do not define "Transfer-Length:" _header_, // (NB: standards do not define "Transfer-Length:" _header_,
// transfer-length above is just a concept). // 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, len += sprintf(iobuf + len,
#if ENABLE_FEATURE_HTTPD_RANGES # if ENABLE_FEATURE_HTTPD_RANGES
"Accept-Ranges: bytes\r\n" "Accept-Ranges: bytes\r\n"
#endif # endif
#if ENABLE_FEATURE_HTTPD_LAST_MODIFIED # if ENABLE_FEATURE_HTTPD_LAST_MODIFIED
"Last-Modified: %s\r\n" "Last-Modified: %s\r\n"
#endif # endif
#if ENABLE_FEATURE_HTTPD_ETAG # if ENABLE_FEATURE_HTTPD_ETAG
"ETag: %s\r\n" "ETag: %s\r\n"
# endif
# if ENABLE_FEATURE_HTTPD_LAST_MODIFIED
, date_str
# endif
# if ENABLE_FEATURE_HTTPD_ETAG
, G.etag
# endif
#endif #endif
);
if (!infoString) {
len += sprintf(iobuf + len,
/* Because of 4.4 (5), we can forgo sending of "Content-Length" /* Because of 4.4 (5), we can forgo sending of "Content-Length"
* since we close connection afterwards, but it helps clients * since we close connection afterwards, but it helps clients
* to e.g. estimate download times, show progress bars etc. * 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). * but de-facto standard is to send it (see comment below).
*/ */
"Content-Length: %"OFF_FMT"u\r\n", "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 file_size
); );
}
} }
/* This should be "Transfer-Encoding", not "Content-Encoding": /* This should be "Transfer-Encoding", not "Content-Encoding":