From 27542db4e70c388346fc9983b9c7d58248aaa52d Mon Sep 17 00:00:00 2001 From: Niklas Lindgren Date: Wed, 12 Sep 2012 19:34:59 +0300 Subject: [PATCH] Respond with 501 to unknown request methods Fixed typo Moved 501 response from dispatch to event_read_request Return return value of send_error_page --- NEWS | 4 ++++ sapi/cli/php_cli_server.c | 41 ++++++++++++++++++---------------- sapi/cli/php_http_parser.c | 7 +++--- sapi/cli/php_http_parser.h | 2 ++ sapi/cli/tests/bug61679.phpt | 43 ++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 22 deletions(-) create mode 100644 sapi/cli/tests/bug61679.phpt diff --git a/NEWS b/NEWS index ed08594042e..68f423200e9 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2012, PHP 5.4.8 +- CLI server: + . Changed response to unknown HTTP method to 501 according to RFC. + (Niklas Lindgren). + - Core: . Fixed bug #63093 (Segfault while load extension failed in zts-build). (Laruence) diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index e80ab68f806..4d15db44aff 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -116,7 +116,7 @@ typedef struct php_cli_server_poller { } php_cli_server_poller; typedef struct php_cli_server_request { - enum php_http_method request_method; + enum php_http_method request_method; int protocol_version; char *request_uri; size_t request_uri_len; @@ -247,7 +247,8 @@ static php_cli_server_http_reponse_status_code_pair status_map[] = { static php_cli_server_http_reponse_status_code_pair template_map[] = { { 400, "

%s

Your browser sent a request that this server could not understand.

" }, { 404, "

%s

The requested resource %s was not found on this server.

" }, - { 500, "

%s

The server is temporality unavaiable.

" } + { 500, "

%s

The server is temporarily unavailable.

" }, + { 501, "

%s

Request method not supported.

" } }; static php_cli_server_ext_mime_type_pair mime_type_map[] = { @@ -275,7 +276,7 @@ static void php_cli_server_log_response(php_cli_server_client *client, int statu ZEND_DECLARE_MODULE_GLOBALS(cli_server); -/* {{{ static char php_cli_server_css[] +/* {{{ static char php_cli_server_css[] * copied from ext/standard/info.c */ static const char php_cli_server_css[] = "