diff options
Diffstat (limited to 'networking/httpd.c')
-rw-r--r-- | networking/httpd.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index 4def1b6..1ba1d10 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(); } |