In RFC 2616 sec. 14.18 said that sever MUST send Date header.
But in fact the header have sense only for Cache-Control and can be omitted.
In the same time the Date eats power, CPU and network resources which are 
critical for embedded systems.

Signed-off-by: Sergey Ponomarev <[email protected]>
---
 networking/httpd.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/networking/httpd.c b/networking/httpd.c
index 9141442c8..7a429d2b5 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -214,6 +214,14 @@
 //config:      help
 //config:      Makes httpd send files using GZIP content encoding if the
 //config:      client supports it and a pre-compressed <file>.gz exists.
+//config:
+//config:config FEATURE_HTTPD_DATE
+//config:      bool "Add Date header to response"
+//config:      default y
+//config:      depends on HTTPD
+//config:      help
+//config:      RFC2616 says that sever MUST add Date header to response.
+//config:      But it is almost useless and can be omitted.
 
 //applet:IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
 
@@ -1071,16 +1079,18 @@ static void send_headers(unsigned responseNum)
         * always fit into those kbytes.
         */
 
-       strftime(date_str, sizeof(date_str), RFC1123FMT, gmtime_r(&timer, &tm));
-       /* ^^^ using gmtime_r() instead of gmtime() to not use static data */
        len = sprintf(iobuf,
                        "HTTP/1.1 %u %s\r\n"
-                       "Date: %s\r\n"
                        "Connection: close\r\n",
-                       responseNum, responseString,
-                       date_str
+                       responseNum, responseString
        );
 
+#if ENABLE_FEATURE_HTTPD_DATE
+       strftime(date_str, sizeof(date_str), RFC1123FMT, gmtime_r(&timer, &tm));
+       /* ^^^ using gmtime_r() instead of gmtime() to not use static data */
+       len += sprintf(iobuf + len, "Date: %s\r\n", date_str);
+#endif
+
        if (responseNum != HTTP_OK || found_mime_type) {
                len += sprintf(iobuf + len,
                                "Content-type: %s\r\n",
-- 
2.25.1

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to