CVS update: php3/functions

From: Date: Sat, 17 Oct 1998 20:40:56 +0000
Subject: CVS update: php3/functions
Groups: php.dev 
Request: Send a blank email to php-dev+get-1870@lists.php.net to get a copy of this message
Date: Saturday October 17, 1998 @ 16:40 Author: shane Update of /repository/php3/functions In directory asf:/u2/tmp/cvs-serv29795/functions Modified Files: mysql.c Log Message: make mysql compilable with both 3.0 and 3.1 Index: php3/functions/mysql.c diff -c php3/functions/mysql.c:1.172 php3/functions/mysql.c:1.173 *** php3/functions/mysql.c:1.172 Mon Oct 5 11:10:24 1998 --- php3/functions/mysql.c Sat Oct 17 16:40:54 1998 *************** *** 27,33 **** +----------------------------------------------------------------------+ */ ! /* $Id: mysql.c,v 1.172 1998/10/05 15:10:24 zeev Exp $ */ /* TODO: --- 27,33 ---- +----------------------------------------------------------------------+ */ ! /* $Id: mysql.c,v 1.173 1998/10/17 20:40:54 shane Exp $ */ /* TODO: *************** *** 35,48 **** * ? Safe mode implementation */ ! #if defined(COMPILE_DL) ! #include "dl/phpdl.h" #endif ! #if defined(THREAD_SAFE) ! #include "tls.h" ! DWORD MySQLTls; ! static int numthreads=0; ! void *mysql_mutex; #endif #if WIN32|WINNT --- 35,56 ---- * ? Safe mode implementation */ ! #define IS_EXT_MODULE ! #ifdef THREAD_SAFE ! # ifndef PHP_31 ! # undef THREAD_SAFE /*no need in 3.0*/ ! # else ! # include "tls.h" ! DWORD MySQLTls; ! static int numthreads=0; ! void *mysql_mutex; ! # endif #endif ! ! #if defined(COMPILE_DL) && !defined(PHP_31) ! # include "dl/phpdl.h" ! #else ! # include "../phpdl.h" #endif #if WIN32|WINNT *************** *** 60,66 **** #include "php.h" #include "internal_functions.h" ! #include "php3_string.h" #include "php3_mysql.h" #if HAVE_MYSQL --- 68,78 ---- #include "php.h" #include "internal_functions.h" ! #if PHP_31 ! # include "ext/standard/php3_string.h" ! #else ! # include "php3_string.h" ! #endif #include "php3_mysql.h" #if HAVE_MYSQL *************** *** 141,147 **** "MySQL", mysql_functions, php3_minit_mysql, php3_mshutdown_mysql, php3_rinit_mysql, NULL, php3_info_mysql, STANDARD_MODULE_PROPERTIES }; ! #if COMPILE_DL DLEXPORT php3_module_entry *get_module(void) { return &mysql_module_entry; } #endif --- 153,159 ---- "MySQL", mysql_functions, php3_minit_mysql, php3_mshutdown_mysql, php3_rinit_mysql, NULL, php3_info_mysql, STANDARD_MODULE_PROPERTIES }; ! #ifdef COMPILE_DL DLEXPORT php3_module_entry *get_module(void) { return &mysql_module_entry; } #endif *************** *** 155,164 **** }mysql_global_struct; #define MySQL_GLOBAL(a) mysql_globals->a ! ! #define MySQL_TLS_VARS \ ! mysql_global_struct *mysql_globals; \ ! mysql_globals=TlsGetValue(MySQLTls); #else #define MySQL_GLOBAL(a) a --- 167,173 ---- }mysql_global_struct; #define MySQL_GLOBAL(a) mysql_globals->a ! #define MySQL_TLS_VARS mysql_global_struct *mysql_globals=TlsGetValue(MySQLTls); #else #define MySQL_GLOBAL(a) a *************** *** 223,239 **** { #if defined(THREAD_SAFE) mysql_global_struct *mysql_globals; ! CREATE_MUTEX(mysql_mutex,"MySQL_TLS"); ! SET_MUTEX(mysql_mutex); numthreads++; if (numthreads==1){ ! if ((MySQLTls=TlsAlloc())==0xFFFFFFFF){ ! FREE_MUTEX(mysql_mutex); ! return 0; ! }} ! FREE_MUTEX(mysql_mutex); ! mysql_globals = (mysql_global_struct *) LocalAlloc(LPTR, sizeof(mysql_global_struct)); ! TlsSetValue(MySQLTls, (void *) mysql_globals); #endif if (cfg_get_long("mysql.allow_persistent",&MySQL_GLOBAL(php3_mysql_module).allow_persistent)==FAILURE) { --- 232,252 ---- { #if defined(THREAD_SAFE) mysql_global_struct *mysql_globals; ! PHP3_MUTEX_ALLOC(mysql_mutex); ! PHP3_MUTEX_LOCK(mysql_mutex); numthreads++; if (numthreads==1){ ! if (!PHP3_TLS_PROC_STARTUP(MySQLTls)){ ! PHP3_MUTEX_UNLOCK(mysql_mutex); ! PHP3_MUTEX_FREE(mysql_mutex); ! return FAILURE; ! } ! } ! PHP3_MUTEX_UNLOCK(mysql_mutex); ! if(!PHP3_TLS_THREAD_INIT(MySQLTls,mysql_globals,mysql_global_struct)){ ! PHP3_MUTEX_FREE(mysql_mutex); ! return FAILURE; ! } #endif if (cfg_get_long("mysql.allow_persistent",&MySQL_GLOBAL(php3_mysql_module).allow_persistent)==FAILURE) { *************** *** 289,307 **** int php3_mshutdown_mysql(void){ ! #if defined(THREAD_SAFE) ! mysql_global_struct *mysql_globals; ! mysql_globals = TlsGetValue(MySQLTls); ! if (mysql_globals != 0) ! LocalFree((HLOCAL) mysql_globals); ! SET_MUTEX(mysql_mutex); numthreads--; ! if (!numthreads){ ! if (!TlsFree(MySQLTls)){ ! FREE_MUTEX(mysql_mutex); ! return 0; ! }} ! FREE_MUTEX(mysql_mutex); #endif return SUCCESS; } --- 302,319 ---- int php3_mshutdown_mysql(void){ ! MySQL_TLS_VARS; ! #ifdef THREAD_SAFE ! PHP3_TLS_THREAD_FREE(mysql_globals); ! PHP3_MUTEX_LOCK(mysql_mutex); numthreads--; ! if (numthreads<1) { ! PHP3_TLS_PROC_SHUTDOWN(MySQLTls); ! PHP3_MUTEX_UNLOCK(mysql_mutex); ! PHP3_MUTEX_FREE(mysql_mutex); ! return SUCCESS; ! } ! PHP3_MUTEX_UNLOCK(mysql_mutex); #endif return SUCCESS; } *************** *** 367,372 **** --- 379,386 ---- MYSQL *mysql; MySQL_TLS_VARS; + /*FIXME need to deal with php3_ini, not available in external modules*/ + #ifndef PHP_31 if (php3_ini.sql_safe_mode) { if (ARG_COUNT(ht)>0) { php3_error(E_NOTICE,"SQL safe mode in effect - ignoring host/user/password information"); *************** *** 376,382 **** hashed_details_length = strlen(user)+5+3; hashed_details = (char *) emalloc(hashed_details_length+1); sprintf(hashed_details,"mysql__%s_",user); ! } else { host = MySQL_GLOBAL(php3_mysql_module).default_host; user = MySQL_GLOBAL(php3_mysql_module).default_user; passwd = MySQL_GLOBAL(php3_mysql_module).default_password; --- 390,398 ---- hashed_details_length = strlen(user)+5+3; hashed_details = (char *) emalloc(hashed_details_length+1); sprintf(hashed_details,"mysql__%s_",user); ! } else ! #endif ! { host = MySQL_GLOBAL(php3_mysql_module).default_host; user = MySQL_GLOBAL(php3_mysql_module).default_user; passwd = MySQL_GLOBAL(php3_mysql_module).default_password; *************** *** 535,541 **** --- 551,561 ---- int type,link; void *ptr; + #ifdef THREAD_SAFE + if (index_ptr->type != _php3_le_index_ptr()) { + #else if (index_ptr->type != le_index_ptr) { + #endif RETURN_FALSE; } link = (int) index_ptr->ptr; *************** *** 574,580 **** --- 594,604 ---- /* add it to the hash */ new_index_ptr.ptr = (void *) return_value->value.lval; + #ifdef THREAD_SAFE + new_index_ptr.type = _php3_le_index_ptr(); + #else new_index_ptr.type = le_index_ptr; + #endif if (_php3_hash_update(list,hashed_details,hashed_details_length+1,(void *) &new_index_ptr, sizeof(list_entry), NULL)==FAILURE) { efree(hashed_details); RETURN_FALSE; *************** *** 1281,1289 **** } if (sql_row[field_offset]) { if (php3_ini.magic_quotes_runtime) { return_value->value.str.val = _php3_addslashes(sql_row[field_offset],sql_row_lengths[field_offset],&return_value->value.str.len,0); ! } else { return_value->value.str.len = sql_row_lengths[field_offset]; return_value->value.str.val = (char *) safe_estrndup(sql_row[field_offset],return_value->value.str.len); } --- 1305,1316 ---- } if (sql_row[field_offset]) { + #ifndef PHP_31 /* FIXME: cannot access php3_ini in modules */ if (php3_ini.magic_quotes_runtime) { return_value->value.str.val = _php3_addslashes(sql_row[field_offset],sql_row_lengths[field_offset],&return_value->value.str.len,0); ! } else ! #endif ! { return_value->value.str.len = sql_row_lengths[field_offset]; return_value->value.str.val = (char *) safe_estrndup(sql_row[field_offset],return_value->value.str.len); } *************** *** 1382,1393 **** for (i=0; i<num_fields; i++) { if (mysql_row[i]) { if (php3_ini.magic_quotes_runtime) { int len; char *tmp=_php3_addslashes(mysql_row[i],mysql_row_lengths[i],&len,0); add_index_stringl(return_value, i, tmp, len, 0); ! } else { add_index_stringl(return_value, i, mysql_row[i], mysql_row_lengths[i], 1); } } else { --- 1409,1423 ---- for (i=0; i<num_fields; i++) { if (mysql_row[i]) { + #ifndef PHP_31 /* FIXME cannot access php3_ini in modules */ if (php3_ini.magic_quotes_runtime) { int len; char *tmp=_php3_addslashes(mysql_row[i],mysql_row_lengths[i],&len,0); add_index_stringl(return_value, i, tmp, len, 0); ! } else ! #endif ! { add_index_stringl(return_value, i, mysql_row[i], mysql_row_lengths[i], 1); } } else { *************** *** 1437,1448 **** mysql_field_seek(mysql_result,0); for (mysql_field=mysql_fetch_field(mysql_result),i=0; mysql_field; mysql_field=mysql_fetch_field(mysql_result),i++) { if (mysql_row[i]) { if (php3_ini.magic_quotes_runtime) { int len; char *tmp=_php3_addslashes(mysql_row[i],mysql_row_lengths[i],&len,0); add_get_index_stringl(return_value, i, tmp, len, (void **) &pval_ptr, 0); ! } else { add_get_index_stringl(return_value, i, mysql_row[i], mysql_row_lengths[i], (void **) &pval_ptr, 1); } _php3_hash_pointer_update(return_value->value.ht, mysql_field->name, strlen(mysql_field->name)+1, pval_ptr); --- 1467,1481 ---- mysql_field_seek(mysql_result,0); for (mysql_field=mysql_fetch_field(mysql_result),i=0; mysql_field; mysql_field=mysql_fetch_field(mysql_result),i++) { if (mysql_row[i]) { + #ifndef PHP_31 /* FIXME cannot access php3_ini in modules */ if (php3_ini.magic_quotes_runtime) { int len; char *tmp=_php3_addslashes(mysql_row[i],mysql_row_lengths[i],&len,0); add_get_index_stringl(return_value, i, tmp, len, (void **) &pval_ptr, 0); ! } else ! #endif ! { add_get_index_stringl(return_value, i, mysql_row[i], mysql_row_lengths[i], (void **) &pval_ptr, 1); } _php3_hash_pointer_update(return_value->value.ht, mysql_field->name, strlen(mysql_field->name)+1, pval_ptr); -- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net For help: php-dev-help@lists.php.net

« previous php.dev (#1870) next »