cvs: php4 /main php_globals.h php_ini.c

From: Date: Mon, 15 Jan 2001 03:21:05 +0000
Subject: cvs: php4 /main php_globals.h php_ini.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-3634@lists.php.net to get a copy of this message
sas Sun Jan 14 19:21:05 2001 EDT Modified files: /php4/main php_ini.c php_globals.h Log: Defer loading of extensions until all configuration entries have been added to the configuration hash. Index: php4/main/php_ini.c diff -u php4/main/php_ini.c:1.47 php4/main/php_ini.c:1.48 --- php4/main/php_ini.c:1.47 Sat Jan 13 05:10:50 2001 +++ php4/main/php_ini.c Sun Jan 14 19:21:05 2001 @@ -117,7 +117,6 @@ } } - static void php_config_ini_parser_cb(zval *arg1, zval *arg2, int callback_type, void *arg) { switch (callback_type) { @@ -128,9 +127,13 @@ break; } if (!strcasecmp(Z_STRVAL_P(arg1), "extension")) { /* load function module */ - zval dummy; - - php_dl(arg2, MODULE_PERSISTENT, &dummy); + zval copy; + PLS_FETCH(); + + copy = *arg2; + zval_copy_ctor(&copy); + copy.refcount = 0; + zend_llist_add_element(&PG(ini_extension_list), &copy); } else if (!strcasecmp(Z_STRVAL_P(arg1), ZEND_EXTENSION_TOKEN)) { /* load Zend extension */ zend_load_extension(Z_STRVAL_P(arg2)); } else { @@ -144,6 +147,15 @@ } } +static void php_apply_ini_extension_list(void *dummy) +{ + zval *extension = (zval *) dummy; + zval zval; + + php_dl(extension, MODULE_PERSISTENT, &zval); + zval_dtor(extension); +} + int php_init_config(char *php_ini_path_override) { @@ -158,6 +170,8 @@ return FAILURE; } + zend_llist_init(&PG(ini_extension_list), sizeof(zval), NULL, 1); + safe_mode_state = PG(safe_mode); open_basedir = PG(open_basedir); @@ -209,6 +223,9 @@ zend_parse_ini_file(&fh, 1, php_config_ini_parser_cb, NULL); + zend_llist_apply(&PG(ini_extension_list), php_apply_ini_extension_list); + zend_llist_destroy(&PG(ini_extension_list)); + if (php_ini_opened_path) { zval tmp; Index: php4/main/php_globals.h diff -u php4/main/php_globals.h:1.59 php4/main/php_globals.h:1.60 --- php4/main/php_globals.h:1.59 Mon Nov 13 10:54:37 2000 +++ php4/main/php_globals.h Sun Jan 14 19:21:05 2001 @@ -124,6 +124,8 @@ zend_bool during_request_startup; zend_bool allow_url_fopen; + + zend_llist ini_extension_list; };

« previous php.cvs (#3634) next »