diff options
author | Adam <Adam@anope.org> | 2013-04-13 16:36:39 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-04-13 16:36:39 -0500 |
commit | baabc91ead367a9461bce20dfa1a0e6d44043358 (patch) | |
tree | 126ce6ec692b71533b20d22cd5a29d25e0005e31 /modules/commands/os_forbid.cpp | |
parent | 81483ae5e7e8032f7f4899f4b24b32b750d68ff3 (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.cpp | 32 |
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; } }; |