Add 308 and 426 to the HTTP response code map in the CLI server.

Implements FR #67429 (CLI server is missing some new HTTP response codes).
This commit is contained in:
Adam Harvey 2014-06-12 17:54:29 -07:00
parent 1b9cbab9a7
commit fe67674809
3 changed files with 55 additions and 0 deletions

4
NEWS
View file

@ -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:

View file

@ -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" },

View file

@ -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