summaryrefslogtreecommitdiff
path: root/sapi/cli/php_http_parser.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmb@php.net>2015-06-27 20:05:30 +0200
committerChristoph M. Becker <cmb@php.net>2015-06-27 20:05:30 +0200
commita7bbc68bacaac5d46452259785a412f662c89aa5 (patch)
tree801da00e0d2eea5d97f4975d6f65b631b3dcc7cc /sapi/cli/php_http_parser.c
parent1ec6ff0b495f31db66cb9b3c225f76579eb48b28 (diff)
parent7e97faa3e834cca98c61043dc02c1af0aadb1f8c (diff)
downloadphp-git-a7bbc68bacaac5d46452259785a412f662c89aa5.tar.gz
Merge branch 'PHP-5.6'
* PHP-5.6: updated NEWS Fixed #69655: php -S changes MKCALENDAR request method to MKCOL
Diffstat (limited to 'sapi/cli/php_http_parser.c')
-rw-r--r--sapi/cli/php_http_parser.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sapi/cli/php_http_parser.c b/sapi/cli/php_http_parser.c
index 653c54c1a5..d289e80f70 100644
--- a/sapi/cli/php_http_parser.c
+++ b/sapi/cli/php_http_parser.c
@@ -604,15 +604,20 @@ size_t php_http_parser_execute (php_http_parser *parser,
goto error;
matcher = method_strings[parser->method];
- if (ch == ' ' && (matcher[index] == '\0' || parser->method == PHP_HTTP_NOT_IMPLEMENTED)) {
+ if (ch == ' ') {
+ if (parser->method != PHP_HTTP_NOT_IMPLEMENTED && matcher[index] != '\0') {
+ parser->method = PHP_HTTP_NOT_IMPLEMENTED;
+ }
state = s_req_spaces_before_url;
- } else if (ch == matcher[index]) {
+ } else if (parser->method == PHP_HTTP_NOT_IMPLEMENTED || ch == matcher[index]) {
; /* nada */
} else if (parser->method == PHP_HTTP_CONNECT) {
if (index == 1 && ch == 'H') {
parser->method = PHP_HTTP_CHECKOUT;
} else if (index == 2 && ch == 'P') {
parser->method = PHP_HTTP_COPY;
+ } else {
+ parser->method = PHP_HTTP_NOT_IMPLEMENTED;
}
} else if (parser->method == PHP_HTTP_MKCOL) {
if (index == 1 && ch == 'O') {
@@ -623,6 +628,8 @@ size_t php_http_parser_execute (php_http_parser *parser,
parser->method = PHP_HTTP_MSEARCH;
} else if (index == 2 && ch == 'A') {
parser->method = PHP_HTTP_MKACTIVITY;
+ } else {
+ parser->method = PHP_HTTP_NOT_IMPLEMENTED;
}
} else if (index == 1 && parser->method == PHP_HTTP_POST && ch == 'R') {
parser->method = PHP_HTTP_PROPFIND; /* or HTTP_PROPPATCH */