-void UserManager::AddLocalClone(User *user)
-{
- clonemap::iterator x = local_clones.find(user->GetIPString());
- if (x != local_clones.end())
- x->second++;
+ user->quitting = true;
+
+ ServerInstance->Logs->Log("USERS", LOG_DEBUG, "QuitUser: %s=%s '%s'", user->uuid.c_str(), user->nick.c_str(), quitreason.c_str());
+ user->Write("ERROR :Closing link: (%s@%s) [%s]", user->ident.c_str(), user->host.c_str(), operreason ? operreason->c_str() : quitreason.c_str());
+
+ std::string reason;
+ reason.assign(quitreason, 0, ServerInstance->Config->Limits.MaxQuit);
+ if (!operreason)
+ operreason = &reason;
+
+ ServerInstance->GlobalCulls.AddItem(user);
+
+ if (user->registered == REG_ALL)
+ {
+ FOREACH_MOD(OnUserQuit, (user, reason, *operreason));
+ user->WriteCommonQuit(reason, *operreason);
+ }