diff options
-rw-r--r-- | src/sessions.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/sessions.cpp b/src/sessions.cpp index f13683050..c125a4cb0 100644 --- a/src/sessions.cpp +++ b/src/sessions.cpp @@ -210,17 +210,16 @@ void del_session(const Anope::string &host) void expire_exceptions() { - for (std::vector<Exception *>::iterator it = exceptions.begin(), it_end = exceptions.end(); it != it_end; ) + for (unsigned i = exceptions.size(); i > 0; --i) { - Exception *e = *it; - std::vector<Exception *>::iterator curr_it = it++; + Exception *e = exceptions[i - 1]; if (!e->expires || e->expires > Anope::CurTime) continue; if (Config->WallExceptionExpire) ircdproto->SendGlobops(OperServ, "Session limit exception for %s has expired.", e->mask.c_str()); delete e; - exceptions.erase(curr_it); + exceptions.erase(exceptions.begin() + i - 1); } } |