]> 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:04:52 +0000 (11:04 +0000)
committerDmitry Stogov <dmitry@php.net>
Thu, 3 Aug 2006 11:04:52 +0000 (11:04 +0000)
NEWS
main/php_ini.c

diff --git a/NEWS b/NEWS
index 3c22676fc3ca593af03f14adba6318807a02dde9..b162e5df10b7d2548a14a4d10d6e8575ea753165 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? Aug 2006, PHP 5.2.0RC2
+- In addtion to path to php.ini, PHPRC now may specify full file name. (Dmitry)
 - Added "PHPINIDir" Apache directive to apache and apache_hooks SAPIs. (Dmitry)
 - Added an optional boolean parameter to memory_get_usage() and 
   memory_get_peak_usage() to get memory size allocated by emalloc() or real
index c4abee2b671e5a5f3c2bde229ceb358858104acf..25fbe0f4878ff54b38eb4401c7dc2e40dae50544 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;
        int safe_mode_state;
        char *open_basedir;
@@ -286,6 +287,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) {
@@ -316,6 +318,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
@@ -421,13 +424,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);
+                                       }
                                }
                        }
                }