]> granicus.if.org Git - php/commitdiff
In addtion to path to php.ini, PHPRC now may specify full file name
authorDmitry Stogov <dmitry@php.net>
Thu, 3 Aug 2006 11:05:09 +0000 (11:05 +0000)
committerDmitry Stogov <dmitry@php.net>
Thu, 3 Aug 2006 11:05:09 +0000 (11:05 +0000)
main/php_ini.c

index f547136a3c29cf9be715589afcd7cdb7b8ebbfab..da8ba16644fc9029522763d98a2817aef4ad9115 100644 (file)
@@ -258,6 +258,7 @@ static void pvalue_config_destructor(zval *pvalue)
  */
 int php_init_config(TSRMLS_D)
 {
+       char *php_ini_file_name = NULL;
        char *php_ini_search_path = NULL;
        char *open_basedir;
        int free_ini_search_path = 0;
@@ -284,6 +285,7 @@ int php_init_config(TSRMLS_D)
        open_basedir = PG(open_basedir);
 
        if (sapi_module.php_ini_path_override) {
+               php_ini_file_name = sapi_module.php_ini_path_override;
                php_ini_search_path = sapi_module.php_ini_path_override;
                free_ini_search_path = 0;
        } else if (!sapi_module.php_ini_ignore) {
@@ -314,6 +316,7 @@ int php_init_config(TSRMLS_D)
                                strcat(php_ini_search_path, paths_separator);
                        }
                        strcat(php_ini_search_path, env_location);
+                       php_ini_file_name = env_location;
                }
 
 #ifdef PHP_WIN32
@@ -418,13 +421,15 @@ int php_init_config(TSRMLS_D)
        memset(&fh, 0, sizeof(fh));
        /* Check if php_ini_path_override is a file */
        if (!sapi_module.php_ini_ignore) {
-               if (sapi_module.php_ini_path_override && sapi_module.php_ini_path_override[0]) {
+               if (php_ini_file_name && php_ini_file_name[0]) {
                        struct stat statbuf;
        
-                       if (!VCWD_STAT(sapi_module.php_ini_path_override, &statbuf)) {
+                       if (!VCWD_STAT(php_ini_file_name, &statbuf)) {
                                if (!((statbuf.st_mode & S_IFMT) == S_IFDIR)) {
-                                       fh.handle.fp = VCWD_FOPEN(sapi_module.php_ini_path_override, "r");
-                                       fh.filename = sapi_module.php_ini_path_override;
+                                       fh.handle.fp = VCWD_FOPEN(php_ini_file_name, "r");
+                                       if (fh.handle.fp) {
+                                               fh.filename = php_ini_opened_path = expand_filepath(php_ini_file_name, NULL TSRMLS_CC);
+                                       }
                                }
                        }
                }