uw Thu, 15 Oct 2009 20:46:08 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=289684
Log: Making mysqlnd emit no warnings when fetching pooled persistent connections that have timed out or are unusable for any other reason - bug #49761 Bug: http://bugs.php.net/49761 (Assigned) Error while sending CHANGE_USER packet Changed paths: U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_mysqlnd.h U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.h U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_libmysql_compat.h U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h U php/php-src/trunk/ext/mysqli/mysqli_libmysql.h U php/php-src/trunk/ext/mysqli/mysqli_mysqlnd.h U php/php-src/trunk/ext/mysqli/mysqli_nonapi.c U php/php-src/trunk/ext/mysqlnd/mysqlnd.c U php/php-src/trunk/ext/mysqlnd/mysqlnd.h U php/php-src/trunk/ext/mysqlnd/mysqlnd_libmysql_compat.h U php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h
Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -34,3 +34,5 @@ #define mysqli_close(c, is_forced) mysql_close((c)) #define mysqli_stmt_close(c, implicit) mysql_stmt_close((c)) #define mysqli_free_result(r, is_forced) mysql_free_result((r)) +#define mysqli_change_user_silent(c, u, p, d) mysql_change_user((c), (u), (p), (d)) + Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_mysqlnd.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_mysqlnd.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_mysqlnd.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -39,6 +39,7 @@ #define mysqli_free_result(r, implicit) mysqlnd_free_result((r), (implicit)) #define mysqli_bg_store_result(r) mysqlnd_bg_store_result((r)) #define mysqli_async_query(c, q, l) mysqlnd_async_query((c), (q), (l)) +#define mysqli_change_user_silent(c, u, p, d) mysqlnd_change_user((c), (u), (p), (d), TRUE) #define HAVE_STMT_NEXT_RESULT Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c 2009-10-15 20:46:08 UTC (rev 289684) @@ -166,7 +166,7 @@ /* reset variables */ #ifndef MYSQLI_NO_CHANGE_USER_ON_PCONNECT - if (!mysql_change_user(mysql->mysql, username, passwd, dbname)) { + if (!mysqli_change_user_silent(mysql->mysql, username, passwd, dbname)) { #else if (!mysql_ping(mysql->mysql)) { #endif Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c 2009-10-15 20:46:08 UTC (rev 289684) @@ -1825,7 +1825,8 @@ MYSQLND_METHOD(mysqlnd_conn, change_user)(MYSQLND * const conn, const char *user, const char *passwd, - const char *db TSRMLS_DC) + const char *db, + zend_bool silent TSRMLS_DC) { /* User could be max 16 * 3 (utf8), pass is 20 usually, db is up to 64*3 @@ -1839,8 +1840,8 @@ char *p = buffer; DBG_ENTER("mysqlnd_conn::change_user"); - DBG_INF_FMT("conn=%llu user=%s passwd=%s db=%s", - conn->thread_id, user?user:"", passwd?"***":"null", db?db:""); + DBG_INF_FMT("conn=%llu user=%s passwd=%s db=%s silent=%d", + conn->thread_id, user?user:"", passwd?"***":"null", db?db:"", (silent == TRUE)?1:0 ); if (!user) { user = ""; @@ -1877,7 +1878,7 @@ if (PASS != mysqlnd_simple_command(conn, COM_CHANGE_USER, buffer, p - buffer, PROT_LAST /* we will handle the OK packet*/, - FALSE, TRUE TSRMLS_CC)) { + silent, TRUE TSRMLS_CC)) { DBG_RETURN(FAIL); } Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -96,7 +96,7 @@ MYSQLND_THD_ZVAL_PCACHE *zval_cache TSRMLS_DC); -#define mysqlnd_change_user(conn, user, passwd, db) (conn)->m->change_user((conn), (user), (passwd), (db) TSRMLS_CC) +#define mysqlnd_change_user(conn, user, passwd, db, silent) (conn)->m->change_user((conn), (user), (passwd), (db), (silent) TSRMLS_CC) #define mysqlnd_debug(x) _mysqlnd_debug((x) TSRMLS_CC) PHPAPI void _mysqlnd_debug(const char *mode TSRMLS_DC); Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_libmysql_compat.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_libmysql_compat.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_libmysql_compat.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -41,7 +41,7 @@ /* functions */ #define mysql_affected_rows(r) mysqlnd_affected_rows((r)) #define mysql_autocommit(r,m) mysqlnd_autocommit((r),(m)) -#define mysql_change_user(r,a,b,c) mysqlnd_change_user((r), (a), (b), (c)) +#define mysql_change_user(r,a,b,c) mysqlnd_change_user((r), (a), (b), (c), FALSE) #define mysql_character_set_name(c) mysqlnd_character_set_name((c)) #define mysql_close(r) mysqlnd_close((r), MYSQLND_CLOSE_EXPLICIT) #define mysql_commit(r) mysqlnd_commit((r)) Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_structs.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -254,7 +254,7 @@ enum_func_status (*kill_connection)(MYSQLND *conn, unsigned int pid TSRMLS_DC); enum_func_status (*select_db)(MYSQLND * const conn, const char * const db, unsigned int db_len TSRMLS_DC); enum_func_status (*server_dump_debug_information)(MYSQLND * const conn TSRMLS_DC); - enum_func_status (*change_user)(MYSQLND * const conn, const char * user, const char * passwd, const char * db TSRMLS_DC); + enum_func_status (*change_user)(MYSQLND * const conn, const char * user, const char * passwd, const char * db, zend_bool silent TSRMLS_DC); unsigned int (*get_error_no)(const MYSQLND * const conn); const char * (*get_error_str)(const MYSQLND * const conn); Modified: php/php-src/trunk/ext/mysqli/mysqli_libmysql.h =================================================================== --- php/php-src/trunk/ext/mysqli/mysqli_libmysql.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/trunk/ext/mysqli/mysqli_libmysql.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -34,3 +34,5 @@ #define mysqli_close(c, is_forced) mysql_close((c)) #define mysqli_stmt_close(c, implicit) mysql_stmt_close((c)) #define mysqli_free_result(r, is_forced) mysql_free_result((r)) +#define mysqli_change_user_silent(c, u, p, d) mysql_change_user((c), (u), (p), (d)) + Modified: php/php-src/trunk/ext/mysqli/mysqli_mysqlnd.h =================================================================== --- php/php-src/trunk/ext/mysqli/mysqli_mysqlnd.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/trunk/ext/mysqli/mysqli_mysqlnd.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -39,6 +39,7 @@ #define mysqli_free_result(r, implicit) mysqlnd_free_result((r), (implicit)) #define mysqli_bg_store_result(r) mysqlnd_bg_store_result((r)) #define mysqli_async_query(c, q, l) mysqlnd_async_query((c), (q), (l)) +#define mysqli_change_user_silent(c, u, p, d) mysqlnd_change_user((c), (u), (p), (d), TRUE) #define HAVE_STMT_NEXT_RESULT Modified: php/php-src/trunk/ext/mysqli/mysqli_nonapi.c =================================================================== --- php/php-src/trunk/ext/mysqli/mysqli_nonapi.c 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/trunk/ext/mysqli/mysqli_nonapi.c 2009-10-15 20:46:08 UTC (rev 289684) @@ -162,7 +162,7 @@ /* reset variables */ #ifndef MYSQLI_NO_CHANGE_USER_ON_PCONNECT - if (!mysql_change_user(mysql->mysql, username, passwd, dbname)) { + if (!mysqli_change_user_silent(mysql->mysql, username, passwd, dbname)) { #else if (!mysql_ping(mysql->mysql)) { #endif Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c =================================================================== --- php/php-src/trunk/ext/mysqlnd/mysqlnd.c 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c 2009-10-15 20:46:08 UTC (rev 289684) @@ -1825,7 +1825,8 @@ MYSQLND_METHOD(mysqlnd_conn, change_user)(MYSQLND * const conn, const char *user, const char *passwd, - const char *db TSRMLS_DC) + const char *db, + zend_bool silent TSRMLS_DC) { /* User could be max 16 * 3 (utf8), pass is 20 usually, db is up to 64*3 @@ -1839,8 +1840,8 @@ char *p = buffer; DBG_ENTER("mysqlnd_conn::change_user"); - DBG_INF_FMT("conn=%llu user=%s passwd=%s db=%s", - conn->thread_id, user?user:"", passwd?"***":"null", db?db:""); + DBG_INF_FMT("conn=%llu user=%s passwd=%s db=%s silent=%d", + conn->thread_id, user?user:"", passwd?"***":"null", db?db:"", (silent == TRUE)?1:0 ); if (!user) { user = ""; @@ -1877,7 +1878,7 @@ if (PASS != mysqlnd_simple_command(conn, COM_CHANGE_USER, buffer, p - buffer, PROT_LAST /* we will handle the OK packet*/, - FALSE, TRUE TSRMLS_CC)) { + silent, TRUE TSRMLS_CC)) { DBG_RETURN(FAIL); } Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.h =================================================================== --- php/php-src/trunk/ext/mysqlnd/mysqlnd.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -96,7 +96,7 @@ MYSQLND_THD_ZVAL_PCACHE *zval_cache TSRMLS_DC); -#define mysqlnd_change_user(conn, user, passwd, db) (conn)->m->change_user((conn), (user), (passwd), (db) TSRMLS_CC) +#define mysqlnd_change_user(conn, user, passwd, db, silent) (conn)->m->change_user((conn), (user), (passwd), (db), (silent) TSRMLS_CC) #define mysqlnd_debug(x) _mysqlnd_debug((x) TSRMLS_CC) PHPAPI void _mysqlnd_debug(const char *mode TSRMLS_DC); Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_libmysql_compat.h =================================================================== --- php/php-src/trunk/ext/mysqlnd/mysqlnd_libmysql_compat.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_libmysql_compat.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -41,7 +41,7 @@ /* functions */ #define mysql_affected_rows(r) mysqlnd_affected_rows((r)) #define mysql_autocommit(r,m) mysqlnd_autocommit((r),(m)) -#define mysql_change_user(r,a,b,c) mysqlnd_change_user((r), (a), (b), (c)) +#define mysql_change_user(r,a,b,c) mysqlnd_change_user((r), (a), (b), (c), FALSE) #define mysql_character_set_name(c) mysqlnd_character_set_name((c)) #define mysql_close(r) mysqlnd_close((r), MYSQLND_CLOSE_EXPLICIT) #define mysql_commit(r) mysqlnd_commit((r)) Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h =================================================================== --- php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h 2009-10-15 20:19:18 UTC (rev 289683) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_structs.h 2009-10-15 20:46:08 UTC (rev 289684) @@ -254,7 +254,7 @@ enum_func_status (*kill_connection)(MYSQLND *conn, unsigned int pid TSRMLS_DC); enum_func_status (*select_db)(MYSQLND * const conn, const char * const db, unsigned int db_len TSRMLS_DC); enum_func_status (*server_dump_debug_information)(MYSQLND * const conn TSRMLS_DC); - enum_func_status (*change_user)(MYSQLND * const conn, const char * user, const char * passwd, const char * db TSRMLS_DC); + enum_func_status (*change_user)(MYSQLND * const conn, const char * user, const char * passwd, const char * db, zend_bool silent TSRMLS_DC); unsigned int (*get_error_no)(const MYSQLND * const conn); const char * (*get_error_str)(const MYSQLND * const conn);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php