diff options
Diffstat (limited to 'networking')
| -rw-r--r-- | networking/httpd.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index de4fb9b39..ae9116913 100644 --- a/networking/httpd.c +++ b/networking/httpd.c | |||
| @@ -2101,8 +2101,12 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr) | |||
| 2101 | } | 2101 | } |
| 2102 | send_cgi_and_exit(urlcopy, prequest, length, cookie, content_type); | 2102 | send_cgi_and_exit(urlcopy, prequest, length, cookie, content_type); |
| 2103 | } | 2103 | } |
| 2104 | #endif | ||
| 2105 | |||
| 2106 | if (urlp[-1] == '/') | ||
| 2107 | strcpy(urlp, index_page); | ||
| 2108 | if (stat(tptr, &sb) == 0) { | ||
| 2104 | #if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR | 2109 | #if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR |
| 2105 | { | ||
| 2106 | char *suffix = strrchr(tptr, '.'); | 2110 | char *suffix = strrchr(tptr, '.'); |
| 2107 | if (suffix) { | 2111 | if (suffix) { |
| 2108 | Htaccess *cur; | 2112 | Htaccess *cur; |
| @@ -2112,16 +2116,7 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr) | |||
| 2112 | } | 2116 | } |
| 2113 | } | 2117 | } |
| 2114 | } | 2118 | } |
| 2115 | } | ||
| 2116 | #endif | 2119 | #endif |
| 2117 | if (prequest != request_GET && prequest != request_HEAD) { | ||
| 2118 | send_headers_and_exit(HTTP_NOT_IMPLEMENTED); | ||
| 2119 | } | ||
| 2120 | #endif /* FEATURE_HTTPD_CGI */ | ||
| 2121 | |||
| 2122 | if (urlp[-1] == '/') | ||
| 2123 | strcpy(urlp, index_page); | ||
| 2124 | if (stat(tptr, &sb) == 0) { | ||
| 2125 | file_size = sb.st_size; | 2120 | file_size = sb.st_size; |
| 2126 | last_mod = sb.st_mtime; | 2121 | last_mod = sb.st_mtime; |
| 2127 | } | 2122 | } |
| @@ -2135,19 +2130,18 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr) | |||
| 2135 | send_cgi_and_exit("/cgi-bin/index.cgi", prequest, length, cookie, content_type); | 2130 | send_cgi_and_exit("/cgi-bin/index.cgi", prequest, length, cookie, content_type); |
| 2136 | } | 2131 | } |
| 2137 | } | 2132 | } |
| 2138 | #endif | 2133 | /* else fall through to send_file, it errors out if open fails: */ |
| 2139 | /* else { | ||
| 2140 | * fall through to send_file, it errors out if open fails | ||
| 2141 | * } | ||
| 2142 | */ | ||
| 2143 | 2134 | ||
| 2135 | if (prequest != request_GET && prequest != request_HEAD) { | ||
| 2136 | /* POST for files does not make sense */ | ||
| 2137 | send_headers_and_exit(HTTP_NOT_IMPLEMENTED); | ||
| 2138 | } | ||
| 2144 | send_file_and_exit(tptr, | 2139 | send_file_and_exit(tptr, |
| 2145 | #if ENABLE_FEATURE_HTTPD_CGI | ||
| 2146 | (prequest != request_HEAD ? SEND_HEADERS_AND_BODY : SEND_HEADERS) | 2140 | (prequest != request_HEAD ? SEND_HEADERS_AND_BODY : SEND_HEADERS) |
| 2141 | ); | ||
| 2147 | #else | 2142 | #else |
| 2148 | SEND_HEADERS_AND_BODY | 2143 | send_file_and_exit(tptr, SEND_HEADERS_AND_BODY); |
| 2149 | #endif | 2144 | #endif |
| 2150 | ); | ||
| 2151 | } | 2145 | } |
| 2152 | 2146 | ||
| 2153 | /* | 2147 | /* |
