summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd11.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/inspircd11.cpp')
-rw-r--r--modules/protocol/inspircd11.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/modules/protocol/inspircd11.cpp b/modules/protocol/inspircd11.cpp
index 31ea2ae19..c06b74501 100644
--- a/modules/protocol/inspircd11.cpp
+++ b/modules/protocol/inspircd11.cpp
@@ -277,7 +277,6 @@ class InspIRCdProto : public IRCDProto
void SetAutoIdentificationToken(User *u)
{
-
if (!u->Account())
return;
@@ -288,6 +287,7 @@ class InspIRCdProto : public IRCDProto
u->SetMode(NickServ, UMODE_REGISTERED);
}
+
} ircd_proto;
int anope_event_ftopic(const Anope::string &source, int ac, const char **av)
@@ -734,13 +734,19 @@ int anope_event_nick(const Anope::string &source, int ac, const char **av)
if (user)
{
user->hostip = av[6];
- /* InspIRCd1.1 has no user mode +d so we
- * use nick timestamp to check for auth - Adam
- */
- user->CheckAuthenticationToken(av[0]);
UserSetInternalModes(user, 1, &av[5]);
user->SetCloakedHost(av[3]);
+
+ NickAlias *na = findnick(user->nick);
+ Anope::string svidbuf;
+ if (na && na->nc->GetExtRegular("authenticationtoken", svidbuf) && svidbuf == av[0])
+ {
+ user->Login(na->nc);
+ user->SetMode(NickServ, UMODE_REGISTERED);
+ }
+ else
+ validate_user(user);
}
}
}