#include "inspircd_config.h"
#include "inspircd.h"
-#include "inspircd_io.h"
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/errno.h>
-#include <time.h>
#include <string>
-#ifdef GCC3
-#include <ext/hash_map>
-#else
-#include <hash_map>
-#endif
#include <map>
#include <sstream>
#include <vector>
#include "modules.h"
#include "dynamic.h"
#include "wildcard.h"
-#include "message.h"
#include "commands.h"
#include "xline.h"
#include "inspstring.h"
#include "inspircd.h"
-#include "helperfuncs.h"
+
#include "hashcomp.h"
#include "typedefs.h"
#include "cull_list.h"
-extern InspIRCd* ServerInstance;
-extern user_hash clientlist;
-
/*
* In current implementation of CullList, this isn't used. It did odd things with a lot of sockets.
*/
if (es != exempt.end())
esignon = es->second;
- for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
+ for (user_hash::iterator u = ServerInstance->clientlist.begin(); u != ServerInstance->clientlist.end(); u++)
{
/*
* BUGFIX
CullItem::CullItem(userrec* u, std::string &r)
{
- this->user = u;
- this->reason = r;
+ this->user = u;
+ this->reason = r;
}
CullItem::CullItem(userrec* u, const char* r)
userrec* CullItem::GetUser()
{
- return this->user;
+ return this->user;
}
std::string& CullItem::GetReason()
{
- return this->reason;
+ return this->reason;
}
-CullList::CullList()
+CullList::CullList(InspIRCd* Instance) : ServerInstance(Instance)
{
list.clear();
- exempt.clear();
+ exempt.clear();
}
void CullList::AddItem(userrec* user, std::string &reason)
{
if (exempt.find(user) == exempt.end())
{
- CullItem item(user,reason);
- list.push_back(item);
- exempt[user] = user->signon;
+ CullItem item(user,reason);
+ list.push_back(item);
+ exempt[user] = user->signon;
}
}
int CullList::Apply()
{
- int n = 0;
- while (list.size())
- {
+ int n = list.size();
+ while (list.size())
+ {
std::vector<CullItem>::iterator a = list.begin();
- kill_link(a->GetUser(), a->GetReason().c_str());
+ userrec::QuitUser(ServerInstance, a->GetUser(), a->GetReason().c_str());
list.erase(list.begin());
- }
- return n;
+ }
+ return n;
}