From 4412ba916ea5b8a813b725f5308d63a517dc4544 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Wed, 18 Mar 2015 15:17:25 -0700 Subject: [PATCH] don't lock out someone from localhost, even if the maximum number of users are connected --- domain-server/src/DomainServer.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 33652bb0de..2e3505dd4d 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -684,6 +684,16 @@ bool DomainServer::shouldAllowConnectionFromNode(const QString& username, const QByteArray& usernameSignature, const HifiSockAddr& senderSockAddr) { + const QVariant* allowedUsersVariant = valueForKeyPath(_settingsManager.getSettingsMap(), + ALLOWED_USERS_SETTINGS_KEYPATH); + QStringList allowedUsers = allowedUsersVariant ? allowedUsersVariant->toStringList() : QStringList(); + + // we always let in a user who is sending a packet from our local socket or from the localhost address + if (senderSockAddr.getAddress() == DependencyManager::get()->getLocalSockAddr().getAddress() + || senderSockAddr.getAddress() == QHostAddress::LocalHost) { + return true; + } + const QVariant* maximumUserCapacityVariant = valueForKeyPath(_settingsManager.getSettingsMap(), MAXIMUM_USER_CAPACITY); unsigned int maximumUserCapacity = maximumUserCapacityVariant ? maximumUserCapacityVariant->toUInt() : 0; if (maximumUserCapacity > 0) { @@ -695,16 +705,6 @@ bool DomainServer::shouldAllowConnectionFromNode(const QString& username, } qDebug() << connectedUsers << "/" << maximumUserCapacity << "users connected, perhaps allowing new connection."; } - - const QVariant* allowedUsersVariant = valueForKeyPath(_settingsManager.getSettingsMap(), - ALLOWED_USERS_SETTINGS_KEYPATH); - QStringList allowedUsers = allowedUsersVariant ? allowedUsersVariant->toStringList() : QStringList(); - - // we always let in a user who is sending a packet from our local socket or from the localhost address - if (senderSockAddr.getAddress() == DependencyManager::get()->getLocalSockAddr().getAddress() - || senderSockAddr.getAddress() == QHostAddress::LocalHost) { - return true; - } if (allowedUsers.count() > 0) { if (allowedUsers.contains(username, Qt::CaseInsensitive)) {