]> granicus.if.org Git - php/commitdiff
* Get rid of another request_info element (filename)
authorZeev Suraski <zeev@php.net>
Sat, 26 Jun 1999 19:14:26 +0000 (19:14 +0000)
committerZeev Suraski <zeev@php.net>
Sat, 26 Jun 1999 19:14:26 +0000 (19:14 +0000)
* CGI through Apache should work now

cgi_main.c
ext/standard/pageinfo.c
main/fopen_wrappers.c
main/safe_mode.c
request_info.c
request_info.h

index 520b9e2f377834cf5aafb20d1a67ac4d2bf6a9d8..63e97346dea3c6a75f66f1f869da193520d19158 100644 (file)
@@ -178,8 +178,7 @@ int main(int argc, char *argv[])
        zend_file_handle file_handle;
        char *s;
 /* temporary locals */
-       char *_cgi_filename=NULL;
-       int _cgi_started=0;
+       int cgi_started=0;
        int behavior=PHP_MODE_STANDARD;
        int no_headers=0;
 #if SUPPORT_INTERACTIVE
@@ -206,6 +205,8 @@ int main(int argc, char *argv[])
 
        sapi_startup(&sapi_module);
 
+       SG(request_info).path_translated = NULL;
+
 #if WIN32|WINNT
        _fmode = _O_BINARY;                     /*sets default for file streams to binary */
        setmode(_fileno(stdin), O_BINARY);              /* make the stdio mode be binary */
