]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/usermanager.cpp
Fix mode +L being visibly reset on every FJOIN
[user/henk/code/inspircd.git] / src / usermanager.cpp
index b8acf9da73de665b5b628a4f464c11ab2a9bc1f0..8c87ab5e14592f64d5b768f775d6d044bd394977 100644 (file)
@@ -85,13 +85,13 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs
         */
        New->SetClass();
 
-       FOREACH_MOD(I_OnUserInit,OnUserInit(New));
-
        /*
         * Check connect class settings and initialise settings into User.
         * This will be done again after DNS resolution. -- w00t
         */
        New->CheckClass();
+       if (New->quitting)
+               return;
 
        /*
         * even with bancache, we still have to keep User::exempt current.
@@ -141,6 +141,8 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs
         */
        New->WriteServ("NOTICE Auth :*** Looking up your hostname...");
 
+       FOREACH_MOD(I_OnUserInit,OnUserInit(New));
+
        if (ServerInstance->Config->NoUserDns)
        {
                New->WriteServ("NOTICE %s :*** Skipping host resolution (disabled by server administrator)", New->nick.c_str());