diff options
| -rw-r--r-- | NEWS | 4 | ||||
| -rw-r--r-- | sapi/cli/php_cli_server.c | 2 | ||||
| -rw-r--r-- | sapi/cli/tests/bug67429.phpt | 49 | 
3 files changed, 55 insertions, 0 deletions
@@ -6,6 +6,10 @@ PHP                                                                        NEWS    . Fixed bug #67428 (header('Location: foo') will override a 308-399 response      code). (Adam) +- CLI server: +  . Implemented FR #67429 (CLI server is missing some new HTTP response codes). +    (Adam) +  ?? ??? 2014, PHP 5.4.30  - Core: diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index 3fd24ea123..2425cc0c3e 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -220,6 +220,7 @@ static php_cli_server_http_response_status_code_pair status_map[] = {  	{ 304, "Not Modified" },  	{ 305, "Use Proxy" },  	{ 307, "Temporary Redirect" }, +	{ 308, "Permanent Redirect" },  	{ 400, "Bad Request" },  	{ 401, "Unauthorized" },  	{ 402, "Payment Required" }, @@ -238,6 +239,7 @@ static php_cli_server_http_response_status_code_pair status_map[] = {  	{ 415, "Unsupported Media Type" },  	{ 416, "Requested Range Not Satisfiable" },  	{ 417, "Expectation Failed" }, +	{ 426, "Upgrade Required" },  	{ 428, "Precondition Required" },  	{ 429, "Too Many Requests" },  	{ 431, "Request Header Fields Too Large" }, diff --git a/sapi/cli/tests/bug67429.phpt b/sapi/cli/tests/bug67429.phpt new file mode 100644 index 0000000000..59486dbc0e --- /dev/null +++ b/sapi/cli/tests/bug67429.phpt @@ -0,0 +1,49 @@ +--TEST-- +FR #67429 (CLI server is missing some new HTTP response codes) +--SKIPIF-- +<?php +include "skipif.inc"; +?> +--FILE-- +<?php +include "php_cli_server.inc"; + +foreach ([308, 426] as $code) { +  php_cli_server_start(<<<PHP +http_response_code($code); +PHP +  ); + +  list($host, $port) = explode(':', PHP_CLI_SERVER_ADDRESS); +  $port = intval($port)?:80; + +  $fp = fsockopen($host, $port, $errno, $errstr, 0.5); +  if (!$fp) { +    die("connect failed"); +  } + +  if(fwrite($fp, <<<HEADER +GET / HTTP/1.1 + + +HEADER +  )) { +      while (!feof($fp)) { +          echo fgets($fp); +      } +  } + +  fclose($fp); +} +?> +--EXPECTF-- +HTTP/1.1 308 Permanent Redirect +Connection: close +X-Powered-By: %s +Content-type: text/html + +HTTP/1.1 426 Upgrade Required +Connection: close +X-Powered-By: %s +Content-type: text/html +  | 
