ServerInstance->Users->AddLocalClone(New);
ServerInstance->Users->AddGlobalClone(New);
- this->local_users.push_back(New);
+ New->localuseriter = this->local_users.insert(local_users.end(), New);
if ((this->local_users.size() > ServerInstance->Config->SoftLimit) || (this->local_users.size() >= (unsigned int)ServerInstance->SE->GetMaxFds()))
{
if (ServerInstance->Config->RawLog)
New->WriteServ("NOTICE Auth :*** Raw I/O logging is enabled on this server. All messages, passwords, and commands are being recorded.");
+ FOREACH_MOD(I_OnSetUserIP,OnSetUserIP(New));
+ if (New->quitting)
+ return;
+
FOREACH_MOD(I_OnUserInit,OnUserInit(New));
if (ServerInstance->Config->NoUserDns)
void UserManager::AddLocalClone(User *user)
{
- clonemap::iterator x;
- x = local_clones.find(user->GetCIDRMask());
- if (x != local_clones.end())
- x->second++;
- else
- local_clones[user->GetCIDRMask()] = 1;
+ local_clones[user->GetCIDRMask()]++;
}
void UserManager::AddGlobalClone(User *user)
{
- clonemap::iterator x;
-
- x = global_clones.find(user->GetCIDRMask());
- if (x != global_clones.end())
- x->second++;
- else
- global_clones[user->GetCIDRMask()] = 1;
+ global_clones[user->GetCIDRMask()]++;
}
void UserManager::RemoveCloneCounts(User *user)
snprintf(formatbuffer,MAXBUF,"NOTICE $%s :%s", ServerInstance->Config->ServerName.c_str(), textbuffer);
- for (std::vector<LocalUser*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
+ for (LocalUserList::const_iterator i = local_users.begin(); i != local_users.end(); i++)
{
User* t = *i;
t->WriteServ(std::string(formatbuffer));
snprintf(formatbuffer,MAXBUF,"PRIVMSG $%s :%s", ServerInstance->Config->ServerName.c_str(), textbuffer);
- for (std::vector<LocalUser*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
+ for (LocalUserList::const_iterator i = local_users.begin(); i != local_users.end(); i++)
{
User* t = *i;
t->WriteServ(std::string(formatbuffer));