diff options
| author | 2008-01-16 08:55:18 +0000 | |
|---|---|---|
| committer | 2008-01-16 08:55:18 +0000 | |
| commit | 32026e5b6f345be8bfeddde939e69eec6618fe6b (patch) | |
| tree | 271eb7bf7c3797088a994a308937f82be315dd4a /src/cull_list.cpp | |
| parent | Hacked-up culllist: stores user pointers rather than CullItem, as creating th... (diff) | |
Re-add support for silent quits (note: we also remove an O(n) doing it this way)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8715 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/cull_list.cpp')
| -rw-r--r-- | src/cull_list.cpp | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/cull_list.cpp b/src/cull_list.cpp index 9a3c088e8..2b769e893 100644 --- a/src/cull_list.cpp +++ b/src/cull_list.cpp @@ -33,15 +33,7 @@ void CullList::AddItem(User* user) void CullList::MakeSilent(User* user) { -/* for (std::vector<CullItem *>::iterator a = list.begin(); a != list.end(); ++a) - { - if ((*a)->GetUser() == user) - { - (*a)->MakeSilent(); - break; - } - } -*/ + user->quietquit = true; return; } @@ -111,18 +103,17 @@ int CullList::Apply() { if (IS_LOCAL(u)) { - // XXX - // if (!(*a)->IsSilent()) - // { - // ServerInstance->SNO->WriteToSnoMask('q',"Client exiting: %s!%s@%s [%s]",u->nick,u->ident,u->host,oper_reason.c_str()); - // } + if (!u->quietquit) + { + ServerInstance->SNO->WriteToSnoMask('q',"Client exiting: %s!%s@%s [%s]",u->nick,u->ident,u->host,oper_reason.c_str()); + } } else { - // if ((!ServerInstance->SilentULine(u->server)) && (!(*a)->IsSilent())) - // { + if ((!ServerInstance->SilentULine(u->server)) && (!u->quietquit)) + { ServerInstance->SNO->WriteToSnoMask('Q',"Client exiting on server %s: %s!%s@%s [%s]",u->server,u->nick,u->ident,u->host,oper_reason.c_str()); - // } + } } u->AddToWhoWas(); } @@ -136,13 +127,13 @@ int CullList::Apply() ServerInstance->local_users.erase(x); } ServerInstance->clientlist->erase(iter); - delete u; } - // delete *list.begin(); + delete u; list.erase(list.begin()); exempt.erase(exemptiter); } + return n; } |
