cvs: php-src /ext/mysql php_mysql.c /ext/mysqli mysqli.c

From: Date: Mon, 25 Jun 2007 20:19:30 +0000
Subject: cvs: php-src /ext/mysql php_mysql.c /ext/mysqli mysqli.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-44956@lists.php.net to get a copy of this message
scottmac Mon Jun 25 20:19:30 2007 UTC Modified files: /php-src/ext/mysql php_mysql.c /php-src/ext/mysqli mysqli.c Log: MFB: Fixed bug #41350 (my_thread_global_end() error during request shutdown on Windows). http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql.c?r1=1.237&r2=1.238&diff_format=u Index: php-src/ext/mysql/php_mysql.c diff -u php-src/ext/mysql/php_mysql.c:1.237 php-src/ext/mysql/php_mysql.c:1.238 --- php-src/ext/mysql/php_mysql.c:1.237 Thu Jun 7 12:17:16 2007 +++ php-src/ext/mysql/php_mysql.c Mon Jun 25 20:19:30 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mysql.c,v 1.237 2007/06/07 12:17:16 tony2001 Exp $ */ +/* $Id: php_mysql.c,v 1.238 2007/06/25 20:19:30 scottmac Exp $ */ /* TODO: * @@ -395,6 +395,10 @@ REGISTER_LONG_CONSTANT("MYSQL_CLIENT_INTERACTIVE", CLIENT_INTERACTIVE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQL_CLIENT_IGNORE_SPACE", CLIENT_IGNORE_SPACE, CONST_CS | CONST_PERSISTENT); + if (mysql_server_init(0, NULL, NULL)) { + return FAILURE; + } + return SUCCESS; } /* }}} */ @@ -403,6 +407,16 @@ */ PHP_MSHUTDOWN_FUNCTION(mysql) { +#ifdef PHP_WIN32 + unsigned long client_ver = mysql_get_client_version; + /* Can't call mysql_server_end() multiple times prior to 5.0.42 on Windows */ + if ((client_ver > 50042 && client_ver < 50100) || client_ver > 50122) { + mysql_server_end(); + } +#else + mysql_server_end(); +#endif + UNREGISTER_INI_ENTRIES(); return SUCCESS; } @@ -412,6 +426,11 @@ */ PHP_RINIT_FUNCTION(mysql) { +#ifdef ZTS + if (mysql_thread_init()) { + return FAILURE; + } +#endif MySG(default_link)=-1; MySG(num_links) = MySG(num_persistent); /* Reset connect error/errno on every request */ @@ -426,6 +445,9 @@ */ PHP_RSHUTDOWN_FUNCTION(mysql) { +#ifdef ZTS + mysql_thread_end(); +#endif if (MySG(trace_mode)) { if (MySG(result_allocated)){ php_error_docref("function.mysql-free-result" TSRMLS_CC, E_WARNING, "%lu result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query()", MySG(result_allocated)); http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli.c?r1=1.105&r2=1.106&diff_format=u Index: php-src/ext/mysqli/mysqli.c diff -u php-src/ext/mysqli/mysqli.c:1.105 php-src/ext/mysqli/mysqli.c:1.106 --- php-src/ext/mysqli/mysqli.c:1.105 Fri Mar 23 08:21:08 2007 +++ php-src/ext/mysqli/mysqli.c Mon Jun 25 20:19:30 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <georg@php.net> | +----------------------------------------------------------------------+ - $Id: mysqli.c,v 1.105 2007/03/23 08:21:08 tony2001 Exp $ + $Id: mysqli.c,v 1.106 2007/06/25 20:19:30 scottmac Exp $ */ #ifdef HAVE_CONFIG_H @@ -662,6 +662,10 @@ REGISTER_LONG_CONSTANT("MYSQLI_REPORT_ALL", MYSQLI_REPORT_ALL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_REPORT_OFF", 0, CONST_CS | CONST_PERSISTENT); + if (mysql_server_init(0, NULL, NULL)) { + return FAILURE; + } + return SUCCESS; } /* }}} */ @@ -670,6 +674,16 @@ */ PHP_MSHUTDOWN_FUNCTION(mysqli) { +#ifdef PHP_WIN32 + unsigned long client_ver = mysql_get_client_version; + /* Can't call mysql_server_end() multiple times prior to 5.0.42 on Windows */ + if ((client_ver > 50042 && client_ver < 50100) || client_ver > 50122) { + mysql_server_end(); + } +#else + mysql_server_end(); +#endif + zend_hash_destroy(&mysqli_driver_properties); zend_hash_destroy(&mysqli_result_properties); zend_hash_destroy(&mysqli_stmt_properties); @@ -686,6 +700,11 @@ */ PHP_RINIT_FUNCTION(mysqli) { +#ifdef ZTS + if (mysql_thread_init()) { + return FAILURE; + } +#endif MyG(error_msg) = NULL; MyG(error_no) = 0; @@ -697,6 +716,9 @@ */ PHP_RSHUTDOWN_FUNCTION(mysqli) { +#ifdef ZTS + mysql_thread_end(); +#endif if (MyG(error_msg)) { efree(MyG(error_msg)); }

« previous php.cvs (#44956) next »