diff options
-rw-r--r-- | src/botserv.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/botserv.cpp b/src/botserv.cpp index df1476dc8..9149a0027 100644 --- a/src/botserv.cpp +++ b/src/botserv.cpp @@ -387,8 +387,12 @@ static BanData *get_ban_data(Channel *c, User *u) return NULL; Anope::string mask = u->GetIdent() + "@" + u->GetDisplayedHost(); - for (std::list<BanData *>::iterator it = c->bd.begin(), it_end = c->bd.end(); it != it_end; ++it) + /* XXX This should really be on some sort of timer/garbage collector, and use std::map */ + for (std::list<BanData *>::iterator it = c->bd.begin(), it_end = c->bd.end(), it_next; it != it_end; it = it_next) { + it_next = it; + ++it_next; + if (Anope::CurTime - (*it)->last_use > Config->BSKeepData) { delete *it; |