diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-21 14:57:54 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-21 14:57:54 +0000 |
commit | 6cd84dac84f72dde437790cc620c8638d3591d00 (patch) | |
tree | 1c822ba1859d04ab9af79210d7f331207738ed7b /networking/httpd.c | |
parent | e8feca085dbcd0fb97aa5af1a8e751affb88df48 (diff) | |
download | busybox-w32-6cd84dac84f72dde437790cc620c8638d3591d00.tar.gz busybox-w32-6cd84dac84f72dde437790cc620c8638d3591d00.tar.bz2 busybox-w32-6cd84dac84f72dde437790cc620c8638d3591d00.zip |
Three patches from FreeWRT people
Diffstat (limited to 'networking/httpd.c')
-rw-r--r-- | networking/httpd.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index 8c5e29fa8..d058812fc 100644 --- a/networking/httpd.c +++ b/networking/httpd.c | |||
@@ -145,6 +145,7 @@ struct globals { | |||
145 | USE_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;) | 145 | USE_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;) |
146 | USE_FEATURE_HTTPD_BASIC_AUTH(char *remoteuser;) | 146 | USE_FEATURE_HTTPD_BASIC_AUTH(char *remoteuser;) |
147 | USE_FEATURE_HTTPD_CGI(char *referer;) | 147 | USE_FEATURE_HTTPD_CGI(char *referer;) |
148 | USE_FEATURE_HTTPD_CGI(char *user_agent;) | ||
148 | 149 | ||
149 | #if ENABLE_FEATURE_HTTPD_CGI || DEBUG | 150 | #if ENABLE_FEATURE_HTTPD_CGI || DEBUG |
150 | char *rmt_ip_str; /* for set env REMOTE_ADDR */ | 151 | char *rmt_ip_str; /* for set env REMOTE_ADDR */ |
@@ -179,6 +180,7 @@ struct globals { | |||
179 | #define g_realm (G.g_realm ) | 180 | #define g_realm (G.g_realm ) |
180 | #define remoteuser (G.remoteuser ) | 181 | #define remoteuser (G.remoteuser ) |
181 | #define referer (G.referer ) | 182 | #define referer (G.referer ) |
183 | #define user_agent (G.user_agent ) | ||
182 | #if ENABLE_FEATURE_HTTPD_CGI || DEBUG | 184 | #if ENABLE_FEATURE_HTTPD_CGI || DEBUG |
183 | #define rmt_ip_str (G.rmt_ip_str ) | 185 | #define rmt_ip_str (G.rmt_ip_str ) |
184 | #endif | 186 | #endif |
@@ -1106,6 +1108,7 @@ static int sendCgi(const char *url, | |||
1106 | setenv1("REMOTE_ADDR", p); | 1108 | setenv1("REMOTE_ADDR", p); |
1107 | if (cp) *cp = ':'; | 1109 | if (cp) *cp = ':'; |
1108 | } | 1110 | } |
1111 | setenv1("HTTP_USER_AGENT", user_agent); | ||
1109 | #if ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV | 1112 | #if ENABLE_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV |
1110 | setenv_long("REMOTE_PORT", tcp_port); | 1113 | setenv_long("REMOTE_PORT", tcp_port); |
1111 | #endif | 1114 | #endif |
@@ -1682,12 +1685,14 @@ static void handleIncoming(void) | |||
1682 | if (test[0] || errno || length > INT_MAX) | 1685 | if (test[0] || errno || length > INT_MAX) |
1683 | goto bail_out; | 1686 | goto bail_out; |
1684 | } | 1687 | } |
1685 | } else if ((STRNCASECMP(buf, "Cookie:") == 0)) { | 1688 | } else if (STRNCASECMP(buf, "Cookie:") == 0) { |
1686 | cookie = strdup(skip_whitespace(buf + sizeof("Cookie:")-1)); | 1689 | cookie = strdup(skip_whitespace(buf + sizeof("Cookie:")-1)); |
1687 | } else if ((STRNCASECMP(buf, "Content-Type:") == 0)) { | 1690 | } else if (STRNCASECMP(buf, "Content-Type:") == 0)) { |
1688 | content_type = strdup(skip_whitespace(buf + sizeof("Content-Type:")-1)); | 1691 | content_type = strdup(skip_whitespace(buf + sizeof("Content-Type:")-1)); |
1689 | } else if ((STRNCASECMP(buf, "Referer:") == 0)) { | 1692 | } else if (STRNCASECMP(buf, "Referer:") == 0) { |
1690 | referer = strdup(skip_whitespace(buf + sizeof("Referer:")-1)); | 1693 | referer = strdup(skip_whitespace(buf + sizeof("Referer:")-1)); |
1694 | } else if (STRNCASECMP(buf, "User-Agent:") == 0) { | ||
1695 | user_agent = strdup(skip_whitespace(buf + sizeof("User-Agent:")-1)); | ||
1691 | } | 1696 | } |
1692 | #endif | 1697 | #endif |
1693 | 1698 | ||