diff options
author | Moriyoshi Koizumi <moriyoshi@php.net> | 2011-10-21 05:24:30 +0000 |
---|---|---|
committer | Moriyoshi Koizumi <moriyoshi@php.net> | 2011-10-21 05:24:30 +0000 |
commit | 2cf34bc9fc30f6094f8291314bfd25f74511ceff (patch) | |
tree | e8e75cfdc8a002500fc2f5bc3dd4363125c267e9 /sapi | |
parent | 465cb32c4cffb8334a4238bd6d647cbf78a8020c (diff) | |
download | php-git-2cf34bc9fc30f6094f8291314bfd25f74511ceff.tar.gz |
Add SERVER_PROTOCOL variable to $_SERVER. Patch by kuzuha. Thanks.
Diffstat (limited to 'sapi')
-rw-r--r-- | sapi/cli/php_cli_server.c | 6 | ||||
-rw-r--r-- | sapi/cli/tests/php_cli_server_008.phpt | 71 |
2 files changed, 77 insertions, 0 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index ec3b9ddb17..ce792b716c 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -571,6 +571,12 @@ static void sapi_cli_server_register_variables(zval *track_vars_array TSRMLS_DC) sapi_cli_server_register_variable(track_vars_array, "SERVER_SOFTWARE", tmp TSRMLS_CC); efree(tmp); } + { + char *tmp; + spprintf(&tmp, 0, "HTTP/%d.%d", client->request.protocol_version / 100, client->request.protocol_version % 100); + sapi_cli_server_register_variable(track_vars_array, "SERVER_PROTOCOL", tmp TSRMLS_CC); + efree(tmp); + } sapi_cli_server_register_variable(track_vars_array, "REQUEST_URI", client->request.request_uri TSRMLS_CC); sapi_cli_server_register_variable(track_vars_array, "REQUEST_METHOD", SG(request_info).request_method TSRMLS_CC); sapi_cli_server_register_variable(track_vars_array, "PHP_SELF", client->request.vpath TSRMLS_CC); diff --git a/sapi/cli/tests/php_cli_server_008.phpt b/sapi/cli/tests/php_cli_server_008.phpt new file mode 100644 index 0000000000..390bf019a2 --- /dev/null +++ b/sapi/cli/tests/php_cli_server_008.phpt @@ -0,0 +1,71 @@ +--TEST-- +SERVER_PROTOCOL header availability +--SKIPIF-- +<?php +include "skipif.inc"; +if (substr(PHP_OS, 0, 3) == 'WIN') { + die ("skip not for Windows"); +} +?> +--FILE-- +<?php +include "php_cli_server.inc"; +php_cli_server_start('var_dump($_SERVER["SERVER_PROTOCOL"]);'); + +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 +Host: {$host} + + +HEADER +)) { + while (!feof($fp)) { + echo fgets($fp); + } +} + +fclose($fp); + +$fp = fsockopen($host, $port, $errno, $errstr, 0.5); +if (!$fp) { + die("connect failed"); +} + + +if(fwrite($fp, <<<HEADER +GET / HTTP/1.0 +Host: {$host} + + +HEADER +)) { + while (!feof($fp)) { + echo fgets($fp); + } +} + +fclose($fp); +?> +--EXPECTF-- +HTTP/1.1 200 OK +Host: %s +Connection: closed +X-Powered-By: PHP/%s-dev +Content-type: text/html + +string(8) "HTTP/1.1" +HTTP/1.0 200 OK +Host: %s +Connection: closed +X-Powered-By: PHP/%s-dev +Content-type: text/html + +string(8) "HTTP/1.0" |