diff options
author | Björn Hagemeister | 2014-09-04 18:10:57 +0200 |
---|---|---|
committer | Björn Hagemeister | 2014-09-04 18:10:57 +0200 |
commit | de8cae01617b57ebd36a7d3fab3b4875b0da2255 (patch) | |
tree | 27a2fbc5db83225fc552000f7ddb5c778c55e920 /src/server/net | |
parent | Merge branch 'master' of git.openslx.org:pvs2 (diff) | |
download | pvs2-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.cpp | 9 |
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; |