]> granicus.if.org Git - php/commitdiff
CGI anf FastCGI assume $_SERVER and $_ENV have the same values,
authorDmitry Stogov <dmitry@php.net>
Fri, 7 Apr 2006 13:45:51 +0000 (13:45 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 7 Apr 2006 13:45:51 +0000 (13:45 +0000)
so we don't need construct the same arrays twich and may just copy it

sapi/cgi/cgi_main.c

index 37ddb93956f237898331c1da2b63a5e009d3a61e..61983df755e63c32ba55303031d5ab01642c58c5 100644 (file)
@@ -410,6 +410,17 @@ static char *sapi_cgi_read_cookies(TSRMLS_D)
 
 void cgi_php_import_environment_variables(zval *array_ptr TSRMLS_DC)
 {
+       if (PG(http_globals)[TRACK_VARS_ENV] &&
+           array_ptr != PG(http_globals)[TRACK_VARS_ENV]) {
+           *array_ptr = *PG(http_globals)[TRACK_VARS_ENV];
+           zval_copy_ctor(array_ptr);
+           return;
+       } else if (PG(http_globals)[TRACK_VARS_SERVER] &&
+               array_ptr != PG(http_globals)[TRACK_VARS_SERVER]) {
+           *array_ptr = *PG(http_globals)[TRACK_VARS_SERVER];
+           zval_copy_ctor(array_ptr);
+           return;
+       }
        if (!FCGX_IsCGI()) {
                FCGX_Request *request = (FCGX_Request *) SG(server_context);
                char **env, *p;