aboutsummaryrefslogtreecommitdiff
path: root/Database/Common/selectserverlist.cpp
diff options
context:
space:
mode:
authorDark1-dev <shansarkar272@gmail.com>2023-03-01 21:33:55 +0600
committerGitHub <noreply@github.com>2023-03-01 21:33:55 +0600
commit3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff (patch)
tree8b5f9425bbfc4fdd5a29155aec38893b77481359 /Database/Common/selectserverlist.cpp
parentde57bc38217c09a0ae4a143f631896652368ecc3 (diff)
downloadMasterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.tar.gz
Masterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.zip
Add files via upload
Diffstat (limited to 'Database/Common/selectserverlist.cpp')
-rw-r--r--Database/Common/selectserverlist.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/Database/Common/selectserverlist.cpp b/Database/Common/selectserverlist.cpp
new file mode 100644
index 0000000..c4797ed
--- /dev/null
+++ b/Database/Common/selectserverlist.cpp
@@ -0,0 +1,31 @@
+#include "commonactions.h"
+
+QSqlQuery selectServerList(const QString &gamename,
+ const int &serverAge_s,
+ const bool &withSyncData)
+{
+ // retrieve servers from database
+ QSqlQuery q;
+ QString selectString = "SELECT ip, queryport FROM serverlist "
+ "WHERE gamename = :gamename ";
+
+ if ( withSyncData )
+ {
+ // relies on sync data to be accurate (if checker is not enabled)
+ selectString += "AND (dt_updated > :timestamp OR dt_sync > :timestamp)";
+ }
+ else
+ {
+ // sync data may not be (sufficiently) accurate, only use data that we verified directly
+ selectString += "AND dt_updated > :timestamp";
+ }
+
+ // bind values and execute
+ q.prepare(selectString);
+ q.bindValue(":gamename", gamename);
+ q.bindValue(":timestamp", QDateTime::currentDateTime().addSecs(-serverAge_s ).toSecsSinceEpoch());
+ if ( ! q.exec() )
+ reportQuery(q);
+
+ return q;
+}