summaryrefslogtreecommitdiff
path: root/src/nickserv.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-11-22 10:08:37 -0600
committerAdam <Adam@anope.org>2010-12-12 19:36:01 -0500
commit697dc8938279f33f2ac2c0b2248793c75de07b19 (patch)
tree3b8259dbded67f87f9e17742ebef5b0043e3ebdc /src/nickserv.cpp
parent4d342d955dbe604357c652a1ee09d77c9a38ec6d (diff)
Added a default expiry time for suspended and forbidden nicks and channels
Diffstat (limited to 'src/nickserv.cpp')
-rw-r--r--src/nickserv.cpp25
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;
}