|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-01-13 17:10 UTC] oden dot eriksson at linux-mandrake dot com
Hi. This "--with-config-file-scan-dir=/etc/php" is wierd. When compiled as in Mandrake Linux 9.0/Cooker the included files from /etc/php/ is randomly listed when viewed in phpinfo(). Here's an example: This phpinfo.html file was generated from a build from source: http://d-srv.com/Cooker/PRE/phpinfo.html This phpinfo.html file was generated from a RPM build as in/for Mandrake Linux 9.0/Cooker: http://d-srv.com/Cooker/phpinfo.html Also I noticed that php scans recursivly in this /etc/php/ directory which is not very nice (or maybe it's per design?). Chears. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 00:00:02 2025 UTC |
Is there a way to cleanly add a patch to bugs.php.net? I e-mailed it to sniper and oden, but anyways, here it is. Hope it's readable... --- php-4.3.0/main/php_ini.c.orig 2003-01-13 18:17:18.000000000 -0400 +++ php-4.3.0/main/php_ini.c 2003-01-13 19:03:23.000000000 -0400 @@ -30,6 +30,9 @@ #include "zend_highlight.h" #include "SAPI.h" #include "php_main.h" +#include <sys/types.h> +#include <sys/dir.h> +extern int alphasort(); =20 #ifndef S_ISREG #define S_ISREG(mode) (((mode) & S_IFMT) =3D=3D S_IFREG) @@ -232,6 +235,8 @@ zend_file_handle fh; DIR *dirp =3D NULL; struct dirent *dir_entry; + struct dirent **inifiles; + int inicount,i; struct stat sb; char ini_file[MAXPATHLEN]; char *p; @@ -400,10 +405,11 @@ dirp =3D VCWD_OPENDIR(PHP_CONFIG_FILE_SCAN_DIR); if (dirp) { fh.type =3D ZEND_HANDLE_FP; - while ((dir_entry =3D readdir(dirp)) !=3D NULL) { + inicount =3D scandir(PHP_CONFIG_FILE_SCAN_DIR, &inifiles, NULL, alphaso= rt); + for(i=3D1;i<inicount+1;++i) { /* check for a .ini extension */ - if ((p =3D strrchr(dir_entry->d_name,'.')) && strcmp(p,".ini")) contin= ue; - snprintf(ini_file, MAXPATHLEN, "%s%c%s", PHP_CONFIG_FILE_SCAN_DIR, DEF= AULT_SLASH, dir_entry->d_name); + if ((p =3D strrchr(inifiles[i-1]->d_name,'.')) && strcmp(p,".ini")) co= ntinue; + snprintf(ini_file, MAXPATHLEN, "%s%c%s", PHP_CONFIG_FILE_SCAN_DIR, DEF= AULT_SLASH, inifiles[i-1]->d_name); if (VCWD_STAT(ini_file, &sb) =3D=3D 0) { if (S_ISREG(sb.st_mode)) { if ((fh.handle.fp =3D VCWD_FOPEN(ini_file, "r"))) {