summaryrefslogtreecommitdiff
path: root/modules/pseudoclients
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-10-14 12:20:07 -0400
committerAdam <Adam@anope.org>2011-10-14 12:20:07 -0400
commitddc3c2f38cf6ddc0c1f8ad82489a281e01ef50fc (patch)
tree832b02a62d2da9078b7ab5f9d4d5d99e15570294 /modules/pseudoclients
parent53275c362c521807b70e1eb7cf936f35593dd4dc (diff)
Added options:nonicknameownership config option
Diffstat (limited to 'modules/pseudoclients')
-rw-r--r--modules/pseudoclients/nickserv.cpp30
1 files changed, 16 insertions, 14 deletions
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp
index 595236bfa..6dded6f24 100644
--- a/modules/pseudoclients/nickserv.cpp
+++ b/modules/pseudoclients/nickserv.cpp
@@ -51,6 +51,9 @@ class MyNickServService : public NickServService
return;
}
+ if (Config->NoNicknameOwnership)
+ return;
+
if (u->IsRecognized(false) || !na->nc->HasFlag(NI_KILL_IMMED))
{
if (na->nc->HasFlag(NI_SECURE))
@@ -149,9 +152,8 @@ class NickServCore : public Module
User *u = finduser(na->nick);
if (u && u->Account() == na->nc)
{
+ ircdproto->SendLogout(u);
u->RemoveMode(NickServ, UMODE_REGISTERED);
- ircdproto->SendAccountLogout(u, u->Account());
- ircdproto->SendUnregisteredNick(u);
u->Logout();
}
}
@@ -166,9 +168,8 @@ class NickServCore : public Module
for (std::list<User *>::iterator it = nc->Users.begin(); it != nc->Users.end();)
{
User *user = *it++;
- ircdproto->SendAccountLogout(user, user->Account());
+ ircdproto->SendLogout(user);
user->RemoveMode(NickServ, UMODE_REGISTERED);
- ircdproto->SendUnregisteredNick(user);
user->Logout();
FOREACH_MOD(I_OnNickLogout, OnNickLogout(user));
}
@@ -182,9 +183,12 @@ class NickServCore : public Module
void OnNickIdentify(User *u)
{
- NickAlias *this_na = findnick(u->nick);
- if (this_na && this_na->nc == u->Account() && u->Account()->HasFlag(NI_UNCONFIRMED) == false)
- u->SetMode(NickServ, UMODE_REGISTERED);
+ if (!Config->NoNicknameOwnership)
+ {
+ NickAlias *this_na = findnick(u->nick);
+ if (this_na && this_na->nc == u->Account() && u->Account()->HasFlag(NI_UNCONFIRMED) == false)
+ u->SetMode(NickServ, UMODE_REGISTERED);
+ }
if (Config->NSModeOnID)
for (UChannelList::iterator it = u->chans.begin(), it_end = u->chans.end(); it != it_end; ++it)
@@ -208,7 +212,7 @@ class NickServCore : public Module
if (u->Account()->HasFlag(NI_UNCONFIRMED))
{
u->SendMessage(NickServ, _("Your email address is not confirmed. To confirm it, follow the instructions that were emailed to you when you registered."));
- this_na = findnick(u->Account()->display);
+ NickAlias *this_na = findnick(u->Account()->display);
time_t time_registered = Anope::CurTime - this_na->time_registered;
if (Config->NSUnconfirmedExpire > time_registered)
u->SendMessage(NickServ, _("Your account will expire, if not confirmed, in %s"), duration(Config->NSUnconfirmedExpire - time_registered).c_str());
@@ -238,18 +242,16 @@ class NickServCore : public Module
/* If the new nick isnt registerd or its registerd and not yours */
if (!na || na->nc != u->Account())
{
+ ircdproto->SendLogout(u);
u->RemoveMode(NickServ, UMODE_REGISTERED);
- ircdproto->SendUnregisteredNick(u);
this->mynickserv.Validate(u);
}
else
{
- if (na->nc->HasFlag(NI_UNCONFIRMED) == false)
- {
- u->SetMode(NickServ, UMODE_REGISTERED);
- ircdproto->SetAutoIdentificationToken(u);
- }
+ ircdproto->SendLogin(u);
+ if (!Config->NoNicknameOwnership && na->nc == u->Account() && na->nc->HasFlag(NI_UNCONFIRMED) == false)
+ u->SetMode(findbot(Config->NickServ), UMODE_REGISTERED);
Log(NickServ) << u->GetMask() << " automatically identified for group " << u->Account()->display;
}
}