#include <winsock.h> #include <mysql.h> #include <cstdio> MYSQL mysql; MYSQL_ROW row; MYSQL_RES* result; unsigned int num_fields; void check_status() { if ( mysql_query( &mysql, "SELECT port FROM servers" ) == 0 ) { result = mysql_store_result( &mysql ); num_fields = mysql_num_fields( result ); while ( ( row = mysql_fetch_row( result ) ) ) { int port = atoi(row[0]); // Check if the server is online or offline. // Store the result in the database. } } } void start_servers() { if ( mysql_query( &mysql, "SELECT name, directory, port FROM servers WHERE needs_start=1" ) == 0 ) { result = mysql_store_result( &mysql ); num_fields = mysql_num_fields( result ); while ( ( row = mysql_fetch_row( result ) ) ) { char* name = row[0]; char* directory = row[1]; int port = atoi(row[2]); // Check if the server is already online. // Alter the config file. // Start the server. char buf[256]; sprintf( buf, "UPDATE servers SET needs_start=0 WHERE name=\"%s\" LIMIT 1", name ); printf( "%s\n", buf ); if ( mysql_query( &mysql, buf ) != 0 ) { printf( "Failed to update the database: Error: %s\n", mysql_error( &mysql ) ); exit(-1); } } } } int main( int argc, char** argv ) { mysql_init( &mysql ); if ( !mysql_real_connect( &mysql, "localhost", "root", "", "eohost", 0, NULL, 0 ) ) { printf( "Failed to connect to database: Error: %s\n", mysql_error( &mysql ) ); exit(-1); } while ( true ) { check_status(); start_servers(); Sleep( 5 * ( 60 * 1000 ) ); // 5 Minutes. } mysql_close( &mysql ); return 0; }