]> git.pld-linux.org Git - packages/php.git/blobdiff - php-sapi-ini-file.patch
up to 7.0.0 snapshot from php-src master
[packages/php.git] / php-sapi-ini-file.patch
index 7dab0cc200565d0b5252ce694e176392803ca9f0..9579ef88fa999868a763d713999c8ac3c82844f6 100644 (file)
@@ -1,6 +1,6 @@
---- php-5.4.0RC3/main/php_ini.c~       2011-12-10 03:35:27.000000000 +0200
-+++ php-5.4.0RC3/main/php_ini.c        2011-12-10 03:36:08.930154336 +0200
-@@ -358,6 +358,11 @@
+--- php-7.0/main/php_ini.c~    2015-05-21 22:56:59.000000000 +0300
++++ php-7.0/main/php_ini.c     2015-05-21 23:01:21.580419532 +0300
+@@ -379,12 +379,19 @@
  }
  /* }}} */
  
 +
  /* {{{ php_init_config
   */
- int php_init_config(TSRMLS_D)
-@@ -480,6 +485,24 @@
+ int php_init_config(void)
+ {
+       char *php_ini_file_name = NULL;
+       char *php_ini_search_path = NULL;
++      // value for php_ini_loaded_file() to be stored into php_ini_opened_path
++      char *php_ini_loaded_file = NULL;
+       int php_ini_scanned_path_len;
+       char *open_basedir;
+       int free_ini_search_path = 0;
+@@ -561,8 +568,29 @@
                                }
                        }
                }
 +                      fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC);
 +                      if (fh.handle.fp) {
 +                              fh.filename = php_ini_opened_path;
-+                              //PG(safe_mode) = safe_mode_state;
++
++                              // parse the ini file now
 +                              PG(open_basedir) = open_basedir;
 +                              fh.type = ZEND_HANDLE_FP;
 +                              zend_parse_ini_file(&fh, 1, ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t) php_ini_parser_cb, &configuration_hash TSRMLS_CC);
-+                              //safe_mode_state = PG(safe_mode);
 +                              open_basedir = PG(open_basedir);
-+                              //PG(safe_mode) = 0;
 +                              PG(open_basedir) = NULL;
 +                              fh.handle.fp = NULL;
+-              /* Otherwise search for php-%sapi-module-name%.ini file in search path */
++                              // save this for later
++                              php_ini_loaded_file = estrdup(php_ini_opened_path);
++
 +                              efree(php_ini_opened_path);
 +                              fh.filename = php_ini_opened_path = NULL;
 +                      }
 +              }
-               /* Otherwise search for php-%sapi-module-name%.ini file in search path */
++
++              /* Also search for php-%sapi-module-name%.ini file in search path */
                if (!fh.handle.fp) {
-@@ -492,14 +515,6 @@
-                               fh.filename = php_ini_opened_path;
+                       const char *fmt = "php-%s.ini";
+                       char *ini_fname;
+@@ -594,15 +601,12 @@
+                       if (fh.handle.fp) {
+                               fh.filename = opened_path->val;
                        }
-               }
--
+-              }
 -              /* If still no ini file found, search for php.ini file in search path */
 -              if (!fh.handle.fp) {
--                      fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC);
+-                      fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &opened_path);
 -                      if (fh.handle.fp) {
--                              fh.filename = php_ini_opened_path;
+-                              fh.filename = opened_path->val;
 -                      }
 -              }
++                      // restore previous value, so php_ini_loaded_file() works as expected
++                      if (php_ini_loaded_file) {
++                              php_ini_opened_path = php_ini_loaded_file;
++                      }
++              }
        }
  
        if (free_ini_search_path) {
-@@ -645,13 +645,15 @@ int php_init_config(TSRMLS_D)
+@@ -597,6 +622,10 @@
+               {
+                       zval tmp;
++                      // use main php.ini if loaded
++                      if (php_ini_loaded_file) {
++                              fh.filename = php_ini_loaded_file;
++                      }
+                       Z_STRLEN(tmp) = strlen(fh.filename);
+                       Z_STRVAL(tmp) = zend_strndup(fh.filename, Z_STRLEN(tmp));
+@@ -630,13 +659,15 @@
                zend_llist scanned_ini_list;
                zend_llist_element *element;
                int l, total_l = 0;
                for (debpath = bufpath ; debpath ; debpath=endpath) {
                        endpath = strchr(debpath, DEFAULT_DIR_SEPARATOR);
                        if (endpath) {
-@@ -664,7 +666,7 @@ int php_init_config(TSRMLS_D)
+@@ -649,7 +680,7 @@
                        }
                        lenpath = strlen(debpath);
  
  
                                for (i = 0; i < ndir; i++) {
  
-
This page took 0.063583 seconds and 4 git commands to generate.