Advertisement
Guest User

Untitled

a guest
May 9th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.39 KB | None | 0 0
  1. Index: server.cpp
  2. ===================================================================
  3. --- server.cpp (revision 3382)
  4. +++ server.cpp (working copy)
  5. @@ -101,11 +101,13 @@
  6. char *user = USER;
  7. char *password = PASSWORD;
  8. char *database = DATABASE;
  9. + time_t lastupdate;
  10.  
  11. MYSQL *conn;
  12. MYSQL_RES *res;
  13. MYSQL_ROW row;
  14. int mysqlconnected = 0;
  15. +
  16. void MySQL_Conn(void) {
  17. if(mysqlconnected != 1) {
  18. char *server = HOSTNAME;
  19. @@ -139,19 +141,19 @@
  20. time_t timestamp;
  21. timestamp = time (NULL);
  22. if(type == 1)
  23. - statsquery = "UPDATE `ms_core` SET `server_list` = server_list+1 LIMIT 1";
  24. + statsquery = "UPDATE `ms_core_temp` SET `server_list` = server_list+1 LIMIT 1";
  25. else if(type == 2)
  26. - statsquery = "UPDATE `ms_core` SET `server_unique` = server_unique+1 LIMIT 1";
  27. + statsquery = "UPDATE `ms_core_temp` SET `server_unique` = server_unique+1 LIMIT 1";
  28. else if(type == 3)
  29. - statsquery = "UPDATE `ms_core` SET `server_bad` = server_bad+1 LIMIT 1";
  30. + statsquery = "UPDATE `ms_core_temp` SET `server_bad` = server_bad+1 LIMIT 1";
  31. else if(type == 4)
  32. - statsquery = "UPDATE `ms_core` SET `server_removals` = server_removals+1 LIMIT 1";
  33. + statsquery = "UPDATE `ms_core_temp` SET `server_removals` = server_removals+1 LIMIT 1";
  34. else if(type == 5)
  35. - statsquery = "UPDATE `ms_core` SET `server_auto` = server_auto+1 LIMIT 1";
  36. + statsquery = "UPDATE `ms_core_temp` SET `server_auto` = server_auto+1 LIMIT 1";
  37. else if(type == 6)
  38. - statsquery = "UPDATE `ms_core` SET `server_connections` = server_connections+1 LIMIT 1";
  39. + statsquery = "UPDATE `ms_core_temp` SET `server_connections` = server_connections+1 LIMIT 1";
  40. else if(type == 7)
  41. - statsquery = "UPDATE `ms_core` SET `server_readds` = server_readds+1 LIMIT 1";
  42. + statsquery = "UPDATE `ms_core_temp` SET `server_readds` = server_readds+1 LIMIT 1";
  43. else if(type == 8)
  44. statsquery = "UPDATE `ms_core` SET `upsince` = '%ld' LIMIT 1";
  45.  
  46. @@ -176,6 +178,34 @@
  47. }
  48. }
  49.  
  50. +void MySQL_Stats_Update(void) {
  51. +
  52. + MySQL_Conn();
  53. + time_t current_time;
  54. + current_time = time (NULL);
  55. + char copyquery[500];
  56. +
  57. + if(lastupdate <= (current_time-(60*5))) {
  58. + 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')")) {
  59. + if(mysql_query(conn, "SELECT * FROM ms_core_temp LIMIT 1")) {
  60. + res = mysql_store_result(conn);
  61. + 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]);
  62. + if(mysql_query(conn, copyquery)) {
  63. + logPrintf(logfile, "Copied the data from the temporary table successfully!");
  64. + lastupdate = time (NULL);
  65. + } else {
  66. + logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
  67. + }
  68. + } else {
  69. + logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
  70. + }
  71. + } else {
  72. + logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
  73. + }
  74. + }
  75. +}
  76. +
  77. +
  78. int MySQL_CheckBan(char *ip) {
  79. MySQL_Conn();
  80. char banqueryp1[500] = "SELECT * FROM ms_bans WHERE INET_ATON('%s') BETWEEN `ipstart` AND `ipend` LIMIT 1";
  81. @@ -197,6 +227,9 @@
  82.  
  83. void MySQL_AddServer(char *ip, char *port, char *name, char *version) {
  84. char escapedName[255];
  85. + char escapedIP[32];
  86. + char escapedPort[10];
  87. + char escapedVersion[10];
  88. char insertquery[5000];
  89. char checkquery[500];
  90. char updatequery[5000];
  91. @@ -205,8 +238,11 @@
  92. char updatequeryp1[5000] = "UPDATE `ms_servers` SET `name` = '%s', `port` = '%s', `version` = '%s', timestamp = '%ld', upnow = '1' WHERE `ip` = '%s'";
  93. MySQL_Conn();
  94. mysql_real_escape_string(conn, escapedName, name, strlen(name));
  95. + mysql_real_escape_string(conn, escapedIP, name, strlen(ip));
  96. + mysql_real_escape_string(conn, escapedPort, name, strlen(port));
  97. + mysql_real_escape_string(conn, escapedVersion, name, strlen(version));
  98. if(MySQL_CheckBan(ip) == 0) {
  99. - sprintf(checkquery, checkqueryp1, ip);
  100. + sprintf(checkquery, checkqueryp1, escapedIP);
  101. time_t timestamp;
  102. timestamp = time (NULL);
  103. logPrintf(logfile, "Checking for existing servers in table with the same IP...\n");
  104. @@ -219,7 +255,7 @@
  105. if(mysql_num_rows(res) < 1) {
  106. mysql_free_result(res);
  107. logPrintf(logfile, "Adding the temporary server: %s:%s || Name: %s || Version: %s || Time: %ld\n", ip, port, name, version, timestamp);
  108. - sprintf(insertquery, queryp1, escapedName, ip, port, version, timestamp);
  109. + sprintf(insertquery, queryp1, escapedName, escapedIP, escapedPort, escapedVersion, timestamp);
  110. logPrintf(logfile, "Executing MySQL Query: %s\n", insertquery);
  111. if(mysql_query(conn, insertquery)) {
  112. logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
  113. @@ -231,7 +267,7 @@
  114. mysql_free_result(res);
  115. logPrintf(logfile, "Server's IP already exists, so let's just update it instead...\n");
  116. logPrintf(logfile, "Updating Server Data for %s\n", ip);
  117. - sprintf(updatequery, updatequeryp1, escapedName, port, version, timestamp, ip);
  118. + sprintf(updatequery, updatequeryp1, escapedName, escapedPort, escapedVersion, timestamp, escapedIP);
  119. logPrintf(logfile, "Executing MySQL Query: %s\n", updatequery);
  120. if(mysql_query(conn, updatequery)) {
  121. logPrintf(logfile, "MYSQL ERROR: %s\n", mysql_error(conn));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement