diff options
| author | Dark1-dev <shansarkar272@gmail.com> | 2023-03-01 21:33:55 +0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 21:33:55 +0600 |
| commit | 3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff (patch) | |
| tree | 8b5f9425bbfc4fdd5a29155aec38893b77481359 /Database/Common/updateserver.cpp | |
| parent | de57bc38217c09a0ae4a143f631896652368ecc3 (diff) | |
| download | Masterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.tar.gz Masterserver-Qt5-3c7253d6cdc23aac36208fa87dc6571c7cb7c5ff.zip | |
Add files via upload
Diffstat (limited to 'Database/Common/updateserver.cpp')
| -rw-r--r-- | Database/Common/updateserver.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Database/Common/updateserver.cpp b/Database/Common/updateserver.cpp new file mode 100644 index 0000000..24fa26f --- /dev/null +++ b/Database/Common/updateserver.cpp @@ -0,0 +1,47 @@ +#include "commonactions.h" + +bool updateServer(const QString &serverAddress, + const unsigned short &serverPort, + const QString &gamename, + const bool &directBeacon, + const bool &authenticated + ) +{ + // update existing entry, but do not insert. + QSqlQuery q; + QString updateString; + + // update with available values + updateString = "UPDATE serverlist SET "; + + /* + * Note that direct/auth set to 'false' will NOT override a previous value in the database + */ + + // is this a direct beacon? + if (directBeacon) + { + updateString += "f_direct = 1, "; + updateString += "dt_beacon = :timestamp, "; + } + + // did the server authenticate? + if (authenticated) updateString += "f_auth = 1, "; + + updateString += "gamename = :gamename, " + "dt_updated = :timestamp " + "WHERE ip = :ip AND queryport = :queryport"; + + // bind values and execute + q.prepare(updateString); + q.bindValue(":ip", serverAddress); + q.bindValue(":queryport", serverPort); + q.bindValue(":gamename", gamename); + q.bindValue(":timestamp", QDateTime::currentSecsSinceEpoch() ); + + if ( ! q.exec() ) + return reportQuery(q); + + // was a row updated? + return (q.numRowsAffected() > 0); +} |
