From: Marcus Boerger Date: Fri, 30 May 2003 15:07:02 +0000 (+0000) Subject: - Fix ini handling in ZTS mode X-Git-Tag: RELEASE_1_0_2~515 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=680653fecb5972277f1f57ab1060b896c3807c67;p=php - Fix ini handling in ZTS mode --- diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index ef0d1c4fe6..a77c80da16 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -212,11 +212,7 @@ ZEND_GET_MODULE(pgsql) static int le_link, le_plink, le_result, le_lofp, le_string; -#ifdef ZTS -int pgsql_globals_id; -#else -php_pgsql_globals pgsql_globals; -#endif +ZEND_DECLARE_MODULE_GLOBALS(pgsql); /* {{{ php_pgsql_set_default_link */ @@ -348,22 +344,22 @@ static void _free_result(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* {{{ PHP_INI */ PHP_INI_BEGIN() -STD_PHP_INI_BOOLEAN("pgsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_persistent, php_pgsql_globals, pgsql_globals) -STD_PHP_INI_ENTRY_EX("pgsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateLong, max_persistent, php_pgsql_globals, pgsql_globals, display_link_numbers) -STD_PHP_INI_ENTRY_EX("pgsql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateLong, max_links, php_pgsql_globals, pgsql_globals, display_link_numbers) -STD_PHP_INI_BOOLEAN("pgsql.auto_reset_persistent", "0", PHP_INI_SYSTEM, OnUpdateBool, auto_reset_persistent, php_pgsql_globals, pgsql_globals) -STD_PHP_INI_BOOLEAN("pgsql.ignore_notice", "0", PHP_INI_ALL, OnUpdateBool, ignore_notices, php_pgsql_globals, pgsql_globals) -STD_PHP_INI_BOOLEAN("pgsql.log_notice", "0", PHP_INI_ALL, OnUpdateBool, log_notices, php_pgsql_globals, pgsql_globals) +STD_PHP_INI_BOOLEAN( "pgsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_persistent, zend_pgsql_globals, pgsql_globals) +STD_PHP_INI_ENTRY_EX("pgsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateLong, max_persistent, zend_pgsql_globals, pgsql_globals, display_link_numbers) +STD_PHP_INI_ENTRY_EX("pgsql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateLong, max_links, zend_pgsql_globals, pgsql_globals, display_link_numbers) +STD_PHP_INI_BOOLEAN( "pgsql.auto_reset_persistent", "0", PHP_INI_SYSTEM, OnUpdateBool, auto_reset_persistent, zend_pgsql_globals, pgsql_globals) +STD_PHP_INI_BOOLEAN( "pgsql.ignore_notice", "0", PHP_INI_ALL, OnUpdateBool, ignore_notices, zend_pgsql_globals, pgsql_globals) +STD_PHP_INI_BOOLEAN( "pgsql.log_notice", "0", PHP_INI_ALL, OnUpdateBool, log_notices, zend_pgsql_globals, pgsql_globals) PHP_INI_END() /* }}} */ /* {{{ php_pgsql_init_globals */ -static void php_pgsql_init_globals(php_pgsql_globals *pgsql_globals_p TSRMLS_DC) +static void php_pgsql_init_globals(zend_pgsql_globals *pgsql_globals) { - PGG(num_persistent) = 0; + memset(pgsql_globals, 0, sizeof(zend_pgsql_globals)); /* Initilize notice message hash at MINIT only */ - zend_hash_init_ex(&PGG(notices), 0, NULL, PHP_PGSQL_NOTICE_PTR_DTOR, 1, 0); + zend_hash_init_ex(&pgsql_globals->notices, 0, NULL, PHP_PGSQL_NOTICE_PTR_DTOR, 1, 0); } /* }}} */ @@ -371,11 +367,7 @@ static void php_pgsql_init_globals(php_pgsql_globals *pgsql_globals_p TSRMLS_DC) */ PHP_MINIT_FUNCTION(pgsql) { -#ifdef ZTS - ts_allocate_id(&pgsql_globals_id, sizeof(php_pgsql_globals), (ts_allocate_ctor) php_pgsql_init_globals, NULL); -#else - php_pgsql_init_globals(&pgsql_globals TSRMLS_CC); -#endif + ZEND_INIT_MODULE_GLOBALS(pgsql, php_pgsql_init_globals, NULL); REGISTER_INI_ENTRIES(); diff --git a/ext/pgsql/php_pgsql.h b/ext/pgsql/php_pgsql.h index 429cefe53d..74b4e2fabc 100644 --- a/ext/pgsql/php_pgsql.h +++ b/ext/pgsql/php_pgsql.h @@ -236,7 +236,7 @@ typedef struct _php_pgsql_notice { size_t len; } php_pgsql_notice; -typedef struct { +ZEND_BEGIN_MODULE_GLOBALS(pgsql) long default_link; /* default link when connection is omitted */ long num_links,num_persistent; long max_links,max_persistent; @@ -245,15 +245,14 @@ typedef struct { int le_lofp,le_string; int ignore_notices,log_notices; HashTable notices; /* notice message for each connection */ -} php_pgsql_globals; +ZEND_END_MODULE_GLOBALS(pgsql) +ZEND_EXTERN_MODULE_GLOBALS(pgsql) #ifdef ZTS -# define PGG(v) TSRMG(pgsql_globals_id, php_pgsql_globals *, v) -extern int pgsql_globals_id; +# define PGG(v) TSRMG(pgsql_globals_id, zend_pgsql_globals *, v) #else # define PGG(v) (pgsql_globals.v) -extern php_pgsql_globals pgsql_globals; #endif #endif diff --git a/ext/pgsql/tests/09notice.phpt b/ext/pgsql/tests/09notice.phpt index ef56b8dadc..55bbd28ed1 100644 --- a/ext/pgsql/tests/09notice.phpt +++ b/ext/pgsql/tests/09notice.phpt @@ -2,12 +2,13 @@ PostgreSQL notice function --SKIPIF-- +--INI-- +pgsql.log_notice=1 +pgsql.ignore_notices=0 --FILE--