summaryrefslogtreecommitdiff
path: root/src/users.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-05-06 18:02:53 -0400
committerAdam <Adam@anope.org>2011-05-16 04:10:18 -0400
commitfd4b52ec385167794eaadb18ee635bef757728ee (patch)
tree49d3e835b072a10887309d8d9155982a5aa61ed0 /src/users.cpp
parentb59602abf85d522bb2f188be70b6cb7c9556a856 (diff)
Added os_forbid
Diffstat (limited to 'src/users.cpp')
-rw-r--r--src/users.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/users.cpp b/src/users.cpp
index 0e986cc93..1b06461ed 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -315,13 +315,19 @@ void User::Collide(NickAlias *na)
{
Anope::string guestnick;
+ int i = 0;
do
{
guestnick = Config->NSGuestNickPrefix + stringify(getrandom16());
- } while (finduser(guestnick));
+ } while (finduser(guestnick) && i++ < 10);
- this->SendMessage(nickserv->Bot(), _("Your nickname is now being changed to \002%s\002"), guestnick.c_str());
- ircdproto->SendForceNickChange(this, guestnick, Anope::CurTime);
+ if (i == 11)
+ this->Kill(Config->s_NickServ, "Services nickname-enforcer kill");
+ else
+ {
+ this->SendMessage(nickserv->Bot(), _("Your nickname is now being changed to \002%s\002"), guestnick.c_str());
+ ircdproto->SendForceNickChange(this, guestnick, Anope::CurTime);
+ }
}
else
this->Kill(Config->s_NickServ, "Services nickname-enforcer kill");
@@ -883,7 +889,7 @@ void do_kill(User *user, const Anope::string &msg)
Log(user, "killed") << "was killed (Reason: " << msg << ")";
NickAlias *na = findnick(user->nick);
- if (na && !na->HasFlag(NS_FORBIDDEN) && !na->nc->HasFlag(NI_SUSPENDED) && (user->IsRecognized() || user->IsIdentified(true)))
+ if (na && !na->nc->HasFlag(NI_SUSPENDED) && (user->IsRecognized() || user->IsIdentified(true)))
{
na->last_seen = Anope::CurTime;
na->last_quit = msg;