andrey                                   Tue, 20 Apr 2010 18:04:24 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=298229

Log:
It is possible that change user tries an user who has old password.
Instead of error message that doesn't say much there is more information now.

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.h
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.h

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2010-04-20 17:51:00 UTC 
(rev 298228)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2010-04-20 18:04:24 UTC 
(rev 298229)
@@ -1863,6 +1863,10 @@
                }
                conn->charset = conn->greet_charset;
                memset(&conn->upsert_status, 0, sizeof(conn->upsert_status));
+       } else if (ret == FAIL && chg_user_resp->server_asked_323_auth == TRUE) 
{
+               /* old authentication with new server  !*/
+               DBG_ERR(mysqlnd_old_passwd);
+               SET_CLIENT_ERROR(conn->error_info, CR_UNKNOWN_ERROR, 
UNKNOWN_SQLSTATE, mysqlnd_old_passwd);
        }

        SET_ERROR_AFF_ROWS(conn);

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c     
2010-04-20 17:51:00 UTC (rev 298228)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.c     
2010-04-20 18:04:24 UTC (rev 298229)
@@ -1693,6 +1693,7 @@
        }

        if (ERROR_MARKER == packet->field_count) {
+               packet->server_asked_323_auth = TRUE;
                php_mysqlnd_read_error_from_line(p, packet->header.size - 1,
                                                                                
 packet->error_info.error,
                                                                                
 sizeof(packet->error_info.error),

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.h
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.h     
2010-04-20 17:51:00 UTC (rev 298228)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_wireprotocol.h     
2010-04-20 18:04:24 UTC (rev 298229)
@@ -245,6 +245,7 @@
        uint16_t                        server_capabilities;
        /* If error packet, we use these */
        MYSQLND_ERROR_INFO      error_info;
+       zend_bool                       server_asked_323_auth;
 } MYSQLND_PACKET_CHG_USER_RESPONSE;



Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2010-04-20 17:51:00 UTC (rev 
298228)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2010-04-20 18:04:24 UTC (rev 
298229)
@@ -1863,6 +1863,10 @@
                }
                conn->charset = conn->greet_charset;
                memset(&conn->upsert_status, 0, sizeof(conn->upsert_status));
+       } else if (ret == FAIL && chg_user_resp->server_asked_323_auth == TRUE) 
{
+               /* old authentication with new server  !*/
+               DBG_ERR(mysqlnd_old_passwd);
+               SET_CLIENT_ERROR(conn->error_info, CR_UNKNOWN_ERROR, 
UNKNOWN_SQLSTATE, mysqlnd_old_passwd);
        }

        SET_ERROR_AFF_ROWS(conn);

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c        2010-04-20 
17:51:00 UTC (rev 298228)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.c        2010-04-20 
18:04:24 UTC (rev 298229)
@@ -1693,6 +1693,7 @@
        }

        if (ERROR_MARKER == packet->field_count) {
+               packet->server_asked_323_auth = TRUE;
                php_mysqlnd_read_error_from_line(p, packet->header.size - 1,
                                                                                
 packet->error_info.error,
                                                                                
 sizeof(packet->error_info.error),

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.h
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.h        2010-04-20 
17:51:00 UTC (rev 298228)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_wireprotocol.h        2010-04-20 
18:04:24 UTC (rev 298229)
@@ -245,6 +245,7 @@
        uint16_t                        server_capabilities;
        /* If error packet, we use these */
        MYSQLND_ERROR_INFO      error_info;
+       zend_bool                       server_asked_323_auth;
 } MYSQLND_PACKET_CHG_USER_RESPONSE;



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to