summaryrefslogtreecommitdiffstats
path: root/src/server/net
diff options
context:
space:
mode:
authorBjörn Hagemeister2014-09-04 18:10:57 +0200
committerBjörn Hagemeister2014-09-04 18:10:57 +0200
commitde8cae01617b57ebd36a7d3fab3b4875b0da2255 (patch)
tree27a2fbc5db83225fc552000f7ddb5c778c55e920 /src/server/net
parentMerge branch 'master' of git.openslx.org:pvs2 (diff)
downloadpvs2-de8cae01617b57ebd36a7d3fab3b4875b0da2255.tar.gz
pvs2-de8cae01617b57ebd36a7d3fab3b4875b0da2255.tar.xz
pvs2-de8cae01617b57ebd36a7d3fab3b4875b0da2255.zip
The sessionID is ignored by manager if client is connecting via auto-connect.
Diffstat (limited to 'src/server/net')
-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;