return;
}
- FOREACH_MOD(I_OnUserInit,OnUserInit(New));
-
/*
* First class check. We do this again in FullConnect after DNS is done, and NICK/USER is recieved.
* See my note down there for why this is required. DO NOT REMOVE. :) -- w00t
* 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.
*/
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());
{
LocalUser* lu = IS_LOCAL(user);
FOREACH_MOD(I_OnUserDisconnect,OnUserDisconnect(lu));
- UserIOHandler* eh = &lu->eh;
- eh->DoWrite();
- if (eh->GetIOHook())
- {
- try
- {
- eh->GetIOHook()->OnStreamSocketClose(eh);
- }
- catch (CoreException& modexcept)
- {
- ServerInstance->Logs->Log("USERS",DEBUG, "%s threw an exception: %s", modexcept.GetSource(), modexcept.GetReason());
- }
- }
-
- ServerInstance->SE->DelFd(eh);
- eh->Close();
+ lu->eh.Close();
}
/*