Advertisement
Guest User

Untitled

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