jani            Wed Aug 13 01:01:29 2008 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src    Makefile.global NEWS 
    /php-src/ext/standard       info.c 
    /php-src/main       php_ini.c 
    /php-src/sapi/cgi   cgi_main.c 
    /php-src/sapi/cli   php_cli.c 
    /php-src/sapi/milter        php_milter.c 
  Log:
  MFH: [DOC]- Added methods to change/disable --with-config-file-scan-dir=PATH 
at
  MFH: [DOC]  startup:
  MFH: [DOC]
  MFH: [DOC]  To disable: Override default php.ini by using both -c and -n with
  MFH: [DOC]              CGI/CLI or set "PHP_INI_SCAN_DIR" environment variable
  MFH: [DOC]              to an empty string. 
  MFH: [DOC]
  MFH: [DOC]  To change: Simply set "PHP_INI_SCAN_DIR" environment variable to 
point 
  MFH: [DOC]             to another path.
  MFH: - Fixed bug #42604 ("make test" fails with  
--with-config-file-scan-dir=/some/path)
  MFH: - Implemented FR #45114 (Option to change --with-config-file-scan-dir)
  
  
http://cvs.php.net/viewvc.cgi/php-src/Makefile.global?r1=1.57.2.5.2.15&r2=1.57.2.5.2.16&diff_format=u
Index: php-src/Makefile.global
diff -u php-src/Makefile.global:1.57.2.5.2.15 
php-src/Makefile.global:1.57.2.5.2.16
--- php-src/Makefile.global:1.57.2.5.2.15       Wed Jul 30 23:57:14 2008
+++ php-src/Makefile.global     Wed Aug 13 01:01:27 2008
@@ -87,16 +87,21 @@
                CC="$(CC)" \
                        $(PHP_EXECUTABLE) $(PHP_TEST_SETTINGS) 
$(top_srcdir)/run-tests.php -d extension_dir=modules/ 
$(PHP_TEST_SHARED_EXTENSIONS) tests/; \
        elif test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
-               INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -r 'echo 
php_ini_loaded_file();'`; \
+               INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -d 
'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \
                if test "$$INI_FILE"; then \
                        $(EGREP) -v '^(zend_)?extension(_debug)?(_ts)?[\t\ ]*=' 
"$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
                else \
                        echo > $(top_builddir)/tmp-php.ini; \
                fi; \
+               INI_SCANNED_PATH=`$(top_builddir)/$(SAPI_CLI_PATH) -d 
'display_errors=stderr' -r '$$a = explode(",\n", 
trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \
+               if test "$$INI_SCANNED_PATH"; then \
+                       INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d 
$$INI_SCANNED_PATH`; \
+                       $(EGREP) -h -v '^(zend_)?extension(_debug)?(_ts)?[\t\ 
]*=' "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \
+               fi; \
                TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
                TEST_PHP_SRCDIR=$(top_srcdir) \
                CC="$(CC)" \
