bool DatabaseMySQL::connect(bool _reconnect) { if(_reconnect) { std::clog << "WARNING: MYSQL Lost connection, attempting to reconnect..." << std::endl; if(++m_attempts > MAX_RECONNECT_ATTEMPTS) { GlobalEventMap recordEvents = g_globalEvents->getEventMap(GLOBALEVENT_LOSTCONNECTION); for(GlobalEventMap::iterator it = recordEvents.begin(); it != recordEvents.end(); ++it) it->second->executeEvent(); std::clog << "Failed connection to database - maximum reconnect attempts passed." << std::endl; return false; } } if(mysql_real_connect(&m_handle, g_config.getString(ConfigManager::SQL_HOST).c_str(), g_config.getString( ConfigManager::SQL_USER).c_str(), g_config.getString(ConfigManager::SQL_PASS).c_str(), g_config.getString( ConfigManager::SQL_DB).c_str(), g_config.getNumber(ConfigManager::SQL_PORT), NULL, 0)) { m_attempts = 0; return true; } std::clog << "Failed connecting to database - MYSQL ERROR: " << mysql_error(&m_handle) << " (" << mysql_errno(&m_handle) << ")" << std::endl; return false; }