[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