summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.15.0-httpd.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/busybox-1.15.0-httpd.patch')
-rw-r--r--package/busybox/busybox-1.15.0-httpd.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.15.0-httpd.patch b/package/busybox/busybox-1.15.0-httpd.patch
new file mode 100644
index 000000000..3d6ebadce
--- /dev/null
+++ b/package/busybox/busybox-1.15.0-httpd.patch
@@ -0,0 +1,61 @@
+diff -urpN busybox-1.15.0/networking/httpd.c busybox-1.15.0-httpd/networking/httpd.c
+--- busybox-1.15.0/networking/httpd.c 2009-08-21 00:26:14.000000000 +0200
++++ busybox-1.15.0-httpd/networking/httpd.c 2009-09-08 22:33:09.000000000 +0200
+@@ -2101,8 +2101,12 @@ static void handle_incoming_and_exit(con
+ }
+ send_cgi_and_exit(urlcopy, prequest, length, cookie, content_type);
+ }
++#endif
++
++ if (urlp[-1] == '/')
++ strcpy(urlp, index_page);
++ if (stat(tptr, &sb) == 0) {
+ #if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+- {
+ char *suffix = strrchr(tptr, '.');
+ if (suffix) {
+ Htaccess *cur;
+@@ -2112,16 +2116,7 @@ static void handle_incoming_and_exit(con
+ }
+ }
+ }
+- }
+ #endif
+- if (prequest != request_GET && prequest != request_HEAD) {
+- send_headers_and_exit(HTTP_NOT_IMPLEMENTED);
+- }
+-#endif /* FEATURE_HTTPD_CGI */
+-
+- if (urlp[-1] == '/')
+- strcpy(urlp, index_page);
+- if (stat(tptr, &sb) == 0) {
+ file_size = sb.st_size;
+ last_mod = sb.st_mtime;
+ }
+@@ -2135,19 +2130,18 @@ static void handle_incoming_and_exit(con
+ send_cgi_and_exit("/cgi-bin/index.cgi", prequest, length, cookie, content_type);
+ }
+ }
+-#endif
+- /* else {
+- * fall through to send_file, it errors out if open fails
+- * }
+- */
++ /* else fall through to send_file, it errors out if open fails: */
+
++ if (prequest != request_GET && prequest != request_HEAD) {
++ /* POST for files does not make sense */
++ send_headers_and_exit(HTTP_NOT_IMPLEMENTED);
++ }
+ send_file_and_exit(tptr,
+-#if ENABLE_FEATURE_HTTPD_CGI
+ (prequest != request_HEAD ? SEND_HEADERS_AND_BODY : SEND_HEADERS)
++ );
+ #else
+- SEND_HEADERS_AND_BODY
++ send_file_and_exit(tptr, SEND_HEADERS_AND_BODY);
+ #endif
+- );
+ }
+
+ /*