summaryrefslogtreecommitdiff
path: root/modules/protocol/solanum.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/solanum.cpp')
-rw-r--r--modules/protocol/solanum.cpp53
1 files changed, 27 insertions, 26 deletions
diff --git a/modules/protocol/solanum.cpp b/modules/protocol/solanum.cpp
index d0311fd15..ac0ebd8fa 100644
--- a/modules/protocol/solanum.cpp
+++ b/modules/protocol/solanum.cpp
@@ -75,12 +75,13 @@ public:
for (const auto &mechanism : mechanisms)
mechlist += "," + mechanism;
- UplinkSocket::Message(Me) << "ENCAP * MECHLIST :" << (mechanisms.empty() ? "" : mechlist.substr(1));
+ Uplink::Send("ENCAP", '*', "MECHLIST", mechanisms.empty() ? "" : mechlist.substr(1));
}
void SendConnect() override
{
- UplinkSocket::Message() << "PASS " << Config->Uplinks[Anope::CurrentUplink].password << " TS 6 :" << Me->GetSID();
+ Uplink::Send("PASS", Config->Uplinks[Anope::CurrentUplink].password, "TS", 6, Me->GetSID());
+
/*
* Received: CAPAB :BAN CHW CLUSTER ENCAP EOPMOD EUID EX IE KLN
* KNOCK MLOCK QS RSFNC SAVE SERVICES TB UNKLN
@@ -105,7 +106,7 @@ public:
* UNKLN - Can do UNKLINE (encap only)
* QS - Can handle quit storm removal
*/
- UplinkSocket::Message() << "CAPAB :BAN CHW CLUSTER ECHO ENCAP EOPMOD EUID EX IE KLN KNOCK MLOCK QS RSFNC SERVICES TB UNKLN";
+ Uplink::Send("CAPAB", "BAN CHW CLUSTER ECHO ENCAP EOPMOD EUID EX IE KLN KNOCK MLOCK QS RSFNC SERVICES TB UNKLN");
/* Make myself known to myself in the serverlist */
SendServer(Me);
@@ -117,34 +118,32 @@ public:
* arg[2] = '0'
* arg[3] = server's idea of UTC time
*/
- UplinkSocket::Message() << "SVINFO 6 6 0 :" << Anope::CurTime;
+ Uplink::Send("SVINFO", 6, 6, 0, Anope::CurTime);
}
void SendClientIntroduction(User *u) override
{
- Anope::string modes = "+" + u->GetModes();
- UplinkSocket::Message(Me) << "EUID " << u->nick << " 1 " << u->timestamp << " " << modes << " " << u->GetIdent() << " " << u->host << " 0 " << u->GetUID() << " * * :" << u->realname;
+ Uplink::Send("EUID", u->nick, 1, u->timestamp, "+" + u->GetModes(), u->GetIdent(), u->host, 0, u->GetUID(), '*', '*', u->realname);
}
void SendForceNickChange(User *u, const Anope::string &newnick, time_t when) override
{
- UplinkSocket::Message(Me) << "ENCAP " << u->server->GetName() << " RSFNC " << u->GetUID()
- << " " << newnick << " " << when << " " << u->timestamp;
+ Uplink::Send("ENCAP", u->server->GetName(), "RSFNC", u->GetUID(), newnick, when, u->timestamp);
}
void SendSVSHold(const Anope::string &nick, time_t delay) override
{
- UplinkSocket::Message(Me) << "ENCAP * NICKDELAY " << delay << " " << nick;
+ Uplink::Send("ENCAP", '*', "NICKDELAY", delay, nick);
}
void SendSVSHoldDel(const Anope::string &nick) override
{
- UplinkSocket::Message(Me) << "ENCAP * NICKDELAY 0 " << nick;
+ Uplink::Send("ENCAP", '*', "NICKDELAY", 0, nick);
}
void SendVhost(User *u, const Anope::string &ident, const Anope::string &host) override
{
- UplinkSocket::Message(Me) << "ENCAP * CHGHOST " << u->GetUID() << " :" << host;
+ Uplink::Send("ENCAP", '*', "CHGHOST", u->GetUID(), host);
}
void SendVhostDel(User *u) override
@@ -155,19 +154,21 @@ public:
void SendSASLMessage(const SASL::Message &message) override
{
Server *s = Server::Find(message.target.substr(0, 3));
- UplinkSocket::Message(Me) << "ENCAP " << (s ? s->GetName() : message.target.substr(0, 3)) << " SASL " << message.source << " " << message.target << " " << message.type << " " << message.data << (message.ext.empty() ? "" : (" " + message.ext));
+ auto target = s ? s->GetName() : message.target.substr(0, 3);
+ if (message.ext.empty())
+ Uplink::Send("ENCAP", target, "SASL", message.source, message.target, message.type, message.data);
+ else
+ Uplink::Send("ENCAP", target, "SASL", message.source, message.target, message.type, message.data, message.ext);
}
void SendSVSLogin(const Anope::string &uid, NickAlias *na) override
{
Server *s = Server::Find(uid.substr(0, 3));
- UplinkSocket::Message(Me) << "ENCAP " << (s ? s->GetName() : uid.substr(0, 3)) << " SVSLOGIN " << uid << " * "
- << (na && !na->GetVhostIdent().empty() ? na->GetVhostIdent() : '*')
- << " "
- << (na && !na->GetVhostHost().empty() ? na->GetVhostHost() : '*')
- << " "
- << (na ? na->nc->display : "0");
+ Uplink::Send("ENCAP", s ? s->GetName() : uid.substr(0, 3), "SVSLOGIN", uid, '*',
+ na && !na->GetVhostIdent().empty() ? na->GetVhostIdent() : '*',
+ na && !na->GetVhostHost().empty() ? na->GetVhostHost() : '*',
+ na ? na->nc->display : "0");
}
};
@@ -295,7 +296,7 @@ struct IRCDMessageNotice final
void Run(MessageSource &source, const std::vector<Anope::string> &params, const Anope::map<Anope::string> &tags) override
{
if (Servers::Capab.count("ECHO"))
- UplinkSocket::Message(Me) << "ECHO N " << source.GetSource() << " :" << params[1];
+ Uplink::Send("ECHO", 'N', source.GetSource(), params[1]);
Message::Notice::Run(source, params, tags);
}
@@ -309,7 +310,7 @@ struct IRCDMessagePrivmsg final
void Run(MessageSource &source, const std::vector<Anope::string> &params, const Anope::map<Anope::string> &tags) override
{
if (Servers::Capab.count("ECHO"))
- UplinkSocket::Message(Me) << "ECHO P " << source.GetSource() << " :" << params[1];
+ Uplink::Send("ECHO", 'P', source.GetSource(), params[1]);
Message::Privmsg::Run(source, params, tags);
}
@@ -424,15 +425,15 @@ public:
// If the user has logged into their current nickname then mark them as such.
NickAlias *na = NickAlias::Find(u->nick);
if (na && na->nc == u->Account())
- UplinkSocket::Message(Me) << "ENCAP * IDENTIFIED " << u->GetUID() << " " << u->nick;
+ Uplink::Send("ENCAP", '*', "IDENTIFIED", u->GetUID(), u->nick);
else
- UplinkSocket::Message(Me) << "ENCAP * IDENTIFIED " << u->GetUID() << " " << u->nick << " OFF";
+ Uplink::Send("ENCAP", '*', "IDENTIFIED", u->GetUID(), u->nick, "OFF");
}
void OnNickLogout(User *u) override
{
// We don't know what account the user was logged into so send in all cases.
- UplinkSocket::Message(Me) << "ENCAP * IDENTIFIED " << u->GetUID() << " " << u->nick << " OFF";
+ Uplink::Send("ENCAP", '*', "IDENTIFIED", u->GetUID(), u->nick, "OFF");
}
void OnUserNickChange(User *u, const Anope::string &) override
@@ -457,7 +458,7 @@ public:
if (use_server_side_mlock && modelocks && Servers::Capab.count("MLOCK") > 0)
{
Anope::string modes = modelocks->GetMLockAsString(false).replace_all_cs("+", "").replace_all_cs("-", "");
- UplinkSocket::Message(Me) << "MLOCK " << static_cast<long>(c->creation_time) << " " << c->ci->name << " " << modes;
+ Uplink::Send("MLOCK", c->creation_time, c->ci->name, modes);
}
}
@@ -468,7 +469,7 @@ public:
if (use_server_side_mlock && cm && ci->c && modelocks && (cm->type == MODE_REGULAR || cm->type == MODE_PARAM) && Servers::Capab.count("MLOCK") > 0)
{
Anope::string modes = modelocks->GetMLockAsString(false).replace_all_cs("+", "").replace_all_cs("-", "") + cm->mchar;
- UplinkSocket::Message(Me) << "MLOCK " << static_cast<long>(ci->c->creation_time) << " " << ci->name << " " << modes;
+ Uplink::Send("MLOCK", ci->c->creation_time, ci->name, modes);
}
return EVENT_CONTINUE;
@@ -481,7 +482,7 @@ public:
if (use_server_side_mlock && cm && modelocks && ci->c && (cm->type == MODE_REGULAR || cm->type == MODE_PARAM) && Servers::Capab.count("MLOCK") > 0)
{
Anope::string modes = modelocks->GetMLockAsString(false).replace_all_cs("+", "").replace_all_cs("-", "").replace_all_cs(cm->mchar, "");
- UplinkSocket::Message(Me) << "MLOCK " << static_cast<long>(ci->c->creation_time) << " " << ci->name << " " << modes;
+ Uplink::Send("MLOCK", ci->c->creation_time, ci->name, modes);
}
return EVENT_CONTINUE;