laruence                                 Mon, 22 Aug 2011 11:55:41 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=315278

Log:
Fixed #55463 (cli-server missing _SERVER[REMOTE_ADDR])

Bug: https://bugs.php.net/55463 (Analyzed) cli-server missing _SERVER[ 
REMOTE_ADDR  ]
      
Changed paths:
    U   php/php-src/branches/PHP_5_4/NEWS
    U   php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
    U   php/php-src/trunk/NEWS
    U   php/php-src/trunk/sapi/cli/php_cli_server.c

Modified: php/php-src/branches/PHP_5_4/NEWS
===================================================================
--- php/php-src/branches/PHP_5_4/NEWS   2011-08-22 11:48:51 UTC (rev 315277)
+++ php/php-src/branches/PHP_5_4/NEWS   2011-08-22 11:55:41 UTC (rev 315278)
@@ -324,6 +324,7 @@
 - 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:

Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===================================================================
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c      2011-08-22 
11:48:51 UTC (rev 315277)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c      2011-08-22 
11:55:41 UTC (rev 315278)
@@ -496,6 +496,20 @@
                        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);

Modified: php/php-src/trunk/NEWS
===================================================================
--- php/php-src/trunk/NEWS      2011-08-22 11:48:51 UTC (rev 315277)
+++ php/php-src/trunk/NEWS      2011-08-22 11:55:41 UTC (rev 315278)
@@ -248,5 +248,6 @@
 - 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)

 <<< NOTE: Insert NEWS from last stable release here prior to actual release! 
>>>

Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===================================================================
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-08-22 11:48:51 UTC (rev 
315277)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-08-22 11:55:41 UTC (rev 
315278)
@@ -496,6 +496,20 @@
                        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);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to