From de8cae01617b57ebd36a7d3fab3b4875b0da2255 Mon Sep 17 00:00:00 2001 From: Björn Hagemeister Date: Thu, 4 Sep 2014 18:10:57 +0200 Subject: The sessionID is ignored by manager if client is connecting via auto-connect. --- src/server/net/discoverylistener.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/server/net') 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; -- cgit v1.2.3-55-g7522