-                       $(top_builddir)/$(SAPI_CLI_PATH) $(PHP_TEST_SETTINGS) 
$(top_srcdir)/run-tests.php -c $(top_builddir)/tmp-php.ini -d 
extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
+                       $(top_builddir)/$(SAPI_CLI_PATH) -n -c 
$(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n 
-c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ 
$(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
        else \
                echo "ERROR: Cannot run tests without CLI sapi."; \
        fi
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1196&r2=1.2027.2.547.2.1197&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1196 php-src/NEWS:1.2027.2.547.2.1197
--- php-src/NEWS:1.2027.2.547.2.1196    Tue Aug 12 21:03:35 2008
+++ php-src/NEWS        Wed Aug 13 01:01:27 2008
@@ -4,6 +4,9 @@
 - Reverted fix for bug #44197 due to behaviour change in minor version.
   (Felipe)
 
+- Added "PHP_INI_SCAN_DIR" environment variable which can be used to either
+  disable or change the compile time ini scan directory (FR 45114). (Jani)
+
 - Fixed security issues detailed in CVE-2008-2665 and CVE-2008-2666.
   (Christian Hoffmann)
 - Fixed simplexml asXML() not to lose encoding when dumping entire document
@@ -73,6 +76,8 @@
   (Jani)
 - Fixed bug #43993 (mb_substr_count() behaves differently to substr_count() 
with
   overlapping needles). (Moriyoshi)
+- Fixed bug #42604 ("make test" fails with --with-config-file-scan-dir=path).
+  (Jani)
 - Fixed bug #41348 (OCI8: allow compilation with Oracle 8.1). (Chris Jones)
 
 01 May 2008, PHP 5.2.6
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/info.c?r1=1.249.2.10.2.17&r2=1.249.2.10.2.18&diff_format=u
Index: php-src/ext/standard/info.c
diff -u php-src/ext/standard/info.c:1.249.2.10.2.17 
php-src/ext/standard/info.c:1.249.2.10.2.18
--- php-src/ext/standard/info.c:1.249.2.10.2.17 Wed Mar  5 21:09:29 2008
+++ php-src/ext/standard/info.c Wed Aug 13 01:01:28 2008
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: info.c,v 1.249.2.10.2.17 2008/03/05 21:09:29 pajoye Exp $ */
+/* $Id: info.c,v 1.249.2.10.2.18 2008/08/13 01:01:28 jani Exp $ */
 
 #include "php.h"
 #include "php_ini.h"
@@ -57,6 +57,7 @@
                                                } \
 
 PHPAPI extern char *php_ini_opened_path;
+PHPAPI extern char *php_ini_scanned_path;
 PHPAPI extern char *php_ini_scanned_files;
        
 static int php_info_write_wrapper(const char *str, uint str_length)
