summaryrefslogtreecommitdiff
path: root/src/channels.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-23 17:22:10 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-23 17:22:10 +0000
commit5aaa38bea4ff3556dc3bff8c09c72a8067368c17 (patch)
tree9a339a2c1ab6cd785e84f9991a00edc88325b440 /src/channels.cpp
parent480e1e9e1ff6c39a154f3efc6e83b0ffc94a6c8d (diff)
Fix for bug #358, by rogalek.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7501 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/channels.cpp')
-rw-r--r--src/channels.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index b44a863b4..a111512bc 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -217,10 +217,18 @@ chanrec* chanrec::JoinUser(InspIRCd* Instance, userrec *user, const char* cn, bo
if (!Ptr)
{
- if ((!IS_LOCAL(user)) && (!TS))
- Instance->Log(DEBUG,"*** BUG *** chanrec::JoinUser called for REMOTE user '%s' on channel '%s' but no TS given!", user->nick, cn);
-
- privs = "@";
+ /*
+ * Fix: desync bug was here, don't set @ on remote users - spanningtree handles their permissions. bug #358. -- w00t
+ */
+ if (!IS_LOCAL(user))
+ {
+ if (!TS)
+ Instance->Log(DEBUG,"*** BUG *** chanrec::JoinUser called for REMOTE user '%s' on channel '%s' but no TS given!", user->nick, cn);
+ }
+ else
+ {
+ privs = "@";
+ }
if (IS_LOCAL(user) && override == false)
{