]> granicus.if.org Git - php/commitdiff
- Fix ini handling in ZTS mode
authorMarcus Boerger <helly@php.net>
Fri, 30 May 2003 15:07:02 +0000 (15:07 +0000)
committerMarcus Boerger <helly@php.net>
Fri, 30 May 2003 15:07:02 +0000 (15:07 +0000)
ext/pgsql/pgsql.c
ext/pgsql/php_pgsql.h
ext/pgsql/tests/09notice.phpt

index ef0d1c4fe657d52059bc37dc5550243ac2fc4f21..a77c80da16796ca5997fa0ce5a503d507f11f6ba 100644 (file)
@@ -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();
        
index 429cefe53d399ec583df99390d8095446ddd5597..74b4e2fabc22f0f4487741d76b8af724d2e23a13 100644 (file)
@@ -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
index ef56b8dadc88634d5bc9dc6345c2b976a31fe6b7..55bbd28ed1b86250d0ed417021c2ef94bf5f79b1 100644 (file)
@@ -2,12 +2,13 @@
 PostgreSQL notice function
 --SKIPIF--
 <?php include("skipif.inc"); ?>
+--INI--
+pgsql.log_notice=1
+pgsql.ignore_notices=0
 --FILE--
 <?php
 include 'config.inc';
 
-ini_set('pgsql.log_notice',1);
-
 $db = pg_connect($conn_str);
 pg_query($db, "BEGIN;");
 pg_query($db, "BEGIN;");