mirror of
https://github.com/php/php-src.git
synced 2024-11-24 18:34:21 +08:00
Merge branch 'PHP-5.6'
* PHP-5.6: updated NEWS Fixed #69655: php -S changes MKCALENDAR request method to MKCOL
This commit is contained in:
commit
a7bbc68bac
@ -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 */
|
||||
|
30
sapi/cli/tests/bug69655.phpt
Normal file
30
sapi/cli/tests/bug69655.phpt
Normal file
@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #69655 (php -S changes MKCALENDAR request method to MKCOL)
|
||||
--INI--
|
||||
allow_url_fopen=1
|
||||
--SKIPIF--
|
||||
<?php
|
||||
include "skipif.inc";
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
include "php_cli_server.inc";
|
||||
php_cli_server_start();
|
||||
foreach (['MKCALENDAR', 'MKCO', 'MKCOLL', 'M'] as $method) {
|
||||
$context = stream_context_create(['http' => ['method' => $method]]);
|
||||
// the following is supposed to emit a warning for unsupported methods
|
||||
file_get_contents("http://" . PHP_CLI_SERVER_ADDRESS, false, $context);
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: file_get_contents(http://localhost:8964): failed to open stream: HTTP request failed! HTTP/1.0 501 Not Implemented
|
||||
in %s on line %d
|
||||
|
||||
Warning: file_get_contents(http://localhost:8964): failed to open stream: HTTP request failed! HTTP/1.0 501 Not Implemented
|
||||
in %s on line %d
|
||||
|
||||
Warning: file_get_contents(http://localhost:8964): failed to open stream: HTTP request failed! HTTP/1.0 501 Not Implemented
|
||||
in %s on line %d
|
||||
|
||||
Warning: file_get_contents(http://localhost:8964): failed to open stream: HTTP request failed! HTTP/1.0 501 Not Implemented
|
||||
in %s on line %d
|
Loading…
Reference in New Issue
Block a user