X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fmysql.c;fp=src%2Fmysql.c;h=d2d0b4bfc57a9ad695b592835cadd4707935fac0;hp=6f2d69abbfd6501b830830f25c27a15b0ed4d5de;hb=9cbc0fe63abd2bd3658b42f19ee144f803b658fa;hpb=d21cf7f8376b6ce5dd3bbeb41da3aff0e85c6e28 diff --git a/src/mysql.c b/src/mysql.c index 6f2d69ab..d2d0b4bf 100644 --- a/src/mysql.c +++ b/src/mysql.c @@ -58,7 +58,7 @@ struct mysql_database_s /* {{{ */ _Bool slave_sql_running; MYSQL *con; - int state; + _Bool is_connected; }; typedef struct mysql_database_s mysql_database_t; /* }}} */ @@ -237,30 +237,28 @@ static int mysql_config (oconfig_item_t *ci) /* {{{ */ static MYSQL *getconnection (mysql_database_t *db) { - if (db->state != 0) + if (db->is_connected) { - int err; - if ((err = mysql_ping (db->con)) != 0) - { - /* Assured by "mysql_config_database" */ - assert (db->instance != NULL); - WARNING ("mysql_ping failed for instance \"%s\": %s", - db->instance, - mysql_error (db->con)); - db->state = 0; - } - else - { - db->state = 1; + int status; + + status = mysql_ping (db->con); + if (status == 0) return (db->con); - } + + WARNING ("mysql plugin: Lost connection to instance \"%s\": %s", + db->instance, mysql_error (db->con)); } + db->is_connected = 0; - if ((db->con = mysql_init (db->con)) == NULL) + if (db->con == NULL) { - ERROR ("mysql_init failed: %s", mysql_error (db->con)); - db->state = 0; - return (NULL); + db->con = mysql_init (NULL); + if (db->con == NULL) + { + ERROR ("mysql plugin: mysql_init failed: %s", + mysql_error (db->con)); + return (NULL); + } } if (mysql_real_connect (db->con, db->host, db->user, db->pass, @@ -271,20 +269,18 @@ static MYSQL *getconnection (mysql_database_t *db) (db->database != NULL) ? db->database : "", (db->host != NULL) ? db->host : "localhost", mysql_error (db->con)); - db->state = 0; return (NULL); } - else - { - INFO ("mysql plugin: Successfully connected to database %s " - "at server %s (server version: %s, protocol version: %d)", - (db->database != NULL) ? db->database : "", - mysql_get_host_info (db->con), - mysql_get_server_info (db->con), - mysql_get_proto_info (db->con)); - db->state = 1; - return (db->con); - } + + INFO ("mysql plugin: Successfully connected to database %s " + "at server %s (server version: %s, protocol version: %d)", + (db->database != NULL) ? db->database : "", + mysql_get_host_info (db->con), + mysql_get_server_info (db->con), + mysql_get_proto_info (db->con)); + + db->is_connected = 1; + return (db->con); } /* static MYSQL *getconnection (mysql_database_t *db) */ static void set_host (mysql_database_t *db, char *buf, size_t buflen)