CVS update: php3/functions
| From: | shane | 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