mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-21 11:30:01 +00:00
Set code 302 automatically if CGI reply has Location: header present
This commit is contained in:
1 parent
8601b03ead
commit
aa90972a31
2 files changed
+8
-2
No files matched your search
+7
-2
@@ -2974,8 +2974,13 @@ static void handle_cgi_request(struct mg_connection *conn, const char *prog) {
|
||||
parse_http_headers(&pbuf, &ri);
|
||||
|
||||
// Make up and send the status line
|
||||
status = get_header(&ri, "Status");
|
||||
conn->request_info.status_code = status == NULL ? 200 : atoi(status);
|
||||
if ((status = get_header(&ri, "Status")) != NULL) {
|
||||
conn->request_info.status_code = atoi(status);
|
||||
} else if (get_header(&ri, "Location") != NULL) {
|
||||
conn->request_info.status_code = 302;
|
||||
} else {
|
||||
conn->request_info.status_code = 200;
|
||||
}
|
||||
(void) mg_printf(conn, "HTTP/1.1 %d OK\r\n", conn->request_info.status_code);
|
||||
|
||||
// Send headers
|
||||
|
||||
@@ -322,6 +322,7 @@ unless (scalar(@ARGV) > 0 and $ARGV[0] eq "basic_tests") {
|
||||
unlink "$root/.htpasswd";
|
||||
|
||||
o("GET /env.cgi HTTP/1.0\n\r\n", 'HTTP/1.1 200 OK', 'GET CGI file');
|
||||
o("GET /redirect.cgi HTTP/1.0\n\n", 'HTTP/1.1 302', 'Redirect');
|
||||
o("GET /sh.cgi HTTP/1.0\n\r\n", 'shell script CGI',
|
||||
'GET sh CGI file') unless on_windows();
|
||||
o("GET /env.cgi?var=HELLO HTTP/1.0\n\n", 'QUERY_STRING=var=HELLO',
|
||||
|
||||
Reference in new issue
Block a user