From c8813bb2aa8387473a2812a6fc70f9ee140ece33 Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Mon, 11 Jul 2011 23:01:59 +0200 Subject: [PATCH] extra server logging, server memory leak fixed, m12 --- common/server.cpp | 4 +++- common/server_protocolhandler.cpp | 4 ++-- oracle/sets.xml | 4 ++++ servatrice/src/servatrice.cpp | 24 ++++++++++++++++-------- servatrice/src/server_logger.cpp | 2 +- servatrice/src/serversocketinterface.cpp | 2 +- 6 files changed, 27 insertions(+), 13 deletions(-) diff --git a/common/server.cpp b/common/server.cpp index 70451018..bf3e19a9 100644 --- a/common/server.cpp +++ b/common/server.cpp @@ -57,8 +57,10 @@ AuthenticationResult Server::loginUser(Server_ProtocolHandler *session, QString return authState; if (authState == PasswordRight) { - if (users.contains(name)) + if (users.contains(name)) { + qDebug("Login denied: would overwrite old session"); return WouldOverwriteOldSession; + } } else if (authState == UnknownUser) { // Change user name so that no two users have the same names, // don't interfere with registered user names though. diff --git a/common/server_protocolhandler.cpp b/common/server_protocolhandler.cpp index a4167009..437ba7af 100644 --- a/common/server_protocolhandler.cpp +++ b/common/server_protocolhandler.cpp @@ -58,8 +58,8 @@ void Server_ProtocolHandler::prepareDestroy() while (i.hasNext()) delete i.next().value(); QMapIterator j(ignoreList); - while (i.hasNext()) - delete i.next().value(); + while (j.hasNext()) + delete j.next().value(); } void Server_ProtocolHandler::playerRemovedFromGame(Server_Game *game) diff --git a/oracle/sets.xml b/oracle/sets.xml index 8e7dfda7..4418ab6b 100644 --- a/oracle/sets.xml +++ b/oracle/sets.xml @@ -172,6 +172,10 @@ M11 Magic 2011 + + M12 + Magic 2012 + COM Magic: The Gathering-Commander diff --git a/servatrice/src/servatrice.cpp b/servatrice/src/servatrice.cpp index 51ad91cb..5fc24619 100644 --- a/servatrice/src/servatrice.cpp +++ b/servatrice/src/servatrice.cpp @@ -37,9 +37,8 @@ void Servatrice_TcpServer::incomingConnection(int socketDescriptor) } else { QTcpSocket *socket = new QTcpSocket; socket->setSocketDescriptor(socketDescriptor); - logger->logMessage(QString("incoming connection: %1").arg(socket->peerAddress().toString())); - - new ServerSocketInterface(server, socket); + ServerSocketInterface *ssi = new ServerSocketInterface(server, socket); + logger->logMessage(QString("incoming connection: %1").arg(socket->peerAddress().toString()), ssi); } } @@ -188,18 +187,27 @@ AuthenticationResult Servatrice::checkUserPassword(Server_ProtocolHandler *handl QSqlQuery query; query.prepare("select a.password, time_to_sec(timediff(now(), date_add(b.time_from, interval b.minutes minute))) < 0, b.minutes <=> 0 from " + dbPrefix + "_users a left join " + dbPrefix + "_bans b on b.id_user = a.id and b.time_from = (select max(c.time_from) from " + dbPrefix + "_bans c where c.id_user = a.id) where a.name = :name and a.active = 1"); query.bindValue(":name", user); - if (!execSqlQuery(query)) + if (!execSqlQuery(query)) { + qDebug("Login denied: SQL error"); return PasswordWrong; + } if (query.next()) { - if (query.value(1).toInt() || query.value(2).toInt()) + if (query.value(1).toInt() || query.value(2).toInt()) { + qDebug("Login denied: banned"); return PasswordWrong; - if (query.value(0).toString() == password) + } + if (query.value(0).toString() == password) { + qDebug("Login accepted: password right"); return PasswordRight; - else + } else { + qDebug("Login denied: password wrong"); return PasswordWrong; - } else + } + } else { + qDebug("Login accepted: unknown user"); return UnknownUser; + } } else return UnknownUser; } diff --git a/servatrice/src/server_logger.cpp b/servatrice/src/server_logger.cpp index 7cfaf3ed..ae073a9c 100644 --- a/servatrice/src/server_logger.cpp +++ b/servatrice/src/server_logger.cpp @@ -39,7 +39,7 @@ void ServerLogger::logMessage(QString message, ServerSocketInterface *ssi) bufferMutex.lock(); QString ssiString; if (ssi) - ssiString = QString::number((qulonglong) ssi) + " "; + ssiString = QString::number((qulonglong) ssi, 16) + " "; buffer.append(QDateTime::currentDateTime().toString() + " " + QString::number((qulonglong) QThread::currentThread(), 16) + " " + ssiString + message); bufferMutex.unlock(); diff --git a/servatrice/src/serversocketinterface.cpp b/servatrice/src/serversocketinterface.cpp index 91c7a6b9..1f793fcd 100644 --- a/servatrice/src/serversocketinterface.cpp +++ b/servatrice/src/serversocketinterface.cpp @@ -60,7 +60,7 @@ ServerSocketInterface::ServerSocketInterface(Servatrice *_server, QTcpSocket *_s ServerSocketInterface::~ServerSocketInterface() { - logger->logMessage("ServerSocketInterface destructor"); + logger->logMessage("ServerSocketInterface destructor", this); prepareDestroy();