summaryrefslogtreecommitdiffstats
path: root/src/server/net/discoverylistener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/net/discoverylistener.cpp')
-rw-r--r--src/server/net/discoverylistener.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/net/discoverylistener.cpp b/src/server/net/discoverylistener.cpp
index f3d7d39..58e877c 100644
--- a/src/server/net/discoverylistener.cpp
+++ b/src/server/net/discoverylistener.cpp
@@ -159,8 +159,13 @@ void DiscoveryListener::onReadyRead()
if (!Network::isAddressInList(QString::fromUtf8(iplist), addr.toString()))
continue;
// If so, check if the submitted hash seems valid
- if (genSha1(&Global::sessionNameArray(), &salt1, &iplist) != hash)
- continue; // did not match local session name
+ if (genSha1(&Global::sessionNameArray(), &salt1, &iplist) != hash &&
+ !(Global::getRooms()[Global::getCurrentRoom()].contains(addr.toString())))
+ {
+ // did not match local session name and client is not in same room.
+ continue;
+ }
+
qDebug("Got matching discovery request...");
QByteArray myiplist(Network::interfaceAddressesToString().toUtf8());
QSslKey key;