]> granicus.if.org Git - php/commitdiff
Fixed #55463 (cli-server missing _SERVER[REMOTE_ADDR])
authorXinchen Hui <laruence@php.net>
Mon, 22 Aug 2011 11:55:41 +0000 (11:55 +0000)
committerXinchen Hui <laruence@php.net>
Mon, 22 Aug 2011 11:55:41 +0000 (11:55 +0000)
NEWS
sapi/cli/php_cli_server.c

diff --git a/NEWS b/NEWS
index 17a79cba279c10ed51f21f6d436185a3d8b712fd..9f6f53e2a6b9be43ac96e087c2173dd5ada638d7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -324,6 +324,7 @@ PHP                                                                        NEWS
 - Fixed bug #52211 (iconv() returns part of string on error). (Felipe)
 - Fixed bug #55450 (Built in web server not accepting file uploads). (Laruence)
 - Fixed bug #55471 (ZTS build broken with dtrace). (Laruence)
+- Fixed bug #55463 (cli-server missing _SERVER[REMOTE_ADDR]). (Laruence)
 
 28 Jul 2011, PHP 5.3.7 RC4
 - Improved core functions:
index 71d83e90511529c784d7224d796dcfd5e9c3affc..eefe2a131679e2e147c81593063de87706c3d3e0 100644 (file)
@@ -496,6 +496,20 @@ static void sapi_cli_server_register_variables(zval *track_vars_array TSRMLS_DC)
                        sapi_cli_server_register_variable(track_vars_array, "HTTP_REFERER", *val TSRMLS_CC);
                }
        }
+       {
+               char *tmp;
+               if ((tmp = strrchr(client->addr_str, ':'))) {
+                       char addr[64], port[8];
+                       strncpy(port, tmp + 1, 8);
+                       port[7] = '\0';
+                       strncpy(addr, client->addr_str, tmp - client->addr_str);
+                       addr[tmp - client->addr_str] = '\0';
+                       sapi_cli_server_register_variable(track_vars_array, "REMOTE_ADDR", addr TSRMLS_CC);
+                       sapi_cli_server_register_variable(track_vars_array, "REMOTE_PORT", port TSRMLS_CC);
+               } else {
+                       sapi_cli_server_register_variable(track_vars_array, "REMOTE_ADDR", client->addr_str TSRMLS_CC);
+               }
+       }
        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);