[PATCH] httpd Accept Header Patch

Bernhard Fischer rep.dot.nop at gmail.com
Mon Sep 1 15:32:30 UTC 2008


On Tue, Aug 26, 2008 at 10:03:46PM +0200, Alina Friedrichsen wrote:
> With this patch the BusyBox httpd pass the "Accept:" and
> "Accept-Language:" header by the environment variables to the
> CGI-Script, so this can make Content Negotiation to deliver the page in
> the language, which was selected by the user in the browser settings,
> and/or serve the XHTML page with the right MIME-Type
> application/xhtml+xml to user agents which support it und text/html
> which don't.
>
> (Needed e.g. for OpenWrt LuCI.)
>
> Signed-off-by: Alina Friedrichsen <x-alina at gmx.net>

Sorry for the delay. I have added your patch as r23295.
Thanks!

>Index: networking/httpd.c
>===================================================================
>--- networking/httpd.c	(Revision 23211)
>+++ networking/httpd.c	(Arbeitskopie)
>@@ -254,6 +254,8 @@
> 	USE_FEATURE_HTTPD_BASIC_AUTH(char *remoteuser;)
> 	USE_FEATURE_HTTPD_CGI(char *referer;)
> 	USE_FEATURE_HTTPD_CGI(char *user_agent;)
>+	USE_FEATURE_HTTPD_CGI(char *http_accept;)
>+	USE_FEATURE_HTTPD_CGI(char *http_accept_language;)
> 
> 	off_t file_size;        /* -1 - unknown */
> #if ENABLE_FEATURE_HTTPD_RANGES
>@@ -299,6 +301,8 @@
> #define remoteuser        (G.remoteuser       )
> #define referer           (G.referer          )
> #define user_agent        (G.user_agent       )
>+#define http_accept       (G.http_accept      )
>+#define http_accept_language (G.http_accept_language)
> #define file_size         (G.file_size        )
> #if ENABLE_FEATURE_HTTPD_RANGES
> #define range_start       (G.range_start      )
>@@ -1384,6 +1388,10 @@
> 		}
> 	}
> 	setenv1("HTTP_USER_AGENT", user_agent);
>+	if (http_accept)
>+		setenv1("HTTP_ACCEPT", http_accept);
>+	if (http_accept_language)
>+		setenv1("HTTP_ACCEPT_LANGUAGE", http_accept_language);
> 	if (post_len)
> 		putenv(xasprintf("CONTENT_LENGTH=%d", post_len));
> 	if (cookie)
>@@ -2005,6 +2013,10 @@
> 				referer = xstrdup(skip_whitespace(iobuf + sizeof("Referer:")-1));
> 			} else if (STRNCASECMP(iobuf, "User-Agent:") == 0) {
> 				user_agent = xstrdup(skip_whitespace(iobuf + sizeof("User-Agent:")-1));
>+			} else if (STRNCASECMP(iobuf, "Accept:") == 0) {
>+				http_accept = xstrdup(skip_whitespace(iobuf + sizeof("Accept:")-1));
>+			} else if (STRNCASECMP(iobuf, "Accept-Language:") == 0) {
>+				http_accept_language = xstrdup(skip_whitespace(iobuf + sizeof("Accept-Language:")-1));
> 			}
> #endif
> #if ENABLE_FEATURE_HTTPD_BASIC_AUTH
>

>_______________________________________________
>busybox mailing list
>busybox at busybox.net
>http://busybox.net/cgi-bin/mailman/listinfo/busybox



More information about the busybox mailing list