diff options
| author | Adam <Adam@anope.org> | 2010-11-22 10:08:37 -0600 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2010-12-12 19:36:01 -0500 |
| commit | 697dc8938279f33f2ac2c0b2248793c75de07b19 (patch) | |
| tree | 3b8259dbded67f87f9e17742ebef5b0043e3ebdc /src/nickserv.cpp | |
| parent | 4d342d955dbe604357c652a1ee09d77c9a38ec6d (diff) | |
Added a default expiry time for suspended and forbidden nicks and channels
Diffstat (limited to 'src/nickserv.cpp')
| -rw-r--r-- | src/nickserv.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/nickserv.cpp b/src/nickserv.cpp index e21d85e45..6212c7d3e 100644 --- a/src/nickserv.cpp +++ b/src/nickserv.cpp @@ -257,13 +257,34 @@ void expire_nicks() continue; } - if (Config->NSExpire && Anope::CurTime - na->last_seen >= Config->NSExpire && !na->HasFlag(NS_FORBIDDEN) && !na->HasFlag(NS_NO_EXPIRE) && !na->nc->HasFlag(NI_SUSPENDED)) + bool expire = false; + if (na->nc->HasFlag(NI_SUSPENDED)) + { + if (Config->NSSuspendExpire && Anope::CurTime - na->last_seen >= Config->NSSuspendExpire) + expire = true; + } + else if (na->HasFlag(NS_FORBIDDEN)) + { + if (Config->NSForbidExpire && Anope::CurTime - na->last_seen >= Config->NSForbidExpire) + expire = true; + } + else if (Config->NSExpire && Anope::CurTime - na->last_seen >= Config->NSExpire) + expire = true; + if (na->HasFlag(NS_NO_EXPIRE)) + expire = false; + + if (expire) { EventReturn MOD_RESULT; FOREACH_RESULT(I_OnPreNickExpire, OnPreNickExpire(na)); if (MOD_RESULT == EVENT_STOP) continue; - Log(LOG_NORMAL, "expire") << "Expiring nickname " << na->nick << " (group: " << na->nc->display << ") (e-mail: " << (na->nc->email.empty() ? "none" : na->nc->email) << ")"; + Anope::string extra; + if (na->HasFlag(NS_FORBIDDEN)) + extra = "forbidden "; + else if (na->nc->HasFlag(NI_SUSPENDED)) + extra = "suspended "; + Log(LOG_NORMAL, "expire") << "Expiring " << extra << "nickname " << na->nick << " (group: " << na->nc->display << ") (e-mail: " << (na->nc->email.empty() ? "none" : na->nc->email) << ")"; FOREACH_MOD(I_OnNickExpire, OnNickExpire(na)); delete na; } |