@@ -501,14 +502,9 @@
 
                php_info_print_table_row(2, "Configuration File (php.ini) 
Path", PHP_CONFIG_FILE_PATH);
                php_info_print_table_row(2, "Loaded Configuration File", 
php_ini_opened_path ? php_ini_opened_path : "(none)");
+               php_info_print_table_row(2, "Scan this dir for additional .ini 
files", php_ini_scanned_path ? php_ini_scanned_path : "(none)");
+               php_info_print_table_row(2, "additional .ini files parsed", 
php_ini_scanned_files ? php_ini_scanned_files : "(none)");
 
-               if (strlen(PHP_CONFIG_FILE_SCAN_DIR)) {
-                       php_info_print_table_row(2, "Scan this dir for 
additional .ini files", PHP_CONFIG_FILE_SCAN_DIR);
-                       if (php_ini_scanned_files) {
-                               php_info_print_table_row(2, "additional .ini 
files parsed", php_ini_scanned_files);
-                       }
-               }
-               
                snprintf(temp_api, sizeof(temp_api), "%d", PHP_API_VERSION);
                php_info_print_table_row(2, "PHP API", temp_api);
 
http://cvs.php.net/viewvc.cgi/php-src/main/php_ini.c?r1=1.136.2.4.2.16&r2=1.136.2.4.2.17&diff_format=u
Index: php-src/main/php_ini.c
diff -u php-src/main/php_ini.c:1.136.2.4.2.16 
php-src/main/php_ini.c:1.136.2.4.2.17
--- php-src/main/php_ini.c:1.136.2.4.2.16       Mon Dec 31 07:20:15 2007
+++ php-src/main/php_ini.c      Wed Aug 13 01:01:29 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_ini.c,v 1.136.2.4.2.16 2007/12/31 07:20:15 sebastian Exp $ */
+/* $Id: php_ini.c,v 1.136.2.4.2.17 2008/08/13 01:01:29 jani Exp $ */
 
 #include "php.h"
 #include "ext/standard/info.h"
@@ -50,6 +50,7 @@
 static HashTable configuration_hash;
 PHPAPI char *php_ini_opened_path=NULL;
 static php_extension_lists extension_lists;
+PHPAPI char *php_ini_scanned_path=NULL;
 PHPAPI char *php_ini_scanned_files=NULL;
 
 /* {{{ php_ini_displayer_cb
@@ -448,9 +449,18 @@
        PG(safe_mode) = 0;
        PG(open_basedir) = NULL;
 
+       /*
+        * Find and open actual ini file
+        */
+
        memset(&fh, 0, sizeof(fh));
-       /* Check if php_ini_path_override is a file */
-       if (!sapi_module.php_ini_ignore) {
+
+       /* If SAPI does not want to ignore all ini files OR an overriding 
file/path is given.
+        * This allows disabling scanning for ini files in the 
PHP_CONFIG_FILE_SCAN_DIR but still
+        * load an optional ini file. */
+       if (!sapi_module.php_ini_ignore || sapi_module.php_ini_path_override) {
+
+               /* Check if php_ini_file_name is a file and can be opened */
                if (php_ini_file_name && php_ini_file_name[0]) {
                        struct stat statbuf;
 
@@ -463,7 +473,8 @@
                                }
                        }
                }
-               /* Search php-%sapi-module-name%.ini file in search path */
+
+               /* Otherwise search for php-%sapi-module-name%.ini file in 
search path */
                if (!fh.handle.fp) {
                        const char *fmt = "php-%s.ini";
                        char *ini_fname;
@@ -474,7 +485,8 @@
                                fh.filename = php_ini_opened_path;
                        }
                }
-               /* Search php.ini file in search path */
+
+               /* 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);
                        if (fh.handle.fp) {
@@ -509,20 +521,31 @@
                }
        }
 
-       /* If the config_file_scan_dir is set at compile-time, go and scan this 
directory and
-        * parse any .ini files found in this directory. */
-       if (!sapi_module.php_ini_ignore && strlen(PHP_CONFIG_FILE_SCAN_DIR)) {
+       /* Check for PHP_INI_SCAN_DIR environment variable to override/set 
config file scan directory */
+       php_ini_scanned_path = getenv("PHP_INI_SCAN_DIR");
+       if (!php_ini_scanned_path) {
+               /* Or fall back using possible --with-config-file-scan-dir 
setting (defaults to empty string!) */
+               php_ini_scanned_path = PHP_CONFIG_FILE_SCAN_DIR;
+       }
+       int php_ini_scanned_path_len = strlen(php_ini_scanned_path);
+
+       /* Scan and parse any .ini files found in scan path if path not empty. 
*/
+       if (!sapi_module.php_ini_ignore && php_ini_scanned_path_len) {
                struct dirent **namelist;
                int ndir, i;
 
-               if ((ndir = php_scandir(PHP_CONFIG_FILE_SCAN_DIR, &namelist, 0, 
php_alphasort)) > 0) {
+               if ((ndir = php_scandir(php_ini_scanned_path, &namelist, 0, 
php_alphasort)) > 0) {
                        for (i = 0; i < ndir; i++) {
                                /* check for a .ini extension */
                                if (!(p = strrchr(namelist[i]->d_name, '.')) || 
(p && strcmp(p, ".ini"))) {
                                        free(namelist[i]);
                                        continue;
                                }
-                               snprintf(ini_file, MAXPATHLEN, "%s%c%s", 
PHP_CONFIG_FILE_SCAN_DIR, DEFAULT_SLASH, namelist[i]->d_name);
+                               if 
(IS_SLASH(php_ini_scanned_path[php_ini_scanned_path_len - 1])) {
+                                       snprintf(ini_file, MAXPATHLEN, "%s%s", 
php_ini_scanned_path, namelist[i]->d_name);
+                               } else {
+                                       snprintf(ini_file, MAXPATHLEN, 
"%s%c%s", php_ini_scanned_path, DEFAULT_SLASH, namelist[i]->d_name);
+                               }
                                if (VCWD_STAT(ini_file, &sb) == 0) {
                                        if (S_ISREG(sb.st_mode)) {
                                                if ((fh.handle.fp = 
VCWD_FOPEN(ini_file, "r"))) {
@@ -555,6 +578,9 @@
                        }
                        zend_llist_destroy(&scanned_ini_list);
                }
+       } else {
+               /* Make sure an empty php_ini_scanned_path ends up as NULL */
+               php_ini_scanned_path = NULL;
        }
 
        if (sapi_module.ini_entries) {
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.267.2.15.2.58&r2=1.267.2.15.2.59&diff_format=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.58 
php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.59
--- php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.58 Tue Jul 15 13:38:29 2008
+++ php-src/sapi/cgi/cgi_main.c Wed Aug 13 01:01:29 2008
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cgi_main.c,v 1.267.2.15.2.58 2008/07/15 13:38:29 dmitry Exp $ */
+/* $Id: cgi_main.c,v 1.267.2.15.2.59 2008/08/13 01:01:29 jani Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -1678,17 +1678,6 @@
                        && !fastcgi
 #endif
                ) {
-                       if (cgi_sapi_module.php_ini_path_override && 
cgi_sapi_module.php_ini_ignore) {
-                               no_headers = 1;
-                               php_output_startup();
-                               php_output_activate(TSRMLS_C);
-                               SG(headers_sent) = 1;
-                               php_printf("You cannot use both -n and -c 
switch. Use -h for help.\n");
-                               php_end_ob_buffers(1 TSRMLS_CC);
-                               exit_status = 1;
-                               goto out;
-                       }
-
                        while ((c = php_getopt(argc, argv, OPTIONS, 
&php_optarg, &php_optind, 0)) != -1) {
                                switch (c) {
 
http://cvs.php.net/viewvc.cgi/php-src/sapi/cli/php_cli.c?r1=1.129.2.13.2.26&r2=1.129.2.13.2.27&diff_format=u
Index: php-src/sapi/cli/php_cli.c
diff -u php-src/sapi/cli/php_cli.c:1.129.2.13.2.26 
php-src/sapi/cli/php_cli.c:1.129.2.13.2.27
--- php-src/sapi/cli/php_cli.c:1.129.2.13.2.26  Wed Jul 23 11:25:50 2008
+++ php-src/sapi/cli/php_cli.c  Wed Aug 13 01:01:29 2008
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_cli.c,v 1.129.2.13.2.26 2008/07/23 11:25:50 tony2001 Exp $ */
+/* $Id: php_cli.c,v 1.129.2.13.2.27 2008/08/13 01:01:29 jani Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -729,12 +729,6 @@
                CG(in_compilation) = 0; /* not initialized but needed for 
several options */
                EG(uninitialized_zval_ptr) = NULL;
 
-               if (cli_sapi_module.php_ini_path_override && 
cli_sapi_module.php_ini_ignore) {
-                       PUTS("You cannot use both -n and -c switch. Use -h for 
help.\n");
-                       exit_status=1;
-                       goto out_err;
-               }
-
                while ((c = php_getopt(argc, argv, OPTIONS, &php_optarg, 
&php_optind, 0)) != -1) {
                        switch (c) {
 
http://cvs.php.net/viewvc.cgi/php-src/sapi/milter/php_milter.c?r1=1.14.2.2.2.4&r2=1.14.2.2.2.5&diff_format=u
Index: php-src/sapi/milter/php_milter.c
diff -u php-src/sapi/milter/php_milter.c:1.14.2.2.2.4 
php-src/sapi/milter/php_milter.c:1.14.2.2.2.5
--- php-src/sapi/milter/php_milter.c:1.14.2.2.2.4       Mon Dec 31 07:20:16 2007
+++ php-src/sapi/milter/php_milter.c    Wed Aug 13 01:01:29 2008
@@ -18,6 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
+/* $Id: php_milter.c,v 1.14.2.2.2.5 2008/08/13 01:01:29 jani Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -1006,13 +1007,6 @@
 
                zend_uv.html_errors = 0; /* tell the engine we're in non-html 
mode */
 
-               if (milter_sapi_module.php_ini_path_override && 
milter_sapi_module.php_ini_ignore) {
-                       SG(headers_sent) = 1;
-                       SG(request_info).no_headers = 1;
-                       PUTS("You cannot use both -n and -c switch. Use -h for 
help.\n");
-                       exit(1);
-               }
-       
                while ((c = ap_php_getopt(argc, argv, OPTSTRING)) != -1) {
                        switch (c) {
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to