int main(int argc, char *argv[]) { PARSE_CLI(argc, argv); MYSQL_CONNECT(); TEST_INTER_JOIN(); return 0; }
string process_sql_monitor(DeviceInfo info, MYSQL *mysql) { MYSQL test_mysql; MYSQL_RES *mysql_res, *test_res; MYSQL_ROW mysql_row, test_row; string value = "U"; string query = string("SELECT host, user, password, query, column_num, timeout FROM tests_sql WHERE id = ") + inttostr(info.test_id); mysql_res = db_query(mysql, &info, query); // if the sql test exists if (mysql_res && (mysql_num_rows(mysql_res) == 1) && (mysql_row = mysql_fetch_row(mysql_res)) && (mysql_row[0] != NULL)) { string host = expand_parameters(info, mysql_row[0]); string user = expand_parameters(info, mysql_row[1]); string password = expand_parameters(info, mysql_row[2]); string test_query = expand_parameters(info, mysql_row[3]); debuglogger(DEBUG_GATHERER, LEVEL_DEBUG, &info, "MySQL Query Test ({'" + host + "'}, {'" + user + "'}, {'" + password + "'}, '" + test_query + "', '" + string(mysql_row[4]) + "')"); netmrg_mutex_lock(lkMySQL); mysql_init(&test_mysql); uint timeout = strtoint(mysql_row[5]); mysql_options(&test_mysql, MYSQL_OPT_CONNECT_TIMEOUT, (const char *) &timeout); if (!(MYSQL_CONNECT(&test_mysql,host.c_str(),user.c_str(),password.c_str(), NULL, 0, NULL, 0))) { netmrg_mutex_unlock(lkMySQL); debuglogger(DEBUG_GATHERER, LEVEL_WARNING, &info, "Test MySQL Connection Failure."); } else { netmrg_mutex_unlock(lkMySQL); if (mysql_query(&test_mysql, test_query.c_str())) { debuglogger(DEBUG_GATHERER, LEVEL_WARNING, &info, "Test MySQL Query Failed (" + test_query + ")"); } else if (!(test_res = mysql_store_result(&test_mysql))) { debuglogger(DEBUG_GATHERER, LEVEL_WARNING, &info, "Test MySQL Store Result failed."); } else { test_row = mysql_fetch_row(test_res); if (test_row != NULL) { if (test_row[strtoint(mysql_row[4])] != NULL) { value = string(test_row[strtoint(mysql_row[4])]); } else { debuglogger(DEBUG_GATHERER, LEVEL_NOTICE, &info, "Selected column is NULL."); } } else { debuglogger(DEBUG_GATHERER, LEVEL_NOTICE, &info, "There are no rows."); } mysql_free_result(test_res); mysql_close(&test_mysql); } } } else { debuglogger(DEBUG_MONITOR, LEVEL_WARNING, &info, "Unknown SQL Test (" + inttostr(info.test_id) + ")."); } mysql_free_result(mysql_res); return value; }