diff options
Diffstat (limited to 'ext/sybase_ct/php_sybase_ct.c')
| -rw-r--r-- | ext/sybase_ct/php_sybase_ct.c | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/ext/sybase_ct/php_sybase_ct.c b/ext/sybase_ct/php_sybase_ct.c index c6d260c5e..9b922129e 100644 --- a/ext/sybase_ct/php_sybase_ct.c +++ b/ext/sybase_ct/php_sybase_ct.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_sybase_ct.c,v 1.103.2.5 2006/01/01 12:50:16 sniper Exp $ */ +/* $Id: php_sybase_ct.c,v 1.103.2.5.2.6 2006/07/25 09:20:32 thetaphi Exp $ */ #ifdef HAVE_CONFIG_H @@ -37,6 +37,10 @@ static int le_link, le_plink, le_result; #if HAVE_SYBASE_CT +ZEND_DECLARE_MODULE_GLOBALS(sybase) +static PHP_GINIT_FUNCTION(sybase); +static PHP_GSHUTDOWN_FUNCTION(sybase); + zend_function_entry sybase_functions[] = { PHP_FE(sybase_connect, NULL) PHP_FE(sybase_pconnect, NULL) @@ -93,10 +97,21 @@ zend_function_entry sybase_functions[] = { zend_module_entry sybase_module_entry = { STANDARD_MODULE_HEADER, - "sybase_ct", sybase_functions, PHP_MINIT(sybase), PHP_MSHUTDOWN(sybase), PHP_RINIT(sybase), PHP_RSHUTDOWN(sybase), PHP_MINFO(sybase), NO_VERSION_YET, STANDARD_MODULE_PROPERTIES + "sybase_ct", + sybase_functions, + PHP_MINIT(sybase), + PHP_MSHUTDOWN(sybase), + PHP_RINIT(sybase), + PHP_RSHUTDOWN(sybase), + PHP_MINFO(sybase), + NO_VERSION_YET, + PHP_MODULE_GLOBALS(sybase), + PHP_GINIT(sybase), + PHP_GSHUTDOWN(sybase), + NULL, + STANDARD_MODULE_PROPERTIES_EX }; -ZEND_DECLARE_MODULE_GLOBALS(sybase) /* static CS_CONTEXT *context; */ #ifdef COMPILE_DL_SYBASE_CT @@ -146,7 +161,7 @@ static void _free_sybase_result(sybase_result *result) } /* Forward declaration */ -static int php_sybase_finish_results (sybase_result *result); +static int php_sybase_finish_results (sybase_result *result TSRMLS_DC); static void php_free_sybase_result(zend_rsrc_list_entry *rsrc TSRMLS_DC) { @@ -157,7 +172,7 @@ static void php_free_sybase_result(zend_rsrc_list_entry *rsrc TSRMLS_DC) if (result->sybase_ptr->cmd) { ct_cancel(NULL, result->sybase_ptr->cmd, CS_CANCEL_ALL); } - php_sybase_finish_results(result); + php_sybase_finish_results(result TSRMLS_CC); } _free_sybase_result(result); @@ -356,10 +371,9 @@ PHP_INI_BEGIN() PHP_INI_END() -static void php_sybase_init_globals(zend_sybase_globals *sybase_globals) +static PHP_GINIT_FUNCTION(sybase) { long opt; - TSRMLS_FETCH(); if (cs_ctx_alloc(CTLIB_VERSION, &sybase_globals->context)!=CS_SUCCEED || ct_init(sybase_globals->context, CTLIB_VERSION)!=CS_SUCCEED) { return; @@ -407,7 +421,7 @@ static void php_sybase_init_globals(zend_sybase_globals *sybase_globals) } -static void php_sybase_destroy_globals(zend_sybase_globals *sybase_globals) +static PHP_GSHUTDOWN_FUNCTION(sybase) { ct_exit(sybase_globals->context, CS_UNUSED); cs_ctx_drop(sybase_globals->context); @@ -415,8 +429,6 @@ static void php_sybase_destroy_globals(zend_sybase_globals *sybase_globals) PHP_MINIT_FUNCTION(sybase) { - ZEND_INIT_MODULE_GLOBALS(sybase, php_sybase_init_globals, php_sybase_destroy_globals); - REGISTER_INI_ENTRIES(); le_link = zend_register_list_destructors_ex(_close_sybase_link, NULL, "sybase-ct link", module_number); @@ -464,11 +476,10 @@ PHP_RSHUTDOWN_FUNCTION(sybase) } -static int php_sybase_do_connect_internal(sybase_link *sybase, char *host, char *user, char *passwd, char *charset, char *appname) +static int php_sybase_do_connect_internal(sybase_link *sybase, char *host, char *user, char *passwd, char *charset, char *appname TSRMLS_DC) { CS_LOCALE *tmp_locale; long packetsize; - TSRMLS_FETCH(); /* set a CS_CONNECTION record */ if (ct_con_alloc(SybCtG(context), &sybase->connection)!=CS_SUCCEED) { @@ -695,7 +706,7 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) } sybase_ptr = (sybase_link *) malloc(sizeof(sybase_link)); - if (!php_sybase_do_connect_internal(sybase_ptr, host, user, passwd, charset, appname)) { + if (!php_sybase_do_connect_internal(sybase_ptr, host, user, passwd, charset, appname TSRMLS_CC)) { free(sybase_ptr); efree(hashed_details); RETURN_FALSE; @@ -749,7 +760,7 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) * NULL before trying to use it elsewhere . . .) */ memcpy(&sybase, sybase_ptr, sizeof(sybase_link)); - if (!php_sybase_do_connect_internal(sybase_ptr, host, user, passwd, charset, appname)) { + if (!php_sybase_do_connect_internal(sybase_ptr, host, user, passwd, charset, appname TSRMLS_CC)) { memcpy(sybase_ptr, &sybase, sizeof(sybase_link)); efree(hashed_details); RETURN_FALSE; @@ -793,7 +804,7 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) } sybase_ptr = (sybase_link *) emalloc(sizeof(sybase_link)); - if (!php_sybase_do_connect_internal(sybase_ptr, host, user, passwd, charset, appname)) { + if (!php_sybase_do_connect_internal(sybase_ptr, host, user, passwd, charset, appname TSRMLS_CC)) { efree(sybase_ptr); efree(hashed_details); RETURN_FALSE; @@ -1009,12 +1020,11 @@ PHP_FUNCTION(sybase_select_db) /* }}} */ -static int php_sybase_finish_results (sybase_result *result) +static int php_sybase_finish_results(sybase_result *result TSRMLS_DC) { int i, fail; CS_RETCODE retcode; CS_INT restype; - TSRMLS_FETCH(); efree(result->datafmt); efree(result->lengths); @@ -1196,7 +1206,7 @@ static int php_sybase_fetch_result_row (sybase_result *result, int numrows) result->last_retcode= retcode; switch (retcode) { case CS_END_DATA: - retcode = php_sybase_finish_results(result); + retcode = php_sybase_finish_results(result TSRMLS_CC); break; case CS_ROW_FAIL: @@ -1421,7 +1431,7 @@ static void php_sybase_query (INTERNAL_FUNCTION_PARAMETERS, int buffered) */ #if O_TIMM if (result) { - php_sybase_finish_results(result); + php_sybase_finish_results(result TSRMLS_CC); } #endif @@ -1656,7 +1666,7 @@ PHP_FUNCTION(sybase_free_result) if (result->last_retcode != CS_END_DATA && result->last_retcode != CS_END_RESULTS) { /* php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sybase: Cancelling the rest of the results"); */ ct_cancel(NULL, result->sybase_ptr->cmd, CS_CANCEL_ALL); - php_sybase_finish_results(result); + php_sybase_finish_results(result TSRMLS_CC); } zend_list_delete(Z_LVAL_PP(sybase_result_index)); |
