Fix faulty table existence checks

master
Timothy Pearson 10 years ago
parent 3843168ee8
commit f603b8d80d

@ -859,45 +859,62 @@ int AuthServer::connectToDatabase() {
return -1;
}
if (!m_database->tables().contains("stations")) {
TQSqlCursor* testCursor = NULL;
testCursor = new TQSqlCursor("stations", TRUE, m_database);
testCursor->select();
if (!testCursor->isActive()) {
m_database->close();
printf("[ERROR] Control database '%s' on '%s' does not contain the required 'stations' table\n\r", m_database->databaseName().ascii(), m_database->hostName().ascii()); fflush(stdout);
TQSqlDatabase::removeDatabase(m_database);
m_database = NULL;
return -1;
}
delete testCursor;
if (!m_database->tables().contains("services")) {
testCursor = new TQSqlCursor("services", TRUE, m_database);
testCursor->select();
if (!testCursor->isActive()) {
m_database->close();
printf("[ERROR] Control database '%s' on '%s' does not contain the required 'services' table\n\r", m_database->databaseName().ascii(), m_database->hostName().ascii()); fflush(stdout);
TQSqlDatabase::removeDatabase(m_database);
m_database = NULL;
return -1;
}
delete testCursor;
if (!m_database->tables().contains("servicetypes")) {
testCursor = new TQSqlCursor("servicetypes", TRUE, m_database);
testCursor->select();
if (!testCursor->isActive()) {
m_database->close();
printf("[ERROR] Control database '%s' on '%s' does not contain the required 'servicetypes' table\n\r", m_database->databaseName().ascii(), m_database->hostName().ascii()); fflush(stdout);
TQSqlDatabase::removeDatabase(m_database);
m_database = NULL;
return -1;
}
delete testCursor;
if (!m_database->tables().contains("permissions")) {
testCursor = new TQSqlCursor("permissions", TRUE, m_database);
testCursor->select();
if (!testCursor->isActive()) {
m_database->close();
printf("[ERROR] Control database '%s' on '%s' does not contain the required 'permissions' table\n\r", m_database->databaseName().ascii(), m_database->hostName().ascii()); fflush(stdout);
TQSqlDatabase::removeDatabase(m_database);
m_database = NULL;
return -1;
}
delete testCursor;
if (!m_database->tables().contains("activity")) {
testCursor = new TQSqlCursor("activity", TRUE, m_database);
testCursor->select();
if (!testCursor->isActive()) {
m_database->close();
printf("[ERROR] Control database '%s' on '%s' does not contain the required 'activity' table\n\r", m_database->databaseName().ascii(), m_database->hostName().ascii()); fflush(stdout);
TQSqlDatabase::removeDatabase(m_database);
m_database = NULL;
return -1;
}
delete testCursor;
// Start database ping process
// When combined with the MYSQL_OPT_RECONNECT flag passed above, this will keep the connection open even if the database server goes offline and then comes back online

Loading…
Cancel
Save