X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcull_list.cpp;h=5c7eb7b4258855ebeef7f3c18e4feffbf65d9597;hb=edf6ba3cf14923c0b79c5da7df5e72b9639bcfc3;hp=9d8bb3bae75f91db47fd32651dc7229ff6686390;hpb=12427e75fe175fe7a62f388281dd7ab5100c9dda;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/cull_list.cpp b/src/cull_list.cpp index 9d8bb3bae..5c7eb7b42 100644 --- a/src/cull_list.cpp +++ b/src/cull_list.cpp @@ -54,8 +54,8 @@ int CullList::Apply() std::string reason; std::string oper_reason; - reason.assign(u->quitmsg, 0, MAXQUIT - 1); - oper_reason.assign(preset_reason.empty() ? preset_reason : u->operquitmsg, 0, MAXQUIT - 1); + reason.assign(u->quitmsg, 0, ServerInstance->Config->Limits.MaxQuit); + oper_reason.assign(preset_reason.empty() ? preset_reason : u->operquitmsg, 0, ServerInstance->Config->Limits.MaxQuit); if (u->registered != REG_ALL) if (ServerInstance->Users->unregistered_count) @@ -63,7 +63,7 @@ int CullList::Apply() if (IS_LOCAL(u)) { - if ((!u->sendq.empty()) && (!(*u->GetWriteError()))) + if (!u->sendq.empty()) u->FlushWriteBuf(); } @@ -117,20 +117,13 @@ int CullList::Apply() u->AddToWhoWas(); } - bool deleteu = true; - if (iter != ServerInstance->Users->clientlist->end()) { ServerInstance->Users->clientlist->erase(iter); } else { - /* - * Trying to track down Jason's issue.. this should never happen obviously. - */ - ServerInstance->Logs->Log("CULLLIST", DEBUG, "iter == clientlist->end, can't remove them from hash... problematic?"); -// deleteu = false; -// actually, delete them anyway.. the local vector is the real problem here + ServerInstance->Logs->Log("CULLLIST", DEBUG, "iter == clientlist->end, can't remove them from hash... problematic.."); } if (IS_LOCAL(u)) @@ -140,22 +133,11 @@ int CullList::Apply() ServerInstance->Users->local_users.erase(x); else { - /* - * This code is in here to monitor an issue of Jason's, where it seems to be trying to quit already quit users. - * The only way that can happen is if this find fails, so log it just in case. - * Also, (perhaps incorrectly, but oh well), return here so we don't delete the user and then start trampling - * on deleted memory, which leads to big problems.. - */ - ServerInstance->Logs->Log("CULLLIST", DEBUG, "Failed to remove user from vector, we're all gonna die!!! Not deleting the user to save our sanity"); - deleteu = false; + ServerInstance->Logs->Log("CULLLIST", DEBUG, "Failed to remove user from vector.."); } } - if (deleteu) - { - delete u; - } - + delete u; list.erase(list.begin()); }