diff --git a/include/maxscale/authenticator.h b/include/maxscale/authenticator.h index 4c9653376..d339098cc 100644 --- a/include/maxscale/authenticator.h +++ b/include/maxscale/authenticator.h @@ -131,6 +131,7 @@ typedef struct mxs_authenticator #define MXS_AUTH_SSL_COMPLETE 6 /**< SSL connection complete or not required */ #define MXS_AUTH_NO_SESSION 7 #define MXS_AUTH_BAD_HANDSHAKE 8 /**< Malformed client packet */ +#define MXS_AUTH_FAILED_WRONG_PASSWORD 9 /**< Client provided wrong password */ /** Return values for the loadusers entry point */ #define MXS_AUTH_LOADUSERS_OK 0 /**< Users loaded successfully */ diff --git a/server/modules/authenticator/MySQLAuth/mysql_auth.c b/server/modules/authenticator/MySQLAuth/mysql_auth.c index 5422591b3..162ab5872 100644 --- a/server/modules/authenticator/MySQLAuth/mysql_auth.c +++ b/server/modules/authenticator/MySQLAuth/mysql_auth.c @@ -304,13 +304,17 @@ mysql_auth_authenticate(DCB *dcb) } else if (dcb->service->log_auth_warnings) { - // Enough to hold the error message and the database name - char extra[256] = {}; + // The default failure is a `User not found` one + char extra[256] = "User not found."; if (auth_ret == MXS_AUTH_FAILED_DB) { snprintf(extra, sizeof(extra), "Unknown database: %s", client_data->db); } + else if (auth_ret == MXS_AUTH_FAILED_WRONG_PASSWORD) + { + strcpy(extra, "Wrong password."); + } if (dcb->path) {