summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-01-21 17:20:15 -0500
committerAdam <Adam@anope.org>2014-01-21 17:20:15 -0500
commit4d9273efa42a16380de8ac81c615eaac89052f68 (patch)
tree8c33a14022cdd5fe303fd3bd5160a5b490752c78
parent67c13b41eeda261b9b94a5cbc9eb55413b0d92cd (diff)
Unbreak account stuff from commit ccae59430ab50393f43ccc38a6a6c0c24191b601.
-rw-r--r--include/protocol.h2
-rw-r--r--modules/commands/ns_register.cpp11
-rw-r--r--modules/protocol/bahamut.cpp2
-rw-r--r--modules/protocol/charybdis.cpp15
-rw-r--r--modules/protocol/hybrid.cpp4
-rw-r--r--modules/protocol/inspircd12.cpp7
-rw-r--r--modules/protocol/inspircd20.cpp2
-rw-r--r--modules/protocol/ngircd.cpp4
-rw-r--r--modules/protocol/plexus.cpp7
-rw-r--r--modules/protocol/ratbox.cpp6
-rw-r--r--modules/protocol/unreal.cpp7
-rw-r--r--modules/pseudoclients/nickserv.cpp2
-rw-r--r--src/users.cpp2
13 files changed, 29 insertions, 42 deletions
diff --git a/include/protocol.h b/include/protocol.h
index f05eae6ab..9eee494ea 100644
--- a/include/protocol.h
+++ b/include/protocol.h
@@ -204,7 +204,7 @@ class CoreExport IRCDProto : public Service
virtual void SendNumeric(int numeric, const Anope::string &dest, const char *fmt, ...);
- virtual void SendLogin(User *u) = 0;
+ virtual void SendLogin(User *u, NickAlias *na) = 0;
virtual void SendLogout(User *u) = 0;
/** Send a channel creation message to the uplink.
diff --git a/modules/commands/ns_register.cpp b/modules/commands/ns_register.cpp
index 8020dd3f0..434e7d690 100644
--- a/modules/commands/ns_register.cpp
+++ b/modules/commands/ns_register.cpp
@@ -54,10 +54,13 @@ class CommandNSConfirm : public Command
if (source.GetUser())
{
- IRCD->SendLogin(source.GetUser());
- const NickAlias *na = NickAlias::Find(source.GetNick());
- if (!Config->GetModule("nickserv")->Get<bool>("nonicknameownership") && na != NULL && na->nc == source.GetAccount() && !na->nc->HasExt("UNCONFIRMED"))
- source.GetUser()->SetMode(source.service, "REGISTERED");
+ NickAlias *na = NickAlias::Find(source.GetNick());
+ if (na)
+ {
+ IRCD->SendLogin(source.GetUser(), na);
+ if (!Config->GetModule("nickserv")->Get<bool>("nonicknameownership") && na->nc == source.GetAccount() && !na->nc->HasExt("UNCONFIRMED"))
+ source.GetUser()->SetMode(source.service, "REGISTERED");
+ }
}
}
else
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp
index 04bcbeb10..80f4c4827 100644
--- a/modules/protocol/bahamut.cpp
+++ b/modules/protocol/bahamut.cpp
@@ -282,7 +282,7 @@ class BahamutIRCdProto : public IRCDProto
UplinkSocket::Message() << "SJOIN " << c->creation_time << " " << c->name << " " << modes << " :";
}
- void SendLogin(User *u) anope_override
+ void SendLogin(User *u, NickAlias *) anope_override
{
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %d", u->signon);
}
diff --git a/modules/protocol/charybdis.cpp b/modules/protocol/charybdis.cpp
index 3cfb5a09a..bdf6d014b 100644
--- a/modules/protocol/charybdis.cpp
+++ b/modules/protocol/charybdis.cpp
@@ -60,6 +60,8 @@ class CharybdisProto : public IRCDProto
void SendChannel(Channel *c) anope_override { ratbox->SendChannel(c); }
void SendTopic(const MessageSource &source, Channel *c) anope_override { ratbox->SendTopic(source, c); }
bool IsIdentValid(const Anope::string &ident) anope_override { return ratbox->IsIdentValid(ident); }
+ void SendLogin(User *u, NickAlias *na) anope_override { ratbox->SendLogin(u, na); }
+ void SendLogout(User *u) anope_override { ratbox->SendLogout(u); }
void SendSQLine(User *, const XLine *x) anope_override
{
@@ -113,19 +115,6 @@ class CharybdisProto : public IRCDProto
UplinkSocket::Message(Me) << "EUID " << u->nick << " 1 " << u->timestamp << " " << modes << " " << u->GetIdent() << " " << u->host << " 0 " << u->GetUID() << " * * :" << u->realname;
}
- void SendLogin(User *u) anope_override
- {
- if (!u->Account())
- return;
-
- UplinkSocket::Message(Me) << "ENCAP * SU " << u->GetUID() << " " << u->Account()->display;
- }
-
- void SendLogout(User *u) anope_override
- {
- UplinkSocket::Message(Me) << "ENCAP * SU " << u->GetUID();
- }
-
void SendForceNickChange(User *u, const Anope::string &newnick, time_t when) anope_override
{
UplinkSocket::Message(Me) << "ENCAP " << u->server->GetName() << " RSFNC " << u->GetUID()
diff --git a/modules/protocol/hybrid.cpp b/modules/protocol/hybrid.cpp
index ab5777b86..708e66849 100644
--- a/modules/protocol/hybrid.cpp
+++ b/modules/protocol/hybrid.cpp
@@ -211,9 +211,9 @@ class HybridProto : public IRCDProto
UplinkSocket::Message(source) << "SVSMODE " << u->GetUID() << " " << u->timestamp << " " << buf;
}
- void SendLogin(User *u) anope_override
+ void SendLogin(User *u, NickAlias *na) anope_override
{
- IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %s", u->Account()->display.c_str());
+ IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %s", na->nc->display.c_str());
}
void SendLogout(User *u) anope_override
diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp
index eee028d2f..45a00e400 100644
--- a/modules/protocol/inspircd12.cpp
+++ b/modules/protocol/inspircd12.cpp
@@ -375,12 +375,13 @@ class InspIRCd12Proto : public IRCDProto
UplinkSocket::Message(source) << "SNONOTICE A :" << buf;
}
- void SendLogin(User *u) anope_override
+ void SendLogin(User *u, NickAlias *na) anope_override
{
- if (!u->Account() || u->Account()->HasExt("UNCONFIRMED"))
+ /* InspIRCd uses an account to bypass chmode +R, not umode +r, so we can't send this here */
+ if (na->nc->HasExt("UNCONFIRMED"))
return;
- UplinkSocket::Message(Me) << "METADATA " << u->GetUID() << " accountname :" << u->Account()->display;
+ UplinkSocket::Message(Me) << "METADATA " << u->GetUID() << " accountname :" << na->nc->display;
}
void SendLogout(User *u) anope_override
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index 7e068e96c..6ee000f68 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -68,7 +68,7 @@ class InspIRCd20Proto : public IRCDProto
void SendBOB() anope_override { insp12->SendBOB(); }
void SendEOB() anope_override { insp12->SendEOB(); }
void SendGlobopsInternal(const MessageSource &source, const Anope::string &buf) { insp12->SendGlobopsInternal(source, buf); }
- void SendLogin(User *u) anope_override { insp12->SendLogin(u); }
+ void SendLogin(User *u, NickAlias *na) anope_override { insp12->SendLogin(u, na); }
void SendLogout(User *u) anope_override { insp12->SendLogout(u); }
void SendChannel(Channel *c) anope_override { insp12->SendChannel(c); }
bool IsExtbanValid(const Anope::string &mask) anope_override { return insp12->IsExtbanValid(mask); }
diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp
index 70913dde2..0d7a0b3bc 100644
--- a/modules/protocol/ngircd.cpp
+++ b/modules/protocol/ngircd.cpp
@@ -112,9 +112,9 @@ class ngIRCdProto : public IRCDProto
UplinkSocket::Message(source) << "KICK " << chan->name << " " << user->nick;
}
- void SendLogin(User *u) anope_override
+ void SendLogin(User *u, NickAlias *na) anope_override
{
- UplinkSocket::Message(Me) << "METADATA " << u->GetUID() << " accountname :" << u->Account()->display;
+ UplinkSocket::Message(Me) << "METADATA " << u->GetUID() << " accountname :" << na->nc->display;
}
void SendLogout(User *u) anope_override
diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp
index f4f8b19fd..05da5892e 100644
--- a/modules/protocol/plexus.cpp
+++ b/modules/protocol/plexus.cpp
@@ -144,12 +144,9 @@ class PlexusProto : public IRCDProto
UplinkSocket::Message(source) << "ENCAP * SVSMODE " << u->GetUID() << " " << u->timestamp << " " << buf;
}
- void SendLogin(User *u) anope_override
+ void SendLogin(User *u, NickAlias *na) anope_override
{
- if (!u->Account())
- return;
-
- UplinkSocket::Message(Me) << "ENCAP * SU " << u->GetUID() << " " << u->Account()->display;
+ UplinkSocket::Message(Me) << "ENCAP * SU " << u->GetUID() << " " << na->nc->display;
}
void SendLogout(User *u) anope_override
diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp
index 7b6a9f345..0cb8a6df2 100644
--- a/modules/protocol/ratbox.cpp
+++ b/modules/protocol/ratbox.cpp
@@ -82,12 +82,12 @@ class RatboxProto : public IRCDProto
UplinkSocket::Message(Me) << "UID " << u->nick << " 1 " << u->timestamp << " " << modes << " " << u->GetIdent() << " " << u->host << " 0 " << u->GetUID() << " :" << u->realname;
}
- void SendLogin(User *u) anope_override
+ void SendLogin(User *u, NickAlias *na) anope_override
{
- if (!u->Account())
+ if (na->nc->HasExt("UNCONFIRMED"))
return;
- UplinkSocket::Message(Me) << "ENCAP * SU " << u->GetUID() << " " << u->Account()->display;
+ UplinkSocket::Message(Me) << "ENCAP * SU " << u->GetUID() << " " << na->nc->display;
}
void SendLogout(User *u) anope_override
diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp
index ce3d8c3a5..bac81a745 100644
--- a/modules/protocol/unreal.cpp
+++ b/modules/protocol/unreal.cpp
@@ -344,13 +344,10 @@ class UnrealIRCdProto : public IRCDProto
return mask.length() >= 4 && mask[0] == '~' && mask[2] == ':';
}
- void SendLogin(User *u) anope_override
+ void SendLogin(User *u, NickAlias *na) anope_override
{
- if (!u->Account())
- return;
-
if (Servers::Capab.count("ESVID") > 0)
- IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %s", u->Account()->display.c_str());
+ IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %s", na->nc->display.c_str());
else
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %d", u->signon);
}
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp
index 04ea411c4..a08681878 100644
--- a/modules/pseudoclients/nickserv.cpp
+++ b/modules/pseudoclients/nickserv.cpp
@@ -406,7 +406,7 @@ class NickServCore : public Module, public NickServService
else
{
/* Reset +r and re-send account (even though it really should be set at this point) */
- IRCD->SendLogin(u);
+ IRCD->SendLogin(u, na);
if (!Config->GetModule("nickserv")->Get<bool>("nonicknameownership") && na->nc == u->Account() && !na->nc->HasExt("UNCONFIRMED"))
u->SetMode(NickServ, "REGISTERED");
Log(NickServ) << u->GetMask() << " automatically identified for group " << u->Account()->display;
diff --git a/src/users.cpp b/src/users.cpp
index b90da29a3..088aa5a67 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -303,7 +303,7 @@ void User::Identify(NickAlias *na)
na->last_seen = Anope::CurTime;
}
- IRCD->SendLogin(this);
+ IRCD->SendLogin(this, na);
this->Login(na->nc);