blob: 24fa26f5ffa6320b0c38e555fed6a1a7c6e4cc83 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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);
}
|