diff options
| author | Dark1-dev <shansarkar272@gmail.com> | 2023-03-01 21:32:53 +0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 21:32:53 +0600 |
| commit | de57bc38217c09a0ae4a143f631896652368ecc3 (patch) | |
| tree | 635e3f429a5a6e00744b6817533615e41c6db5e2 /src/Database/Common/selectserverlist.cpp | |
| parent | 60a301a93b6057bb2c54ac04a7c38c38389037b3 (diff) | |
| download | Masterserver-Qt5-de57bc38217c09a0ae4a143f631896652368ecc3.tar.gz Masterserver-Qt5-de57bc38217c09a0ae4a143f631896652368ecc3.zip | |
Add files via upload
Diffstat (limited to 'src/Database/Common/selectserverlist.cpp')
| -rw-r--r-- | src/Database/Common/selectserverlist.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Database/Common/selectserverlist.cpp b/src/Database/Common/selectserverlist.cpp new file mode 100644 index 0000000..c4797ed --- /dev/null +++ b/src/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; +} |
