]> granicus.if.org Git - php/commitdiff
MFH
authorShane Caraveo <shane@php.net>
Sun, 29 Jun 2003 20:09:56 +0000 (20:09 +0000)
committerShane Caraveo <shane@php.net>
Sun, 29 Jun 2003 20:09:56 +0000 (20:09 +0000)
fix bug http://bugs.php.net/bug.php?id=24009
also do not use APPL_PHYSICAL_PATH as DOCUMENT_ROOT under IIS, it's
different depending on IIS configuration.  Code works fine without it, that
was just an attempt at a shortcut.

sapi/cgi/cgi_main.c

index 527bddef7a80d333a14d58344b9073cdf0048039..f3456e100e9a8a73e7bb46604e596afdb8212703 100644 (file)
@@ -684,8 +684,6 @@ static void init_request_info(TSRMLS_D)
                                _sapi_cgibin_putenv("ORIG_SCRIPT_FILENAME",env_script_filename TSRMLS_CC);
                        }
                        if (!env_document_root) {
-                               /* IIS version of DOCUMENT_ROOT, not avail in cgi, but is in fastcgi */
-                               env_document_root = sapi_cgibin_getenv("APPL_PHYSICAL_PATH",0 TSRMLS_CC);
                                /* ini version of document root */
                                if (!env_document_root) {
                                        env_document_root = PG(doc_root);
@@ -1459,6 +1457,11 @@ consult the installation file that came with this distribution, or visit \n\
                /* request startup only after we've done all we can to
                   get path_translated */
         if (php_request_startup(TSRMLS_C)==FAILURE) {
+#if PHP_FASTCGI
+                       if (fastcgi) {
+                               FCGX_Finish_r(&request);
+                       }
+#endif
             php_module_shutdown(TSRMLS_C);
             return FAILURE;
         }
@@ -1486,6 +1489,14 @@ consult the installation file that came with this distribution, or visit \n\
                if (retval == FAILURE && file_handle.handle.fp == NULL) {
                        SG(sapi_headers).http_response_code = 404;
                        PUTS("No input file specified.\n");
+#if PHP_FASTCGI
+                       /* we want to serve more requests if this is fastcgi
+                          so cleanup and continue, request shutdown is
+                          handled later */
+                       if (fastcgi) {
+                               goto fastcgi_request_done;
+                       }
+#endif
                        php_request_shutdown((void *) 0);
                        php_module_shutdown(TSRMLS_C);
                        return FAILURE;
@@ -1555,6 +1566,9 @@ consult the installation file that came with this distribution, or visit \n\
 #endif
                }
 
+#if PHP_FASTCGI
+fastcgi_request_done:
+#endif
                {
                        char *path_translated;