Only use valid server credentials
The server credentials are only used if both the monuser and monpw parameters are defined. This is a sort of a bugfix as a monitor connection could use a username from server but a password from the monitor.
This commit is contained in:
@ -1058,8 +1058,15 @@ mon_connect_to_db(MONITOR* mon, MONITOR_SERVERS *database)
|
|||||||
|
|
||||||
if ((database->con = mysql_init(NULL)))
|
if ((database->con = mysql_init(NULL)))
|
||||||
{
|
{
|
||||||
char *uname = database->server->monuser ? database->server->monuser : mon->user;
|
char *uname = mon->user;
|
||||||
char *passwd = database->server->monpw ? database->server->monpw : mon->password;
|
char *passwd = mon->password;
|
||||||
|
|
||||||
|
if (database->server->monuser[0] && database->server->monpw[0])
|
||||||
|
{
|
||||||
|
uname = database->server->monuser;
|
||||||
|
passwd = database->server->monpw;
|
||||||
|
}
|
||||||
|
|
||||||
char *dpwd = decryptPassword(passwd);
|
char *dpwd = decryptPassword(passwd);
|
||||||
|
|
||||||
mysql_options(database->con, MYSQL_OPT_CONNECT_TIMEOUT, (void *) &mon->connect_timeout);
|
mysql_options(database->con, MYSQL_OPT_CONNECT_TIMEOUT, (void *) &mon->connect_timeout);
|
||||||
|
@ -688,15 +688,9 @@ monitorDatabase(MONITOR *mon, MONITOR_SERVERS *database)
|
|||||||
MYSQL_MONITOR* handle = mon->handle;
|
MYSQL_MONITOR* handle = mon->handle;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
MYSQL_RES *result;
|
MYSQL_RES *result;
|
||||||
char *uname = mon->user;
|
|
||||||
unsigned long int server_version = 0;
|
unsigned long int server_version = 0;
|
||||||
char *server_string;
|
char *server_string;
|
||||||
|
|
||||||
if (!database->server->monuser[0])
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Don't probe servers in maintenance mode */
|
/* Don't probe servers in maintenance mode */
|
||||||
if (SERVER_IN_MAINT(database->server))
|
if (SERVER_IN_MAINT(database->server))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user