Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Jemlich <pcgod@users.sourceforge.net>2011-10-23 11:06:59 +0400
committerBenjamin Jemlich <pcgod@users.sourceforge.net>2011-10-23 11:30:02 +0400
commit089b23d9779785afd6402f54d1a33107d582961d (patch)
tree79b92b7999b6706df844b89c7dd905d12cd9f4bb /src/murmur/MurmurIce.cpp
parent380b52d3e00aad4ad4c2635f25d40dd05c09165d (diff)
Fix ghost disconnect removing permissions (#3423985)
Returning a list of groups using an authenticator added temporary group membership for the user id only. Those are removed when we're disconnecting an old user using the same user id. Adding the session id to the group should fix the problem. This won't work if someone uses verifyPassword to set the permissions (which is an undocumented implementation detail anyway).
Diffstat (limited to 'src/murmur/MurmurIce.cpp')
-rw-r--r--src/murmur/MurmurIce.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/murmur/MurmurIce.cpp b/src/murmur/MurmurIce.cpp
index c1d5c823c..cae3099ba 100644
--- a/src/murmur/MurmurIce.cpp
+++ b/src/murmur/MurmurIce.cpp
@@ -543,7 +543,7 @@ void MurmurIce::nameToIdSlot(int &id, const QString &name) {
}
}
-void MurmurIce::authenticateSlot(int &res, QString &uname, const QList<QSslCertificate> &certlist, const QString &certhash, bool certstrong, const QString &pw) {
+void MurmurIce::authenticateSlot(int &res, QString &uname, int sessionId, const QList<QSslCertificate> &certlist, const QString &certhash, bool certstrong, const QString &pw) {
::Server *server = qobject_cast< ::Server *> (sender());
ServerAuthenticatorPrx prx = mi->qmServerAuthenticator.value(server->iServerNum);
@@ -575,7 +575,7 @@ void MurmurIce::authenticateSlot(int &res, QString &uname, const QList<QSslCerti
qsl << u8(str);
}
if (! qsl.isEmpty())
- server->setTempGroups(res, NULL, qsl);
+ server->setTempGroups(res, sessionId, NULL, qsl);
}
}