]> granicus.if.org Git - php/commitdiff
Handle failed connections right
authorJohannes Schlüter <johannes@php.net>
Wed, 1 Oct 2008 19:46:58 +0000 (19:46 +0000)
committerJohannes Schlüter <johannes@php.net>
Wed, 1 Oct 2008 19:46:58 +0000 (19:46 +0000)
ext/mysqlnd/mysqlnd.c

index a68808c357d6a3a587ba7eca3aa92edec00774e9..828890e4a0334504a791213b704cfb5a9de14762 100644 (file)
@@ -1261,10 +1261,12 @@ MYSQLND_METHOD(mysqlnd_conn, close)(MYSQLND * conn, enum_connection_close_type c
        DBG_ENTER("mysqlnd_conn::close");
        DBG_INF_FMT("conn=%llu", conn->thread_id);
 
-       MYSQLND_INC_CONN_STATISTIC(&conn->stats, stat);
-       MYSQLND_DEC_CONN_STATISTIC(&conn->stats, STAT_OPENED_CONNECTIONS);
-       if (conn->persistent) {
-               MYSQLND_DEC_CONN_STATISTIC(&conn->stats, STAT_OPENED_PERSISTENT_CONNECTIONS);
+       if (conn->state >= CONN_READY) {
+               MYSQLND_INC_CONN_STATISTIC(&conn->stats, stat);
+               MYSQLND_DEC_CONN_STATISTIC(&conn->stats, STAT_OPENED_CONNECTIONS);
+               if (conn->persistent) {
+                       MYSQLND_DEC_CONN_STATISTIC(&conn->stats, STAT_OPENED_PERSISTENT_CONNECTIONS);
+               }
        }
 
        /*