From: Andrey Hristov Date: Tue, 22 Jul 2008 23:43:14 +0000 (+0000) Subject: Two less failing tests, one of which was definitely a leak in mysqli with mysqlnd X-Git-Tag: BEFORE_HEAD_NS_CHANGE~1134 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9f0b69086c14d9b6de2f90e38a95283f815a2f59;p=php Two less failing tests, one of which was definitely a leak in mysqli with mysqlnd and pconn. ext/mysql is being fixed with a better fix for similar leak. --- diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index c767d849a9..b51b70f7db 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -802,6 +802,9 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) mysql->active_result_id = 0; mysql->multi_query = client_flags & CLIENT_MULTI_STATEMENTS? 1:0; /* ensure that the link did not die */ +#if defined(MYSQL_USE_MYSQLND) + mysqlnd_end_psession(mysql->conn); +#endif if (mysql_ping(mysql->conn)) { if (mysql_errno(mysql->conn) == 2006) { if (UG(unicode)) { @@ -1005,15 +1008,6 @@ PHP_FUNCTION(mysql_close) ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", le_link, le_plink); -#ifdef MYSQL_USE_MYSQLND - { - int tmp; - if ((mysql = zend_list_find(Z_RESVAL_PP(mysql_link), &tmp)) && tmp == le_plink) { - mysqlnd_end_psession(mysql->conn); - } - } -#endif - if (id==-1) { /* explicit resource number */ PHPMY_UNBUFFERED_QUERY_CHECK(); zend_list_delete(Z_RESVAL_PP(mysql_link)); diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 6b25127eff..4898e712ea 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -157,6 +157,9 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne mysql->mysql = zend_ptr_stack_pop(&plist->free_links); MyG(num_inactive_persistent)--; +#if defined(MYSQLI_USE_MYSQLND) + mysqlnd_end_psession(mysql->mysql); +#endif /* reset variables */ /* todo: option for ping or change_user */ #if G0