From aa133ea2821787c0cf4ac8750ddd22341752f135 Mon Sep 17 00:00:00 2001 From: Lars Strojny Date: Tue, 18 Sep 2012 22:16:51 +0200 Subject: [PATCH] Merged GitHub PR #190: Support for the HTTP PATCH method in CLI webserver --- NEWS | 2 ++ sapi/cli/php_http_parser.c | 3 ++ sapi/cli/php_http_parser.h | 1 + sapi/cli/tests/php_cli_server_018.phpt | 44 ++++++++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 sapi/cli/tests/php_cli_server_018.phpt diff --git a/NEWS b/NEWS index 339d6814c0..e769b356a6 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ PHP NEWS - CLI server: . Changed response to unknown HTTP method to 501 according to RFC. (Niklas Lindgren). + . Support HTTP PATCH method. Patch by Niklas Lindgren, GitHub PR #190. + (Lars) - Core: . Added optional second argument for assert() to specify custom message. Patch diff --git a/sapi/cli/php_http_parser.c b/sapi/cli/php_http_parser.c index 4a95f82575..d3bc496f4e 100644 --- a/sapi/cli/php_http_parser.c +++ b/sapi/cli/php_http_parser.c @@ -81,6 +81,7 @@ static const char *method_strings[] = , "HEAD" , "POST" , "PUT" + , "PATCH" , "CONNECT" , "OPTIONS" , "TRACE" @@ -627,6 +628,8 @@ size_t php_http_parser_execute (php_http_parser *parser, parser->method = PHP_HTTP_PROPFIND; /* or HTTP_PROPPATCH */ } else if (index == 1 && parser->method == PHP_HTTP_POST && ch == 'U') { parser->method = PHP_HTTP_PUT; + } else if (index == 1 && parser->method == PHP_HTTP_POST && ch == 'A') { + parser->method = PHP_HTTP_PATCH; } else if (index == 2 && parser->method == PHP_HTTP_UNLOCK && ch == 'S') { parser->method = PHP_HTTP_UNSUBSCRIBE; } else if (index == 4 && parser->method == PHP_HTTP_PROPFIND && ch == 'P') { diff --git a/sapi/cli/php_http_parser.h b/sapi/cli/php_http_parser.h index 0f6c13dd35..2bf2356725 100644 --- a/sapi/cli/php_http_parser.h +++ b/sapi/cli/php_http_parser.h @@ -80,6 +80,7 @@ enum php_http_method , PHP_HTTP_HEAD , PHP_HTTP_POST , PHP_HTTP_PUT + , PHP_HTTP_PATCH /* pathological */ , PHP_HTTP_CONNECT , PHP_HTTP_OPTIONS diff --git a/sapi/cli/tests/php_cli_server_018.phpt b/sapi/cli/tests/php_cli_server_018.phpt new file mode 100644 index 0000000000..deb9348768 --- /dev/null +++ b/sapi/cli/tests/php_cli_server_018.phpt @@ -0,0 +1,44 @@ +--TEST-- +Implement Req #61679 (Support HTTP PATCH method) +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +HTTP/1.1 200 OK +Host: %s +Connection: close +X-Powered-By: %s +Content-type: text/html + +string(5) "PATCH" -- 2.40.0