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

@ -1222,6 +1222,9 @@ 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"
@ -1232,7 +1235,16 @@ static void send_headers(unsigned responseNum)
# if ENABLE_FEATURE_HTTPD_ETAG # if ENABLE_FEATURE_HTTPD_ETAG
"ETag: %s\r\n" "ETag: %s\r\n"
# endif # 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" /* 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,15 +1252,10 @@ 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":
* "data is compressed for transfer", not "data is an archive". * "data is compressed for transfer", not "data is an archive".