Skip to content
Newer
Older
100644 640 lines (568 sloc) 17.1 KB
651e232 @zsuraski Testing 123
zsuraski authored Apr 9, 1999
1 /*
2 +----------------------------------------------------------------------+
dbeb415 @andigutmans - A belated happy holidays and PHP 5
andigutmans authored Jan 8, 2004
3 | PHP Version 5 |
651e232 @zsuraski Testing 123
zsuraski authored Apr 9, 1999
4 +----------------------------------------------------------------------+
23e671a - Bumber up year
foobar authored Aug 3, 2005
5 | Copyright (c) 1997-2005 The PHP Group |
651e232 @zsuraski Testing 123
zsuraski authored Apr 9, 1999
6 +----------------------------------------------------------------------+
f68c7ff updating license information in the headers.
James Cox authored Jun 10, 2003
7 | This source file is subject to version 3.0 of the PHP license, |
9d1817e Fix bug: #10323. Every value outputted is now escaped.
foobar authored May 6, 2001
8 | that is bundled with this package in the file LICENSE, and is |
f68c7ff updating license information in the headers.
James Cox authored Jun 10, 2003
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_0.txt. |
c5724cb @zsuraski License update
zsuraski authored Jul 16, 1999
11 | If you did not receive a copy of the PHP license and are unable to |
9d1817e Fix bug: #10323. Every value outputted is now escaped.
foobar authored May 6, 2001
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
651e232 @zsuraski Testing 123
zsuraski authored Apr 9, 1999
14 +----------------------------------------------------------------------+
9d1817e Fix bug: #10323. Every value outputted is now escaped.
foobar authored May 6, 2001
15 | Author: Zeev Suraski <zeev@zend.com> |
651e232 @zsuraski Testing 123
zsuraski authored Apr 9, 1999
16 +----------------------------------------------------------------------+
17 */
18
46a7b0c @fmk Killing compiler warning on Win32
fmk authored Mar 5, 2002
19 /* $Id$ */
651e232 @zsuraski Testing 123
zsuraski authored Apr 9, 1999
20
aceaabc @zsuraski PHP 4.0
zsuraski authored Apr 7, 1999
21 #include "php.h"
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
22 #include "ext/standard/info.h"
1fd0913 @zsuraski Initial steps to move the INI mechanism to the Zend engine
zsuraski authored Oct 29, 2000
23 #include "zend_ini.h"
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
24 #include "php_ini.h"
25 #include "ext/standard/dl.h"
26 #include "zend_extensions.h"
9d1817e Fix bug: #10323. Every value outputted is now escaped.
foobar authored May 6, 2001
27 #include "zend_highlight.h"
ab25640 @edinkad Removed CWD from php_ini_search_path when using CLI SAPI.
edinkad authored Feb 28, 2002
28 #include "SAPI.h"
46a7b0c @fmk Killing compiler warning on Win32
fmk authored Mar 5, 2002
29 #include "php_main.h"
ec11fe0 Fix the possible conflicts with other libs (like libc-client)
foobar authored Feb 19, 2003
30 #include "php_scandir.h"
06aae4b @smalyshev Enable setting php.ini path via the registry
smalyshev authored Oct 19, 2003
31 #ifdef PHP_WIN32
32 #include "win32/php_registry.h"
33 #endif
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
34
ec11fe0 Fix the possible conflicts with other libs (like libc-client)
foobar authored Feb 19, 2003
35 #if HAVE_SCANDIR && HAVE_ALPHASORT && HAVE_DIRENT_H
36 #include <dirent.h>
82f6cef Fix broken build by adding scandir and alphasort for win32
Shane Caraveo authored Jan 26, 2003
37 #endif
8d352d2 Fixed bug #21625 (When scanning a directory for ini files, do so in
Ilia Alshanetsky authored Jan 25, 2003
38
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
39 #ifndef S_ISREG
40 #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
41 #endif
42
d294f46 @zsuraski - Remove the ini_extension_list global
zsuraski authored Jan 15, 2001
43 typedef struct _php_extension_lists {
42c82bb Revert the last patches.
foobar authored May 9, 2002
44 zend_llist engine;
45 zend_llist functions;
d294f46 @zsuraski - Remove the ini_extension_list global
zsuraski authored Jan 15, 2001
46 } php_extension_lists;
58e24ac @zsuraski - Add PHP Modules workspace
zsuraski authored Aug 13, 1999
47
9db5589 @zsuraski Recode delayed loading in a much simpler way (switched back to php_in…
zsuraski authored Mar 17, 2001
48
49 /* True globals */
50 static HashTable configuration_hash;
51 PHPAPI char *php_ini_opened_path=NULL;
52 static php_extension_lists extension_lists;
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
53 PHPAPI char *php_ini_scanned_files=NULL;
9db5589 @zsuraski Recode delayed loading in a much simpler way (switched back to php_in…
zsuraski authored Mar 17, 2001
54
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
55 /* {{{ php_ini_displayer_cb
56 */
1fd0913 @zsuraski Initial steps to move the INI mechanism to the Zend engine
zsuraski authored Oct 29, 2000
57 static void php_ini_displayer_cb(zend_ini_entry *ini_entry, int type)
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
58 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
59 if (ini_entry->displayer) {
60 ini_entry->displayer(ini_entry, type);
61 } else {
62 char *display_string;
63 uint display_string_length, esc_html=0;
64 TSRMLS_FETCH();
65
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
66 if (type == ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {
42c82bb Revert the last patches.
foobar authored May 9, 2002
67 if (ini_entry->orig_value && ini_entry->orig_value[0]) {
68 display_string = ini_entry->orig_value;
69 display_string_length = ini_entry->orig_value_length;
b5c97d8 fix phpinfo() & php -i
Marcus Boerger authored Mar 29, 2003
70 esc_html = !sapi_module.phpinfo_as_text;
42c82bb Revert the last patches.
foobar authored May 9, 2002
71 } else {
b5c97d8 fix phpinfo() & php -i
Marcus Boerger authored Mar 29, 2003
72 if (!sapi_module.phpinfo_as_text) {
d6497fc - reenable "no value" output. thanks to sebastian for pointing that …
Jan Lehnardt authored Aug 29, 2002
73 display_string = "<i>no value</i>";
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
74 display_string_length = sizeof("<i>no value</i>") - 1;
d6497fc - reenable "no value" output. thanks to sebastian for pointing that …
Jan Lehnardt authored Aug 29, 2002
75 } else {
76 display_string = "no value";
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
77 display_string_length = sizeof("no value") - 1;
d6497fc - reenable "no value" output. thanks to sebastian for pointing that …
Jan Lehnardt authored Aug 29, 2002
78 }
42c82bb Revert the last patches.
foobar authored May 9, 2002
79 }
80 } else if (ini_entry->value && ini_entry->value[0]) {
81 display_string = ini_entry->value;
82 display_string_length = ini_entry->value_length;
b5c97d8 fix phpinfo() & php -i
Marcus Boerger authored Mar 29, 2003
83 esc_html = !sapi_module.phpinfo_as_text;
42c82bb Revert the last patches.
foobar authored May 9, 2002
84 } else {
b5c97d8 fix phpinfo() & php -i
Marcus Boerger authored Mar 29, 2003
85 if (!sapi_module.phpinfo_as_text) {
d6497fc - reenable "no value" output. thanks to sebastian for pointing that …
Jan Lehnardt authored Aug 29, 2002
86 display_string = "<i>no value</i>";
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
87 display_string_length = sizeof("<i>no value</i>") - 1;
d6497fc - reenable "no value" output. thanks to sebastian for pointing that …
Jan Lehnardt authored Aug 29, 2002
88 } else {
89 display_string = "no value";
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
90 display_string_length = sizeof("no value") - 1;
d6497fc - reenable "no value" output. thanks to sebastian for pointing that …
Jan Lehnardt authored Aug 29, 2002
91 }
42c82bb Revert the last patches.
foobar authored May 9, 2002
92 }
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
93
94 if (esc_html) {
a769454 reenable php_html_puts
Sascha Schumann authored May 12, 2002
95 php_html_puts(display_string, display_string_length TSRMLS_CC);
42c82bb Revert the last patches.
foobar authored May 9, 2002
96 } else {
97 PHPWRITE(display_string, display_string_length);
98 }
99 }
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
100 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
101 /* }}} */
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
102
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
103 /* {{{ php_ini_displayer
104 */
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
105 static int php_ini_displayer(zend_ini_entry *ini_entry, int module_number TSRMLS_DC)
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
106 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
107 if (ini_entry->module_number != module_number) {
108 return 0;
109 }
b5c97d8 fix phpinfo() & php -i
Marcus Boerger authored Mar 29, 2003
110 if (!sapi_module.phpinfo_as_text) {
14a6cc8 Change phpinfo() to use CSS styling instead of HTML code.
Colin Viebrock authored Sep 19, 2002
111 PUTS("<tr>");
c7c275b fix phpinfo() output for better browser BC
Colin Viebrock authored Sep 26, 2002
112 PUTS("<td class=\"e\">");
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
113 PHPWRITE(ini_entry->name, ini_entry->name_length - 1);
c7c275b fix phpinfo() output for better browser BC
Colin Viebrock authored Sep 26, 2002
114 PUTS("</td><td class=\"v\">");
6676617 - add phpinfo() support for CLI.
Jan Lehnardt authored Aug 28, 2002
115 php_ini_displayer_cb(ini_entry, ZEND_INI_DISPLAY_ACTIVE);
c7c275b fix phpinfo() output for better browser BC
Colin Viebrock authored Sep 26, 2002
116 PUTS("</td><td class=\"v\">");
6676617 - add phpinfo() support for CLI.
Jan Lehnardt authored Aug 28, 2002
117 php_ini_displayer_cb(ini_entry, ZEND_INI_DISPLAY_ORIG);
118 PUTS("</td></tr>\n");
119 } else {
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
120 PHPWRITE(ini_entry->name, ini_entry->name_length - 1);
6676617 - add phpinfo() support for CLI.
Jan Lehnardt authored Aug 28, 2002
121 PUTS(" => ");
122 php_ini_displayer_cb(ini_entry, ZEND_INI_DISPLAY_ACTIVE);
123 PUTS(" => ");
124 php_ini_displayer_cb(ini_entry, ZEND_INI_DISPLAY_ORIG);
125 PUTS("\n");
126 }
42c82bb Revert the last patches.
foobar authored May 9, 2002
127 return 0;
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
128 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
129 /* }}} */
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
130
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
131 /* {{{ display_ini_entries
132 */
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
133 PHPAPI void display_ini_entries(zend_module_entry *module)
134 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
135 int module_number;
136 TSRMLS_FETCH();
137
138 if (module) {
139 module_number = module->module_number;
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
140 } else {
42c82bb Revert the last patches.
foobar authored May 9, 2002
141 module_number = 0;
142 }
143 php_info_print_table_start();
144 php_info_print_table_header(3, "Directive", "Local Value", "Master Value");
2f4ed25 @zsuraski Compat fix
zsuraski authored Sep 23, 2002
145 zend_hash_apply_with_argument(EG(ini_directives), (apply_func_arg_t) php_ini_displayer, (void *) (long) module_number TSRMLS_CC);
42c82bb Revert the last patches.
foobar authored May 9, 2002
146 php_info_print_table_end();
bc415d5 @zsuraski * Finalizing the PHP version of SAPI. Support POST and cookies among …
zsuraski authored May 9, 1999
147 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
148 /* }}} */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
149
150 /* php.ini support */
151
152 #ifdef ZTS
153 # if (ZEND_DEBUG)
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
154 # define ZEND_EXTENSION_TOKEN "zend_extension_debug_ts"
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
155 # else
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
156 # define ZEND_EXTENSION_TOKEN "zend_extension_ts"
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
157 # endif
158 #else
159 # if (ZEND_DEBUG)
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
160 # define ZEND_EXTENSION_TOKEN "zend_extension_debug"
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
161 # else
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
162 # define ZEND_EXTENSION_TOKEN "zend_extension"
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
163 # endif
164 #endif
165
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
166 /* {{{ php_config_ini_parser_cb
167 */
9db5589 @zsuraski Recode delayed loading in a much simpler way (switched back to php_in…
zsuraski authored Mar 17, 2001
168 static void php_config_ini_parser_cb(zval *arg1, zval *arg2, int callback_type, void *arg)
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
169 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
170 switch (callback_type) {
171 case ZEND_INI_PARSER_ENTRY: {
172 zval *entry;
173
174 if (!arg2) {
175 break;
176 }
177 if (!strcasecmp(Z_STRVAL_P(arg1), "extension")) { /* load function module */
178 zval copy;
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
179
42c82bb Revert the last patches.
foobar authored May 9, 2002
180 copy = *arg2;
181 zval_copy_ctor(&copy);
182 copy.refcount = 0;
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
183 zend_llist_add_element(&extension_lists.functions, &copy);
42c82bb Revert the last patches.
foobar authored May 9, 2002
184 } else if (!strcasecmp(Z_STRVAL_P(arg1), ZEND_EXTENSION_TOKEN)) { /* load Zend extension */
185 char *extension_name = estrndup(Z_STRVAL_P(arg2), Z_STRLEN_P(arg2));
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
186
42c82bb Revert the last patches.
foobar authored May 9, 2002
187 zend_llist_add_element(&extension_lists.engine, &extension_name);
188 } else {
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
189 zend_hash_update(&configuration_hash, Z_STRVAL_P(arg1), Z_STRLEN_P(arg1) + 1, arg2, sizeof(zval), (void **) &entry);
42c82bb Revert the last patches.
foobar authored May 9, 2002
190 Z_STRVAL_P(entry) = zend_strndup(Z_STRVAL_P(entry), Z_STRLEN_P(entry));
191 }
192 }
193 break;
b51b6f0 ini patch to allow 'entry[] = value' entries
Harald Radi authored Jan 19, 2003
194
195 case ZEND_INI_PARSER_POP_ENTRY: {
196 zval *hash;
197 zval **find_hash;
198 zval *element;
199
200 if (!arg2) {
201 /* bare string - nothing to do */
202 break;
203 }
204
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
205 if (zend_hash_find(&configuration_hash, Z_STRVAL_P(arg1), Z_STRLEN_P(arg1) + 1, (void **) &find_hash) == FAILURE) {
b51b6f0 ini patch to allow 'entry[] = value' entries
Harald Radi authored Jan 19, 2003
206 ALLOC_ZVAL(hash);
207 array_init(hash);
208
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
209 zend_hash_update(&configuration_hash, Z_STRVAL_P(arg1), Z_STRLEN_P(arg1) + 1, &hash, sizeof(zval *), NULL);
b51b6f0 ini patch to allow 'entry[] = value' entries
Harald Radi authored Jan 19, 2003
210 } else {
211 hash = *find_hash;
212 }
213
214 ALLOC_ZVAL(element);
215 *element = *arg2;
216 zval_copy_ctor(element);
217 INIT_PZVAL(element);
218 add_next_index_zval(hash, element);
219 }
220 break;
221
42c82bb Revert the last patches.
foobar authored May 9, 2002
222 case ZEND_INI_PARSER_SECTION:
223 break;
224 }
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
225 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
226 /* }}} */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
227
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
228 /* {{{ php_load_function_extension_cb
229 */
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
230 static void php_load_function_extension_cb(void *arg TSRMLS_DC)
db0b8bc Defer loading of extensions until all configuration entries have been
Sascha Schumann authored Jan 15, 2001
231 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
232 zval *extension = (zval *) arg;
233 zval zval;
db0b8bc Defer loading of extensions until all configuration entries have been
Sascha Schumann authored Jan 15, 2001
234
000a9e3 - Fixed problem with -dextension=foobar.so not having it's MINIT run.
foobar authored Aug 8, 2005
235 php_dl(extension, MODULE_PERSISTENT, &zval, 0 TSRMLS_CC);
d294f46 @zsuraski - Remove the ini_extension_list global
zsuraski authored Jan 15, 2001
236 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
237 /* }}} */
d294f46 @zsuraski - Remove the ini_extension_list global
zsuraski authored Jan 15, 2001
238
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
239 /* {{{ php_load_zend_extension_cb
240 */
d76cf1d @zsuraski More TSRMLS_FETCH work
zsuraski authored Jul 31, 2001
241 static void php_load_zend_extension_cb(void *arg TSRMLS_DC)
d294f46 @zsuraski - Remove the ini_extension_list global
zsuraski authored Jan 15, 2001
242 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
243 zend_load_extension(*((char **) arg));
db0b8bc Defer loading of extensions until all configuration entries have been
Sascha Schumann authored Jan 15, 2001
244 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
245 /* }}} */
db0b8bc Defer loading of extensions until all configuration entries have been
Sascha Schumann authored Jan 15, 2001
246
64cfbf5 MFH: - Fixed bug #34307 (OnUpdateStringUnempty INI options can be set…
foobar authored Sep 1, 2005
247 /* {{{ pvalue_config_destructor
248 */
249 static void pvalue_config_destructor(zval *pvalue)
250 {
251 if (Z_TYPE_P(pvalue) == IS_STRING) {
252 free(Z_STRVAL_P(pvalue));
253 }
254 }
255 /* }}} */
256
257 /* {{{ php_init_config_hash
258 */
259 int php_init_config_hash(void)
260 {
261 if (zend_hash_init(&configuration_hash, 0, NULL, (dtor_func_t) pvalue_config_destructor, 1) == FAILURE) {
262 return FAILURE;
263 }
264 }
265 /* }}} */
266
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
267 /* {{{ php_init_config
268 */
64cfbf5 MFH: - Fixed bug #34307 (OnUpdateStringUnempty INI options can be set…
foobar authored Sep 1, 2005
269 int php_init_config(TSRMLS_D)
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
270 {
f66d5f0 - Fixed few logic errors in php*.ini search path creation as document…
foobar authored Jul 29, 2005
271 char *php_ini_search_path = NULL;
42c82bb Revert the last patches.
foobar authored May 9, 2002
272 int safe_mode_state;
273 char *open_basedir;
f66d5f0 - Fixed few logic errors in php*.ini search path creation as document…
foobar authored Jul 29, 2005
274 int free_ini_search_path = 0;
42c82bb Revert the last patches.
foobar authored May 9, 2002
275 zend_file_handle fh;
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
276 struct stat sb;
277 char ini_file[MAXPATHLEN];
278 char *p;
279 zend_llist scanned_ini_list;
280 int l, total_l=0;
281 zend_llist_element *element;
42c82bb Revert the last patches.
foobar authored May 9, 2002
282
63739c7 give sapi modules the possibility to overwrite default ini settings
Marcus Boerger authored Mar 18, 2003
283 if (sapi_module.ini_defaults) {
284 sapi_module.ini_defaults(&configuration_hash);
285 }
286
42c82bb Revert the last patches.
foobar authored May 9, 2002
287 zend_llist_init(&extension_lists.engine, sizeof(char *), (llist_dtor_func_t) free_estring, 1);
288 zend_llist_init(&extension_lists.functions, sizeof(zval), (llist_dtor_func_t) ZVAL_DESTRUCTOR, 1);
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
289 zend_llist_init(&scanned_ini_list, sizeof(char *), (llist_dtor_func_t) free_estring, 1);
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
290
42c82bb Revert the last patches.
foobar authored May 9, 2002
291 safe_mode_state = PG(safe_mode);
292 open_basedir = PG(open_basedir);
293
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
294 if (sapi_module.php_ini_path_override) {
295 php_ini_search_path = sapi_module.php_ini_path_override;
296 free_ini_search_path = 0;
f66d5f0 - Fixed few logic errors in php*.ini search path creation as document…
foobar authored Jul 29, 2005
297 } else if (!sapi_module.php_ini_ignore) {
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
298 char *default_location;
f66d5f0 - Fixed few logic errors in php*.ini search path creation as document…
foobar authored Jul 29, 2005
299 char *env_location;
300 char *binary_location;
e1658ed Minor cleanups to path building and php*.ini search logic.
Preston L. Bannister authored Aug 12, 2002
301 static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 };
2479384 Fixed unused variable warning on *nix.
Ilia Alshanetsky authored Oct 20, 2003
302 #ifdef PHP_WIN32
06aae4b @smalyshev Enable setting php.ini path via the registry
smalyshev authored Oct 19, 2003
303 char *reg_location;
2479384 Fixed unused variable warning on *nix.
Ilia Alshanetsky authored Oct 20, 2003
304 #endif
6de4f3a Add check for php.ini in same directory as php.exe (or equivalent exe…
Preston L. Bannister authored May 9, 2002
305
f66d5f0 - Fixed few logic errors in php*.ini search path creation as document…
foobar authored Jul 29, 2005
306 env_location = getenv("PHPRC");
307 if (!env_location) {
308 env_location = "";
309 }
310
311 /*
312 * Prepare search path
313 */
314
06aae4b @smalyshev Enable setting php.ini path via the registry
smalyshev authored Oct 19, 2003
315 php_ini_search_path = (char *) emalloc(MAXPATHLEN * 4 + strlen(env_location) + 3 + 1);
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
316 free_ini_search_path = 1;
317 php_ini_search_path[0] = 0;
6de4f3a Add check for php.ini in same directory as php.exe (or equivalent exe…
Preston L. Bannister authored May 9, 2002
318
06aae4b @smalyshev Enable setting php.ini path via the registry
smalyshev authored Oct 19, 2003
319 #ifdef PHP_WIN32
320 /* Add registry location */
321 reg_location = GetIniPathFromRegistry();
f66d5f0 - Fixed few logic errors in php*.ini search path creation as document…
foobar authored Jul 29, 2005
322 if (reg_location != NULL) {
06aae4b @smalyshev Enable setting php.ini path via the registry
smalyshev authored Oct 19, 2003
323 if (*php_ini_search_path) {
324 strcat(php_ini_search_path, paths_separator);
325 }
326 strcat(php_ini_search_path, reg_location);
327 efree(reg_location);
328 }
329 #endif
42c82bb Revert the last patches.
foobar authored May 9, 2002
330
2629613 Fix PHPRC overriding other ini files. This is how PHPRC worked prior to
Shane Caraveo authored Mar 22, 2003
331 /* Add environment location */
332 if (env_location[0]) {
333 if (*php_ini_search_path) {
334 strcat(php_ini_search_path, paths_separator);
335 }
336 strcat(php_ini_search_path, env_location);
337 }
338
f66d5f0 - Fixed few logic errors in php*.ini search path creation as document…
foobar authored Jul 29, 2005
339 /* Add cwd (only with CLI) */
340 if (strcmp(sapi_module.name, "cli") == 0) {
e1658ed Minor cleanups to path building and php*.ini search logic.
Preston L. Bannister authored Aug 12, 2002
341 if (*php_ini_search_path) {
342 strcat(php_ini_search_path, paths_separator);
343 }
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
344 strcat(php_ini_search_path, ".");
345 }
42c82bb Revert the last patches.
foobar authored May 9, 2002
346
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
347 /* Add binary directory */
6de4f3a Add check for php.ini in same directory as php.exe (or equivalent exe…
Preston L. Bannister authored May 9, 2002
348 #ifdef PHP_WIN32
b9fd107 @zsuraski Use portable #define
zsuraski authored May 11, 2002
349 binary_location = (char *) emalloc(MAXPATHLEN);
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
350 if (GetModuleFileName(0, binary_location, MAXPATHLEN) == 0) {
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
351 efree(binary_location);
352 binary_location = NULL;
42c82bb Revert the last patches.
foobar authored May 9, 2002
353 }
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
354 #else
355 if (sapi_module.executable_location) {
7e071d9 php.ini search logic needs to use the absolute path of the running bi…
Hartmut Holzgraefe authored Jul 27, 2005
356 binary_location = (char *)emalloc(PATH_MAX);
357 if (!realpath(sapi_module.executable_location, binary_location)) {
358 efree(binary_location);
359 binary_location = NULL;
98694f9 @tony2001 ws fix
tony2001 authored Jul 27, 2005
360 }
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
361 } else {
362 binary_location = NULL;
6de4f3a Add check for php.ini in same directory as php.exe (or equivalent exe…
Preston L. Bannister authored May 9, 2002
363 }
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
364 #endif
365 if (binary_location) {
366 char *separator_location = strrchr(binary_location, DEFAULT_SLASH);
367
882cb20 edge case: do not remove trailing slash for root directory (Bug #33882)
Hartmut Holzgraefe authored Jul 27, 2005
368 if (separator_location && separator_location != binary_location) {
7e071d9 php.ini search logic needs to use the absolute path of the running bi…
Hartmut Holzgraefe authored Jul 27, 2005
369 *(separator_location) = 0;
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
370 }
e1658ed Minor cleanups to path building and php*.ini search logic.
Preston L. Bannister authored Aug 12, 2002
371 if (*php_ini_search_path) {
372 strcat(php_ini_search_path, paths_separator);
373 }
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
374 strcat(php_ini_search_path, binary_location);
375 efree(binary_location);
376 }
377
378 /* Add default location */
379 #ifdef PHP_WIN32
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
380 default_location = (char *) emalloc(MAXPATHLEN + 1);
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
381
e1658ed Minor cleanups to path building and php*.ini search logic.
Preston L. Bannister authored Aug 12, 2002
382 if (0 < GetWindowsDirectory(default_location, MAXPATHLEN)) {
383 if (*php_ini_search_path) {
384 strcat(php_ini_search_path, paths_separator);
385 }
386 strcat(php_ini_search_path, default_location);
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
387 }
388 efree(default_location);
fcdda2e @wez Fix a problem resolving the php.ini path under win32 terminal service…
wez authored Dec 6, 2003
389
390 {
391 /* For people running under terminal services, GetWindowsDirectory will
392 * return their personal Windows directory, so lets add the system
393 * windows directory too */
394 typedef UINT (WINAPI *get_system_windows_directory_func)(char *buffer, UINT size);
395 static get_system_windows_directory_func get_system_windows_directory = NULL;
396 HMODULE kern;
397
398 if (get_system_windows_directory == NULL) {
399 kern = LoadLibrary("kernel32.dll");
400 if (kern) {
401 get_system_windows_directory = (get_system_windows_directory_func)GetProcAddress(kern, "GetSystemWindowsDirectoryA");
402 }
403 }
404 if (get_system_windows_directory != NULL) {
405 default_location = (char *) emalloc(MAXPATHLEN + 1);
406 if (0 < get_system_windows_directory(default_location, MAXPATHLEN)) {
407 if (*php_ini_search_path) {
408 strcat(php_ini_search_path, paths_separator);
409 }
410 strcat(php_ini_search_path, default_location);
411 }
412 efree(default_location);
413 }
414 }
6de4f3a Add check for php.ini in same directory as php.exe (or equivalent exe…
Preston L. Bannister authored May 9, 2002
415 #else
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
416 default_location = PHP_CONFIG_FILE_PATH;
e1658ed Minor cleanups to path building and php*.ini search logic.
Preston L. Bannister authored Aug 12, 2002
417 if (*php_ini_search_path) {
418 strcat(php_ini_search_path, paths_separator);
419 }
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
420 strcat(php_ini_search_path, default_location);
6de4f3a Add check for php.ini in same directory as php.exe (or equivalent exe…
Preston L. Bannister authored May 9, 2002
421 #endif
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
422 }
6de4f3a Add check for php.ini in same directory as php.exe (or equivalent exe…
Preston L. Bannister authored May 9, 2002
423
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
424 PG(safe_mode) = 0;
425 PG(open_basedir) = NULL;
426
e52aac9 @wez Implement simple stream support in the ZE scanners.
wez authored Feb 18, 2003
427 memset(&fh, 0, sizeof(fh));
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
428 /* Check if php_ini_path_override is a file */
cecb9df Implemented -n switch to skip parsing ini at startup as suggested by …
Marcus Boerger authored Nov 12, 2002
429 if (!sapi_module.php_ini_ignore) {
430 if (sapi_module.php_ini_path_override && sapi_module.php_ini_path_override[0]) {
431 struct stat statbuf;
432
433 if (!VCWD_STAT(sapi_module.php_ini_path_override, &statbuf)) {
434 if (!((statbuf.st_mode & S_IFMT) == S_IFDIR)) {
435 fh.handle.fp = VCWD_FOPEN(sapi_module.php_ini_path_override, "r");
436 fh.filename = sapi_module.php_ini_path_override;
437 }
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
438 }
439 }
cecb9df Implemented -n switch to skip parsing ini at startup as suggested by …
Marcus Boerger authored Nov 12, 2002
440 /* Search php-%sapi-module-name%.ini file in search path */
441 if (!fh.handle.fp) {
442 const char *fmt = "php-%s.ini";
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
443 char *ini_fname = emalloc(strlen(fmt) + strlen(sapi_module.name));
cecb9df Implemented -n switch to skip parsing ini at startup as suggested by …
Marcus Boerger authored Nov 12, 2002
444 sprintf(ini_fname, fmt, sapi_module.name);
445 fh.handle.fp = php_fopen_with_path(ini_fname, "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC);
446 efree(ini_fname);
447 if (fh.handle.fp) {
448 fh.filename = php_ini_opened_path;
449 }
e1658ed Minor cleanups to path building and php*.ini search logic.
Preston L. Bannister authored Aug 12, 2002
450 }
cecb9df Implemented -n switch to skip parsing ini at startup as suggested by …
Marcus Boerger authored Nov 12, 2002
451 /* Search php.ini file in search path */
452 if (!fh.handle.fp) {
453 fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC);
454 if (fh.handle.fp) {
455 fh.filename = php_ini_opened_path;
456 }
8f94a8a @edinkad First try to open php-SAPI.ini and if it fails fall back to regular
edinkad authored Jul 29, 2002
457 }
751cd67 get_cfg_var("get_file_path") didn't work correctly when an alternative
Sander Roobol authored May 19, 2002
458 }
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
459
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
460 if (free_ini_search_path) {
461 efree(php_ini_search_path);
462 }
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
463
42c82bb Revert the last patches.
foobar authored May 9, 2002
464 PG(safe_mode) = safe_mode_state;
465 PG(open_basedir) = open_basedir;
466
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
467 if (fh.handle.fp) {
468 fh.type = ZEND_HANDLE_FP;
42c82bb Revert the last patches.
foobar authored May 9, 2002
469
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
470 zend_parse_ini_file(&fh, 1, php_config_ini_parser_cb, &extension_lists);
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
471
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
472 {
473 zval tmp;
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
474
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
475 Z_STRLEN(tmp) = strlen(fh.filename);
476 Z_STRVAL(tmp) = zend_strndup(fh.filename, Z_STRLEN(tmp));
477 Z_TYPE(tmp) = IS_STRING;
478 zend_hash_update(&configuration_hash, "cfg_file_path", sizeof("cfg_file_path"), (void *) &tmp, sizeof(zval), NULL);
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
479 if (php_ini_opened_path) {
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
480 efree(php_ini_opened_path);
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
481 }
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
482 php_ini_opened_path = zend_strndup(Z_STRVAL(tmp), Z_STRLEN(tmp));
483 }
cecb9df Implemented -n switch to skip parsing ini at startup as suggested by …
Marcus Boerger authored Nov 12, 2002
484 }
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
485
486 /* If the config_file_scan_dir is set at compile-time, go and scan this directory and
487 * parse any .ini files found in this directory. */
173b949 Fixed bug: #22011 (-n must ignore all ini files)
foobar authored Feb 3, 2003
488 if (!sapi_module.php_ini_ignore && strlen(PHP_CONFIG_FILE_SCAN_DIR)) {
8d352d2 Fixed bug #21625 (When scanning a directory for ini files, do so in
Ilia Alshanetsky authored Jan 25, 2003
489 struct dirent **namelist;
490 int ndir, i;
491
ec11fe0 Fix the possible conflicts with other libs (like libc-client)
foobar authored Feb 19, 2003
492 if ((ndir = php_scandir(PHP_CONFIG_FILE_SCAN_DIR, &namelist, 0, php_alphasort)) > 0) {
8d352d2 Fixed bug #21625 (When scanning a directory for ini files, do so in
Ilia Alshanetsky authored Jan 25, 2003
493 for (i = 0; i < ndir; i++) {
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
494 /* check for a .ini extension */
8d352d2 Fixed bug #21625 (When scanning a directory for ini files, do so in
Ilia Alshanetsky authored Jan 25, 2003
495 if (!(p = strrchr(namelist[i]->d_name, '.')) || (p && strcmp(p, ".ini"))) {
496 free(namelist[i]);
d454bec - Whitespace
Derick Rethans authored Dec 30, 2002
497 continue;
498 }
8d352d2 Fixed bug #21625 (When scanning a directory for ini files, do so in
Ilia Alshanetsky authored Jan 25, 2003
499 snprintf(ini_file, MAXPATHLEN, "%s%c%s", PHP_CONFIG_FILE_SCAN_DIR, DEFAULT_SLASH, namelist[i]->d_name);
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
500 if (VCWD_STAT(ini_file, &sb) == 0) {
501 if (S_ISREG(sb.st_mode)) {
502 if ((fh.handle.fp = VCWD_FOPEN(ini_file, "r"))) {
503 fh.filename = ini_file;
1ad304c @rlerdorf MFB config-file-scan-dir crash fix
rlerdorf authored Feb 28, 2003
504 fh.type = ZEND_HANDLE_FP;
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
505 zend_parse_ini_file(&fh, 1, php_config_ini_parser_cb, &extension_lists);
506 /* Here, add it to the list of ini files read */
507 l = strlen(ini_file);
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
508 total_l += l + 2;
509 p = estrndup(ini_file, l);
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
510 zend_llist_add_element(&scanned_ini_list, &p);
511 }
512 }
513 }
8d352d2 Fixed bug #21625 (When scanning a directory for ini files, do so in
Ilia Alshanetsky authored Jan 25, 2003
514 free(namelist[i]);
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
515 }
8d352d2 Fixed bug #21625 (When scanning a directory for ini files, do so in
Ilia Alshanetsky authored Jan 25, 2003
516 free(namelist);
517
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
518 /*
519 * Don't need an extra byte for the \0 in this malloc as the last
520 * element will not get a trailing , which gives us the byte for the \0
521 */
3781af5 - Fixed zero bytes memory allocation when no extra ini files are foun…
Derick Rethans authored Feb 14, 2004
522 if (total_l) {
523 php_ini_scanned_files = (char *) malloc(total_l);
524 *php_ini_scanned_files = '\0';
525 for (element = scanned_ini_list.head; element; element = element->next) {
526 strcat(php_ini_scanned_files, *(char **)element->data);
527 strcat(php_ini_scanned_files, element->next ? ",\n" : "\n");
528 }
529 }
ac9f4cc - We always need to destroy the llist though.
Derick Rethans authored Feb 14, 2004
530 zend_llist_destroy(&scanned_ini_list);
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
531 }
42c82bb Revert the last patches.
foobar authored May 9, 2002
532 }
533 return SUCCESS;
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
534 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
535 /* }}} */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
536
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
537 /* {{{ php_shutdown_config
538 */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
539 int php_shutdown_config(void)
540 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
541 zend_hash_destroy(&configuration_hash);
542 if (php_ini_opened_path) {
543 free(php_ini_opened_path);
2a2d49b Fixed bug #30050 (Possible crash inside php_shutdown_config()).
Ilia Alshanetsky authored Sep 17, 2004
544 php_ini_opened_path = NULL;
42c82bb Revert the last patches.
foobar authored May 9, 2002
545 }
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
546 if (php_ini_scanned_files) {
547 free(php_ini_scanned_files);
2a2d49b Fixed bug #30050 (Possible crash inside php_shutdown_config()).
Ilia Alshanetsky authored Sep 17, 2004
548 php_ini_scanned_files = NULL;
989a61e @rlerdorf As discussed, add --with-config-file-scan-dir compile-time switch def…
rlerdorf authored Oct 4, 2002
549 }
42c82bb Revert the last patches.
foobar authored May 9, 2002
550 return SUCCESS;
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
551 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
552 /* }}} */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
553
f47c784 Improved PHP extension loading mechanism with support for module depe…
Dmitry Stogov authored Jun 17, 2005
554 /* {{{ php_ini_register_extensions
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
555 */
f47c784 Improved PHP extension loading mechanism with support for module depe…
Dmitry Stogov authored Jun 17, 2005
556 void php_ini_register_extensions(TSRMLS_D)
9db5589 @zsuraski Recode delayed loading in a much simpler way (switched back to php_in…
zsuraski authored Mar 17, 2001
557 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
558 zend_llist_apply(&extension_lists.engine, php_load_zend_extension_cb TSRMLS_CC);
559 zend_llist_apply(&extension_lists.functions, php_load_function_extension_cb TSRMLS_CC);
9db5589 @zsuraski Recode delayed loading in a much simpler way (switched back to php_in…
zsuraski authored Mar 17, 2001
560
42c82bb Revert the last patches.
foobar authored May 9, 2002
561 zend_llist_destroy(&extension_lists.engine);
562 zend_llist_destroy(&extension_lists.functions);
9db5589 @zsuraski Recode delayed loading in a much simpler way (switched back to php_in…
zsuraski authored Mar 17, 2001
563 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
564 /* }}} */
9db5589 @zsuraski Recode delayed loading in a much simpler way (switched back to php_in…
zsuraski authored Mar 17, 2001
565
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
566 /* {{{ cfg_get_entry
567 */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
568 zval *cfg_get_entry(char *name, uint name_length)
569 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
570 zval *tmp;
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
571
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
572 if (zend_hash_find(&configuration_hash, name, name_length, (void **) &tmp) == SUCCESS) {
42c82bb Revert the last patches.
foobar authored May 9, 2002
573 return tmp;
574 } else {
575 return NULL;
576 }
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
577 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
578 /* }}} */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
579
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
580 /* {{{ cfg_get_long
581 */
1159c84 @zsuraski - TSRMLS_FETCH work
zsuraski authored Aug 5, 2001
582 PHPAPI int cfg_get_long(char *varname, long *result)
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
583 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
584 zval *tmp, var;
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
585
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
586 if (zend_hash_find(&configuration_hash, varname, strlen(varname) + 1, (void **) &tmp) == FAILURE) {
587 *result = (long) NULL;
42c82bb Revert the last patches.
foobar authored May 9, 2002
588 return FAILURE;
589 }
590 var = *tmp;
591 zval_copy_ctor(&var);
592 convert_to_long(&var);
593 *result = Z_LVAL(var);
594 return SUCCESS;
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
595 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
596 /* }}} */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
597
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
598 /* {{{ cfg_get_double
599 */
1159c84 @zsuraski - TSRMLS_FETCH work
zsuraski authored Aug 5, 2001
600 PHPAPI int cfg_get_double(char *varname, double *result)
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
601 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
602 zval *tmp, var;
5af649e @zsuraski Revert to the old php_ini.c, and reimplement the binary-path searching.
zsuraski authored May 11, 2002
603
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
604 if (zend_hash_find(&configuration_hash, varname, strlen(varname) + 1, (void **) &tmp) == FAILURE) {
605 *result = (double) 0;
42c82bb Revert the last patches.
foobar authored May 9, 2002
606 return FAILURE;
607 }
608 var = *tmp;
609 zval_copy_ctor(&var);
610 convert_to_double(&var);
611 *result = Z_DVAL(var);
612 return SUCCESS;
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
613 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
614 /* }}} */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
615
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
616 /* {{{ cfg_get_string
617 */
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
618 PHPAPI int cfg_get_string(char *varname, char **result)
619 {
42c82bb Revert the last patches.
foobar authored May 9, 2002
620 zval *tmp;
621
7e3b508 ws/style fixes
foobar authored Feb 19, 2003
622 if (zend_hash_find(&configuration_hash, varname, strlen(varname)+1, (void **) &tmp) == FAILURE) {
623 *result = NULL;
42c82bb Revert the last patches.
foobar authored May 9, 2002
624 return FAILURE;
625 }
626 *result = Z_STRVAL_P(tmp);
627 return SUCCESS;
78194a4 @zsuraski - Complete the move to the new INI parser. (Side effect: at last, people
zsuraski authored Oct 30, 2000
628 }
81e2cf0 @rlerdorf Fix folding and clean up some extensions
rlerdorf authored Jun 6, 2001
629 /* }}} */
2cf1b8d * expanded the following constants and made them available in PHP:
Stig Bakken authored Apr 22, 2001
630
631 /*
632 * Local variables:
633 * tab-width: 4
634 * c-basic-offset: 4
635 * indent-tabs-mode: t
636 * End:
78747bd - Don't wrap lines... this is annoying while coding.
Derick Rethans authored Sep 9, 2001
637 * vim600: sw=4 ts=4 fdm=marker
638 * vim<600: sw=4 ts=4
2cf1b8d * expanded the following constants and made them available in PHP:
Stig Bakken authored Apr 22, 2001
639 */
Something went wrong with that request. Please try again.