]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Fix for bug #358, by rogalek.
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 23 Jul 2007 17:22:10 +0000 (17:22 +0000)
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 23 Jul 2007 17:22:10 +0000 (17:22 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7501 e03df62e-2008-0410-955e-edbf42e46eb7

src/channels.cpp

index b44a863b4fc501eb8e4ae1a92b2d503ddcd86e98..a111512bc79ebb0e6d2a7eb5f1dfd27e4e9f27aa 100644 (file)
@@ -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)
                {