]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Fix applying pending xlines to online users.
authorPeter Powell <petpow@saberuk.com>
Thu, 16 May 2019 16:56:37 +0000 (17:56 +0100)
committerPeter Powell <petpow@saberuk.com>
Thu, 16 May 2019 16:58:09 +0000 (17:58 +0100)
src/xline.cpp

index bf61d76ea480b63cc0689baa7ab2ad830926245e..f9d94e447b06d7aa24e2618c61e84ae5f3a02ee3 100644 (file)
@@ -446,9 +446,9 @@ void XLineManager::ExpireLine(ContainerIter container, LookupIter item, bool sil
 void XLineManager::ApplyLines()
 {
        const UserManager::LocalList& list = ServerInstance->Users.GetLocalUsers();
-       for (UserManager::LocalList::const_iterator j = list.begin(); j != list.end(); ++j)
+       for (UserManager::LocalList::const_iterator j = list.begin(); j != list.end(); )
        {
-               LocalUser* u = *j;
+               LocalUser* u = *j++;
 
                // Don't ban people who are exempt.
                if (u->exempt)
@@ -458,7 +458,10 @@ void XLineManager::ApplyLines()
                {
                        XLine *x = *i;
                        if (x->Matches(u))
+                       {
                                x->Apply(u);
+                               break;
+                       }
                }
        }