shane           Sun Dec  1 21:21:01 2002 EDT

  Modified files:              (Branch: PHP_4_3)
    /php4/sapi/cgi      cgi_main.c 
  Log:
  MFH
  
  
Index: php4/sapi/cgi/cgi_main.c
diff -u php4/sapi/cgi/cgi_main.c:1.190.2.6 php4/sapi/cgi/cgi_main.c:1.190.2.7
--- php4/sapi/cgi/cgi_main.c:1.190.2.6  Sun Dec  1 18:27:14 2002
+++ php4/sapi/cgi/cgi_main.c    Sun Dec  1 21:21:01 2002
@@ -369,6 +369,7 @@
        } else {
                snprintf(buf,len-1,"%s=", name);
        }
+
 #if PHP_FASTCGI
        /* when php is started by mod_fastcgi, no regular environment
           is provided to PHP.  It is always sent to PHP at the start
@@ -597,8 +598,10 @@
                        struct stat st;
                        char *env_script_name = sapi_cgibin_getenv("SCRIPT_NAME",0 
TSRMLS_CC);
                        char *env_path_info = sapi_cgibin_getenv("PATH_INFO",0 
TSRMLS_CC);
+                       char *env_redirect_url = sapi_cgibin_getenv("REDIRECT_URL",0 
+TSRMLS_CC);
                        if (env_path_info) env_path_info = estrdup(env_path_info);
-                       if (sapi_cgibin_getenv("REDIRECT_URL",0 TSRMLS_CC) ||
+
+                       if (env_redirect_url ||
                                (env_script_name && env_path_info &&
                                strcmp(env_path_info,env_script_name)==0)) {
                                /*
@@ -611,6 +614,8 @@
                                 */
                                
_sapi_cgibin_putenv("SCRIPT_FILENAME",env_path_translated TSRMLS_CC);
                                _sapi_cgibin_putenv("PATH_INFO",NULL TSRMLS_CC);
+                               if (env_redirect_url)
+                                       
+_sapi_cgibin_putenv("SCRIPT_NAME",env_redirect_url TSRMLS_CC);
                        }
 
                        if (stat( env_path_translated, &st ) == -1 ) {
@@ -620,7 +625,7 @@
 
                                while( (ptr = strrchr(pt,'/')) || (ptr = 
strrchr(pt,'\\')) ) {
                                        *ptr = 0;
-                                       if ( lstat(pt, &st) == 0 && 
S_ISREG(st.st_mode) ) {
+                                       if ( stat(pt, &st) == 0 && S_ISREG(st.st_mode) 
+) {
                                                /*
                                                 * okay, we found the base script!
                                                 * work out how many chars we had to 
strip off;



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

Reply via email to