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.
This commit is contained in:
Andrey Hristov 2010-04-20 18:04:24 +00:00
parent 6df7a7d7b5
commit eda9959e36
3 changed files with 6 additions and 0 deletions

View file

@ -1863,6 +1863,10 @@ MYSQLND_METHOD(mysqlnd_conn, change_user)(MYSQLND * const conn,
}
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);

View file

@ -1693,6 +1693,7 @@ php_mysqlnd_chg_user_read(void *_packet, MYSQLND *conn TSRMLS_DC)
}
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),

View file

@ -245,6 +245,7 @@ typedef struct st_mysqlnd_packet_chg_user_resp {
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;