summaryrefslogtreecommitdiff
path: root/modules/commands/os_forbid.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-04-13 16:36:39 -0500
committerAdam <Adam@anope.org>2013-04-13 16:36:39 -0500
commitbaabc91ead367a9461bce20dfa1a0e6d44043358 (patch)
tree126ce6ec692b71533b20d22cd5a29d25e0005e31 /modules/commands/os_forbid.cpp
parent81483ae5e7e8032f7f4899f4b24b32b750d68ff3 (diff)
Fix a few of the earlier changes to os_forbid
Diffstat (limited to 'modules/commands/os_forbid.cpp')
-rw-r--r--modules/commands/os_forbid.cpp32
1 files changed, 15 insertions, 17 deletions
diff --git a/modules/commands/os_forbid.cpp b/modules/commands/os_forbid.cpp
index 2f30afedb..2144aa591 100644
--- a/modules/commands/os_forbid.cpp
+++ b/modules/commands/os_forbid.cpp
@@ -16,32 +16,31 @@
class MyForbidService : public ForbidService
{
- Serialize::Checker<std::vector<ForbidData *>[FT_SIZE]> forbid_data;
+ Serialize::Checker<std::vector<ForbidData *>[FT_SIZE - 1]> forbid_data;
- inline std::vector<ForbidData *>* forbids() { return *this->forbid_data; }
+ inline std::vector<ForbidData *>& forbids(unsigned t) { return (*this->forbid_data)[t - 1]; }
public:
MyForbidService(Module *m) : ForbidService(m), forbid_data("ForbidData") { }
void AddForbid(ForbidData *d) anope_override
{
- this->forbids()[d->type].push_back(d);
+ this->forbids(d->type).push_back(d);
}
void RemoveForbid(ForbidData *d) anope_override
{
- std::vector<ForbidData *>::iterator it = std::find(this->forbids()[d->type].begin(), this->forbids()[d->type].end(), d);
- if (it != this->forbids()[d->type].end())
- this->forbids()[d->type].erase(it);
+ std::vector<ForbidData *>::iterator it = std::find(this->forbids(d->type).begin(), this->forbids(d->type).end(), d);
+ if (it != this->forbids(d->type).end())
+ this->forbids(d->type).erase(it);
delete d;
}
ForbidData *FindForbid(const Anope::string &mask, ForbidType ftype) anope_override
{
- const std::vector<ForbidData *> &forbids = this->forbids()[ftype];
- for (unsigned i = forbids.size(); i > 0; --i)
+ for (unsigned i = this->forbids(ftype).size(); i > 0; --i)
{
- ForbidData *d = forbids[i - 1];
+ ForbidData *d = this->forbids(ftype)[i - 1];
if (Anope::Match(mask, d->mask, false, true))
return d;
@@ -51,11 +50,11 @@ class MyForbidService : public ForbidService
std::vector<ForbidData *> GetForbids() anope_override
{
- std::vector<ForbidData *> forbids;
- for (unsigned j = 0; j < FT_SIZE; ++j)
- for (unsigned i = this->forbids()[j].size(); i > 0; --i)
+ std::vector<ForbidData *> f;
+ for (unsigned j = FT_NICK; j < FT_SIZE; ++j)
+ for (unsigned i = this->forbids(j).size(); i > 0; --i)
{
- ForbidData *d = this->forbids()[j].at(i - 1);
+ ForbidData *d = this->forbids(j).at(i - 1);
if (d->expires && Anope::CurTime >= d->expires)
{
@@ -68,15 +67,14 @@ class MyForbidService : public ForbidService
ftype = "email";
Log(LOG_NORMAL, "expire/forbid") << "Expiring forbid for " << d->mask << " type " << ftype;
- std::vector<ForbidData *> &forbids = this->forbids()[j];
- forbids.erase(forbids.begin() + i - 1);
+ this->forbids(j).erase(this->forbids(j).begin() + i - 1);
delete d;
}
else
- forbids.push_back(d);
+ f.push_back(d);
}
- return forbids;
+ return f;
}
};