mysql_client.c: Changed the error message and, in the case of a failed auth while using a password, set the first byte to 1 in dcb->data->client_sha1
This commit is contained in:
Markus Makela 2014-10-02 18:40:25 +03:00
parent bb11f6236f
commit b102d69ef9

View File

@ -488,6 +488,10 @@ static int gw_mysql_do_authentication(DCB *dcb, GWBUF *queue) {
if (auth_ret == 0)
{
dcb->user = strdup(client_data->user);
}else if(auth_token_len > 0)
{
/**User was using a password, add a notification for that*/
stage1_hash[0] = 1;
}
return auth_ret;
@ -654,12 +658,22 @@ int gw_read_client_event(
protocol->owner_dcb->fd,
pthread_self())));
char errstr [256];
MYSQL_session *mysqlsession = dcb->data;
sprintf(errstr,
"Access denied for user '%s'@'%s' (using password: %s)",
mysqlsession->user,
dcb->remote,
mysqlsession->client_sha1[0] > 0 ? "YES":"NO");
/** Send ERR 1045 to client */
mysql_send_auth_error(
dcb,
2,
0,
"Authorization failed");
errstr);
dcb_close(dcb);
}