@@ -270,7 +271,7 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
                while ((c = getopt(argc, argv, "c:qvisnaeh?vf:")) != -1) {
                        switch (c) {
                                case 'f':
-                                       if (!_cgi_started){ 
+                                       if (!cgi_started){ 
                                                if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
                                                        php_module_shutdown();
                                                        return FAILURE;
@@ -279,14 +280,14 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
                                        if (no_headers) {
                                                SG(headers_sent) = 1;
                                        }
-                                       _cgi_started=1;
-                                       _cgi_filename = estrdup(optarg);
+                                       cgi_started=1;
+                                       SG(request_info).path_translated = estrdup(optarg);
                                        /* break missing intentionally */
                                case 'q':
                                        no_headers = 1;
                                        break;
                                case 'v':
-                                       if (!_cgi_started) {
+                                       if (!cgi_started) {
                                                if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
                                                        php_module_shutdown();
                                                        return FAILURE;
@@ -299,7 +300,7 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
                                        exit(1);
                                        break;
                                case 'i':
-                                       if (!_cgi_started) {
+                                       if (!cgi_started) {
                                                if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
                                                        php_module_shutdown();
                                                        return FAILURE;
@@ -308,7 +309,7 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
                                        if (no_headers) {
                                                SG(headers_sent) = 1;
                                        }
-                                       _cgi_started=1;
+                                       cgi_started=1;
                                        php3_TreatHeaders();
                                        _php3_info();
                                        exit(1);
@@ -350,7 +351,7 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
        EG(interactive) = interactive;
 #endif
 
-       if (!_cgi_started) {
+       if (!cgi_started) {
                if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
                        php_module_shutdown();
                        return FAILURE;
@@ -362,9 +363,6 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
        file_handle.filename = "-";
        file_handle.type = ZEND_HANDLE_FP;
        file_handle.handle.fp = stdin;
-       if (_cgi_filename) {
-               request_info.filename = _cgi_filename;
-       }
 
        php3_TreatHeaders();
 
@@ -383,19 +381,18 @@ any .htaccess restrictions anywhere on your site you can leave doc_root undefine
                        }
                        SG(request_info).query_string = s;
                }
-               if (!request_info.filename && argc > optind)
-                       request_info.filename = argv[optind];
+               if (!SG(request_info).path_translated && argc > optind)
+                       SG(request_info).path_translated = argv[optind];
        }
        /* If for some reason the CGI interface is not setting the
-          PATH_TRANSLATED correctly, request_info.filename is NULL.
+          PATH_TRANSLATED correctly, SG(request_info).path_translated is NULL.
           We still call php3_fopen_for_parser, because if you set doc_root
           or user_dir configuration directives, PATH_INFO is used to construct
           the filename as a side effect of php3_fopen_for_parser.
         */
-       if (cgi || request_info.filename) {
-               file_handle.filename = request_info.filename;
+       if (cgi || SG(request_info).path_translated) {
                file_handle.handle.fp = php3_fopen_for_parser();
-               SG(request_info).path_translated = file_handle.filename;
+               file_handle.filename = SG(request_info).path_translated;
        }
 
        if (cgi && !file_handle.handle.fp) {
index d1b388723912bdc4f2b73e0bdafab3dea5b8aa79..81b0b2aa8a5e05eef34bd87c8e967a8090d74de8 100644 (file)
@@ -78,7 +78,7 @@ static void _php3_statpage(void)
        page_mtime = r->finfo.st_mtime;
 #else
        if (page_uid == -1) {
-               path = request_info.filename;
+               path = SG(request_info).path_translated;
                if (path != NULL) {
                        if (stat(path, &sb) == -1) {
                                php3_error(E_WARNING, "Unable to find file:  '%s'", path);
index 0815f68810caf81e93a3331356f5baa2c37ec494..4ea926d92087b7aa26cb44e3e365e9b40ac3887b 100644 (file)
@@ -228,7 +228,7 @@ PHPAPI FILE *php3_fopen_for_parser(void)
        PLS_FETCH();
        SLS_FETCH();
 
-       fn = request_info.filename;
+       fn = SG(request_info).path_translated;
        path_info = SG(request_info).request_uri;
 #if HAVE_PWD_H
        if (PG(user_dir) && *PG(user_dir)
@@ -256,8 +256,8 @@ PHPAPI FILE *php3_fopen_for_parser(void)
                                        strcat(fn, PG(user_dir));       /* safe */
                                        strcat(fn, "/");        /* safe */
                                        strcat(fn, s + 1);      /* safe (shorter than path_info) */
-                                       STR_FREE(request_info.filename);
-                                       request_info.filename = fn;
+                                       STR_FREE(SG(request_info).path_translated);
+                                       SG(request_info).path_translated = fn;
                                }
                        }
                }
@@ -279,17 +279,17 @@ PHPAPI FILE *php3_fopen_for_parser(void)
                        if ('/' == path_info[0])
                                l--;
                        strcpy(fn + l, path_info);
-                       STR_FREE(request_info.filename);
-                       request_info.filename = fn;
+                       STR_FREE(SG(request_info).path_translated);
+                       SG(request_info).path_translated = fn;
                }
        }                                                       /* if doc_root && path_info */
        if (!fn) {
-               /* we have to free request_info.filename here because
+               /* we have to free SG(request_info).path_translated here because
                   php3_destroy_request_info assumes that it will get
                   freed when the include_names hash is emptied, but
                   we're not adding it in this case */
-               STR_FREE(request_info.filename);
-               request_info.filename = NULL;
+               STR_FREE(SG(request_info).path_translated);
+               SG(request_info).path_translated = NULL;
                return NULL;
        }
        fp = fopen(fn, "r");
@@ -301,7 +301,7 @@ PHPAPI FILE *php3_fopen_for_parser(void)
        }
        if (!fp) {
                php3_error(E_CORE_ERROR, "Unable to open %s", fn);
-               STR_FREE(request_info.filename);        /* for same reason as above */
+               STR_FREE(SG(request_info).path_translated);     /* for same reason as above */
                return NULL;
        }
        
@@ -311,6 +311,7 @@ PHPAPI FILE *php3_fopen_for_parser(void)
                chdir(temp);
        }
        efree(temp);
+       SG(request_info).path_translated = fn;
 
        return fp;
 }
index 422f8ba72f9980044fc7ce28fb3fb09c4bad7773..f4d69f7b1ffd3905e182dff4d17e83e52032ecd3 100644 (file)
@@ -136,7 +136,7 @@ PHPAPI char *_php3_get_current_user()
        USE_SAPI is defined, because cgi will also be
        interfaced in USE_SAPI */
 #if CGI_BINARY || USE_SAPI || FHTTPD
-       if (!request_info.filename || (stat(request_info.filename,&statbuf)==-1)) {
+       if (!SG(request_info).path_translated || (stat(SG(request_info).path_translated,&statbuf)==-1)) {
                return empty_string;
        }
        uid = statbuf.st_uid;
index 5ed42393b5a4d66d7c2fe4f30d8896f2b8a971a3..72050423fed9fda8d0f2a0d45fee462b8a56febd 100644 (file)
@@ -71,12 +71,6 @@ int php3_init_request_info(void *conf)
        } else {
                request_info.filename = NULL;
        }
-#else
-       if (SG(request_info).path_translated) {
-               request_info.filename = estrdup(SG(request_info).path_translated);
-       } else {
-               request_info.filename = NULL;
-       }
 #endif
        return SUCCESS;
 }
index 51ff6606d253195f7ddf56c35e9626bbc5471c1e..7728a27713139d555523d038d8f01dc3c480aecb 100644 (file)
@@ -31,7 +31,6 @@
 #define _REQUEST_INFO_H_
 
 typedef struct {
-       char *filename;
        char *script_name;
        char *current_user;
        int current_user_length;