Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: server.cpp
- ===================================================================
- --- server.cpp (revision 3382)
- +++ server.cpp (working copy)
- @@ -101,11 +101,13 @@
- char *user = USER;
- char *password = PASSWORD;
- char *database = DATABASE;
- + time_t lastupdate;
- MYSQL *conn;
- MYSQL_RES *res;
- MYSQL_ROW row;
- int mysqlconnected = 0;
- +
- void MySQL_Conn(void) {
- if(mysqlconnected != 1) {
- char *server = HOSTNAME;
- @@ -139,19 +141,19 @@
- time_t timestamp;
- timestamp = time (NULL);
- if(type == 1)
- - statsquery = "UPDATE `ms_core` SET `server_list` = server_list+1 LIMIT 1";
- + statsquery = "UPDATE `ms_core_temp` SET `server_list` = server_list+1 LIMIT 1";
- else if(type == 2)
- - statsquery = "UPDATE `ms_core` SET `server_unique` = server_unique+1 LIMIT 1";
- + statsquery = "UPDATE `ms_core_temp` SET `server_unique` = server_unique+1 LIMIT 1";
- else if(type == 3)
- - statsquery = "UPDATE `ms_core` SET `server_bad` = server_bad+1 LIMIT 1";
- + statsquery = "UPDATE `ms_core_temp` SET `server_bad` = server_bad+1 LIMIT 1";
- else if(type == 4)
- - statsquery = "UPDATE `ms_core` SET `server_removals` = server_removals+1 LIMIT 1";
- + statsquery = "UPDATE `ms_core_temp` SET `server_removals` = server_removals+1 LIMIT 1";
- else if(type == 5)
- - statsquery = "UPDATE `ms_core` SET `server_auto` = server_auto+1 LIMIT 1";
- + statsquery = "UPDATE `ms_core_temp` SET `server_auto` = server_auto+1 LIMIT 1";
- else if(type == 6)
- - statsquery = "UPDATE `ms_core` SET `server_connections` = server_connections+1 LIMIT 1";
- + statsquery = "UPDATE `ms_core_temp` SET `server_connections` = server_connections+1 LIMIT 1";
- else if(type == 7)
- - statsquery = "UPDATE `ms_core` SET `server_readds` = server_readds+1 LIMIT 1";
- + statsquery = "UPDATE `ms_core_temp` SET `server_readds` = server_readds+1 LIMIT 1";
- else if(type == 8)
- statsquery = "UPDATE `ms_core` SET `upsince` = '%ld' LIMIT 1";
- @@ -176,6 +178,34 @@
- }
- }
- +void MySQL_Stats_Update(void) {
- +
- + MySQL_Conn();
- + time_t current_time;
- + current_time = time (NULL);
- + char copyquery[500];
- +
- + if(lastupdate <= (current_time-(60*5))) {
- + if(mysql_query(conn, "CREATE TEMPORARY TABLE IF NOT EXISTS ms_core_temp (`server_readds` int(11) NOT NULL default '0', `server_unique` bigint(20) NOT NULL default '0', `server_removals` int(11) NOT NULL default '0', `server_auto` int(11) NOT NULL default '0', `server_list` int(11) NOT NULL default '0', `server_connections` int(11) NOT NULL default '0', `server_bad` int(11) NOT NULL default '0')")) {
- + if(mysql_query(conn, "SELECT * FROM ms_core_temp LIMIT 1")) {
- + res = mysql_store_result(conn);
- + sprintf(copyquery, "UPDATE `ms_core` SET `server_readds` = server_readds+%s, `server_unique` = server_unique+%s, `server_removals` = server_removals+%s, `server_auto` = server_auto+%s, `server_list` = server_list+%s, `server_connections` = server_connections+%s, `server_bad` = server_bad+%s LIMIT 1", row[0], row[1], row[2], row[3], row[4], row[5], row[6]);
- + if(mysql_query(conn, copyquery)) {
- + logPrintf(logfile, "Copied the data from the temporary table successfully!");
- + lastupdate = time (NULL);
- + } else {
- + logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
- + }
- + } else {
- + logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
- + }
- + } else {
- + logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
- + }
- + }
- +}
- +
- +
- int MySQL_CheckBan(char *ip) {
- MySQL_Conn();
- char banqueryp1[500] = "SELECT * FROM ms_bans WHERE INET_ATON('%s') BETWEEN `ipstart` AND `ipend` LIMIT 1";
- @@ -197,6 +227,9 @@
- void MySQL_AddServer(char *ip, char *port, char *name, char *version) {
- char escapedName[255];
- + char escapedIP[32];
- + char escapedPort[10];
- + char escapedVersion[10];
- char insertquery[5000];
- char checkquery[500];
- char updatequery[5000];
- @@ -205,8 +238,11 @@
- char updatequeryp1[5000] = "UPDATE `ms_servers` SET `name` = '%s', `port` = '%s', `version` = '%s', timestamp = '%ld', upnow = '1' WHERE `ip` = '%s'";
- MySQL_Conn();
- mysql_real_escape_string(conn, escapedName, name, strlen(name));
- + mysql_real_escape_string(conn, escapedIP, name, strlen(ip));
- + mysql_real_escape_string(conn, escapedPort, name, strlen(port));
- + mysql_real_escape_string(conn, escapedVersion, name, strlen(version));
- if(MySQL_CheckBan(ip) == 0) {
- - sprintf(checkquery, checkqueryp1, ip);
- + sprintf(checkquery, checkqueryp1, escapedIP);
- time_t timestamp;
- timestamp = time (NULL);
- logPrintf(logfile, "Checking for existing servers in table with the same IP...\n");
- @@ -219,7 +255,7 @@
- if(mysql_num_rows(res) < 1) {
- mysql_free_result(res);
- logPrintf(logfile, "Adding the temporary server: %s:%s || Name: %s || Version: %s || Time: %ld\n", ip, port, name, version, timestamp);
- - sprintf(insertquery, queryp1, escapedName, ip, port, version, timestamp);
- + sprintf(insertquery, queryp1, escapedName, escapedIP, escapedPort, escapedVersion, timestamp);
- logPrintf(logfile, "Executing MySQL Query: %s\n", insertquery);
- if(mysql_query(conn, insertquery)) {
- logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
- @@ -231,7 +267,7 @@
- mysql_free_result(res);
- logPrintf(logfile, "Server's IP already exists, so let's just update it instead...\n");
- logPrintf(logfile, "Updating Server Data for %s\n", ip);
- - sprintf(updatequery, updatequeryp1, escapedName, port, version, timestamp, ip);
- + sprintf(updatequery, updatequeryp1, escapedName, escapedPort, escapedVersion, timestamp, escapedIP);
- logPrintf(logfile, "Executing MySQL Query: %s\n", updatequery);
- if(mysql_query(conn, updatequery)) {
- logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement