]> 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:23 +0000 (13:45 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 7 Apr 2006 13:45:23 +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 77df4f6263fb6ba02ae707147d986a14f4d9ba45..a7460c8cc4173d9c5a2a3179c5dd91c5d97cdb64 100644 (file)
@@ -431,6 +431,17 @@ static char *sapi_cgi_read_cookies(TSRMLS_D)
 #if PHP_FASTCGI
 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;