aboutsummaryrefslogtreecommitdiff
path: root/src/UdpTasks/StatusChecker/getnextserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/UdpTasks/StatusChecker/getnextserver.cpp')
-rw-r--r--src/UdpTasks/StatusChecker/getnextserver.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/UdpTasks/StatusChecker/getnextserver.cpp b/src/UdpTasks/StatusChecker/getnextserver.cpp
new file mode 100644
index 0000000..5b9bb20
--- /dev/null
+++ b/src/UdpTasks/StatusChecker/getnextserver.cpp
@@ -0,0 +1,22 @@
+#include "statuschecker.h"
+
+QSqlQuery StatusChecker::getNextServer(const int &currentServerId)
+{
+ // select server with >id
+ QSqlQuery q;
+ QString selectString = "SELECT id, ip, queryport, gamename, f_auth FROM serverlist "
+ "WHERE id > :currentServerID "
+ "AND (dt_updated > :timestamp OR dt_sync > :timestamp)"
+ "LIMIT 1";
+
+ // bind values and execute
+ q.prepare(selectString);
+ q.bindValue(":currentServerID", currentServerId);
+ q.bindValue(":timestamp", QDateTime::currentDateTime()
+ .addSecs(-_coreObject->Settings.ListenServerSettings.serverttl_s)
+ .toSecsSinceEpoch());
+ if ( ! q.exec() )
+ reportQuery(q);
+
+ return q;
+}