moved code logic to callling function & indent fix

This commit is contained in:
woogerboy21 2014-11-18 16:55:19 -05:00
parent 8aa7a1d6be
commit 3c513b4bfc
2 changed files with 13 additions and 12 deletions

View file

@ -380,16 +380,11 @@ QList<ServerProperties> Servatrice::getServerList() const
int Servatrice::getUsersWithAddress(const QHostAddress &address) const int Servatrice::getUsersWithAddress(const QHostAddress &address) const
{ {
int result = 0; int result = 0;
QString trustedSources = settingsCache->value("server/trusted_sources","127.0.0.1,::1").toString(); QReadLocker locker(&clientsLock);
for (int i = 0; i < clients.size(); ++i)
if (static_cast<ServerSocketInterface *>(clients[i])->getPeerAddress() == address)
++result;
if (trustedSources.contains(address.toString(),Qt::CaseInsensitive)) {
//allow all clients from trusted sources regardsless of number of connections
} else {
QReadLocker locker(&clientsLock);
for (int i = 0; i < clients.size(); ++i)
if (static_cast<ServerSocketInterface *>(clients[i])->getPeerAddress() == address)
++result;
}
return result; return result;
} }

View file

@ -22,6 +22,7 @@
#include <QHostAddress> #include <QHostAddress>
#include <QDebug> #include <QDebug>
#include <QDateTime> #include <QDateTime>
#include <QString>
#include "settingscache.h" #include "settingscache.h"
#include "serversocketinterface.h" #include "serversocketinterface.h"
#include "servatrice.h" #include "servatrice.h"
@ -117,6 +118,11 @@ bool ServerSocketInterface::initSession()
sendProtocolItem(*identSe); sendProtocolItem(*identSe);
delete identSe; delete identSe;
//allow unlimited number of connections from the trusted sources
QString trustedSources = settingsCache->value("server/trusted_sources","127.0.0.1,::1").toString();
if (trustedSources.contains(address.toString(),Qt::CaseInsensitive))
return true;
int maxUsers = servatrice->getMaxUsersPerAddress(); int maxUsers = servatrice->getMaxUsersPerAddress();
if ((maxUsers > 0) && (servatrice->getUsersWithAddress(socket->peerAddress()) >= maxUsers)) { if ((maxUsers > 0) && (servatrice->getUsersWithAddress(socket->peerAddress()) >= maxUsers)) {
Event_ConnectionClosed event; Event_ConnectionClosed event;
@ -708,9 +714,9 @@ Response::ResponseCode ServerSocketInterface::cmdBanFromServer(const Command_Ban
QString userName = QString::fromStdString(cmd.user_name()); QString userName = QString::fromStdString(cmd.user_name());
QString address = QString::fromStdString(cmd.address()); QString address = QString::fromStdString(cmd.address());
QString trustedSources = settingsCache->value("server/trusted_sources","127.0.0.1,::1").toString(); QString trustedSources = settingsCache->value("server/trusted_sources","127.0.0.1,::1").toString();
int minutes = cmd.minutes(); int minutes = cmd.minutes();
if (trustedSources.contains(address,Qt::CaseInsensitive)) if (trustedSources.contains(address,Qt::CaseInsensitive))
address = ""; address = "";
QSqlQuery query(sqlInterface->getDatabase()); QSqlQuery query(sqlInterface->getDatabase());