aboutsummaryrefslogtreecommitdiff
path: root/src/cull_list.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cull_list.cpp')
-rw-r--r--src/cull_list.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cull_list.cpp b/src/cull_list.cpp
index 4f70ca466..d1b7ddc9f 100644
--- a/src/cull_list.cpp
+++ b/src/cull_list.cpp
@@ -16,6 +16,19 @@
void CullList::Apply()
{
+ std::vector<LocalUser *> working;
+ while (!SQlist.empty())
+ {
+ working.swap(SQlist);
+ for(std::vector<LocalUser *>::iterator a = working.begin(); a != working.end(); a++)
+ {
+ LocalUser *u = *a;
+ ServerInstance->SNO->WriteGlobalSno('a', "User %s SendQ exceeds connect class maximum of %lu",
+ u->nick.c_str(), u->MyClass->GetSendqHardMax());
+ ServerInstance->Users->QuitUser(u, "SendQ exceeded");
+ }
+ working.clear();
+ }
std::set<classbase*> gone;
std::vector<classbase*> queue;
queue.reserve(list.size() + 32);