* ---------------------------------------------------
*/
-/* $Core: libIRCDcull_list */
+/* $Core */
#include "inspircd.h"
#include "cull_list.h"
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)
if (IS_LOCAL(u))
{
- if ((!u->sendq.empty()) && (!(*u->GetWriteError())))
+ if (!u->sendq.empty())
u->FlushWriteBuf();
}
if (IS_LOCAL(u))
{
- if (u->io)
+ if (u->GetIOHook())
{
try
{
- u->io->OnRawSocketClose(u->GetFd());
+ u->GetIOHook()->OnRawSocketClose(u->GetFd());
}
catch (CoreException& modexcept)
{
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))
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());
}