1
0
mirror of https://github.com/anope/anope.git synced 2026-07-02 14:53:13 +02:00

Rework SendModeInternal to be usable with Uplink::Send.

This commit is contained in:
Sadie Powell
2024-02-21 20:45:38 +00:00
parent 9b77fdf5b6
commit aefbb4fbda
9 changed files with 79 additions and 64 deletions
+11 -7
View File
@@ -47,19 +47,23 @@ public:
MaxModes = 60;
}
void SendModeInternal(const MessageSource &source, const Channel *dest, const Anope::string &buf) override
void SendModeInternal(const MessageSource &source, Channel *chan, const Anope::string &modes, const std::vector<Anope::string> &values) override
{
if (Servers::Capab.count("TSMODE") > 0)
{
UplinkSocket::Message(source) << "MODE " << dest->name << " " << dest->creation_time << " " << buf;
auto params = values;
params.insert(params.begin(), { chan->name, stringify(chan->creation_time), modes });
Uplink::SendInternal({}, source, "MODE", params);
}
else
IRCDProto::SendModeInternal(source, dest, buf);
IRCDProto::SendModeInternal(source, chan, modes, values);
}
void SendModeInternal(const MessageSource &source, User *u, const Anope::string &buf) override
void SendModeInternal(const MessageSource &source, User* u, const Anope::string &modes, const std::vector<Anope::string> &values) override
{
UplinkSocket::Message(source) << "SVSMODE " << u->nick << " " << u->timestamp << " " << buf;
auto params = values;
params.insert(params.begin(), { u->nick, stringify(u->timestamp), modes });
Uplink::SendInternal({}, source, "SVSMODE", params);
}
void SendGlobalNotice(BotInfo *bi, const Server *dest, const Anope::string &msg) override
@@ -283,12 +287,12 @@ public:
void SendLogin(User *u, NickAlias *) override
{
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %ld", (unsigned long)u->signon);
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d", u->signon);
}
void SendLogout(User *u) override
{
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d 1");
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d", 1);
}
};
+6 -4
View File
@@ -205,15 +205,17 @@ public:
UplinkSocket::Message(Me) << "EOB";
}
void SendModeInternal(const MessageSource &source, User *u, const Anope::string &buf) override
void SendModeInternal(const MessageSource &source, User* u, const Anope::string &modes, const std::vector<Anope::string> &values) override
{
UplinkSocket::Message(source) << "SVSMODE " << u->GetUID() << " " << u->timestamp << " " << buf;
auto params = values;
params.insert(params.begin(), { u->GetUID(), stringify(u->timestamp), modes });
Uplink::SendInternal({}, source, "SVSMODE", params);
}
void SendLogin(User *u, NickAlias *na) override
{
if (UseSVSAccount == false)
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %s", na->nc->display.c_str());
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d", na->nc->display);
else
UplinkSocket::Message(Me) << "SVSACCOUNT " << u->GetUID() << " " << u->timestamp << " " << na->nc->display;
}
@@ -221,7 +223,7 @@ public:
void SendLogout(User *u) override
{
if (UseSVSAccount == false)
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d *");
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d", '*');
else
UplinkSocket::Message(Me) << "SVSACCOUNT " << u->GetUID() << " " << u->timestamp << " *";
}
+5 -3
View File
@@ -299,13 +299,15 @@ public:
void SendNumericInternal(int numeric, const Anope::string &dest, const std::vector<Anope::string> &params) override
{
auto newparams = params;
newparams.insert(newparams.begin(), { Me->GetSID(), dest, numeric });
newparams.insert(newparams.begin(), { Me->GetSID(), dest, stringify(numeric) });
Uplink::SendInternal({}, Me, numeric, newparams);
}
void SendModeInternal(const MessageSource &source, const Channel *dest, const Anope::string &buf) override
void SendModeInternal(const MessageSource &source, Channel *chan, const Anope::string &modes, const std::vector<Anope::string> &values) override
{
UplinkSocket::Message(source) << "FMODE " << dest->name << " " << dest->creation_time << " " << buf;
auto params = values;
params.insert(params.begin(), { chan->name, stringify(chan->creation_time), modes });
Uplink::SendInternal({}, source, "FMODE", params);
}
void SendClientIntroduction(User *u) override
+4 -2
View File
@@ -139,9 +139,11 @@ public:
UplinkSocket::Message(Me) << "UID " << u->nick << " 1 " << u->timestamp << " " << modes << " " << u->GetIdent() << " " << u->host << " 255.255.255.255 " << u->GetUID() << " 0 " << u->host << " :" << u->realname;
}
void SendModeInternal(const MessageSource &source, User *u, const Anope::string &buf) override
void SendModeInternal(const MessageSource &source, User* u, const Anope::string &modes, const std::vector<Anope::string> &values) override
{
UplinkSocket::Message(source) << "ENCAP * SVSMODE " << u->GetUID() << " " << u->timestamp << " " << buf;
auto params = values;
params.insert(params.begin(), { "*", "SVSMODE", u->GetUID(), stringify(u->timestamp), modes });
Uplink::SendInternal({}, source, "ENCAP", params);
}
void SendLogin(User *u, NickAlias *na) override
+1 -1
View File
@@ -53,7 +53,7 @@ public:
void SendAkillDel(const XLine *x) override { hybrid->SendAkillDel(x); }
void SendJoin(User *user, Channel *c, const ChannelStatus *status) override { hybrid->SendJoin(user, c, status); }
void SendServer(const Server *server) override { hybrid->SendServer(server); }
void SendModeInternal(const MessageSource &source, User *u, const Anope::string &buf) override { hybrid->SendModeInternal(source, u, buf); }
void SendModeInternal(const MessageSource &source, User *u, const Anope::string &modes, const std::vector<Anope::string> &values) override { hybrid->SendModeInternal(source, u, modes, values); }
void SendChannel(Channel *c) override { hybrid->SendChannel(c); }
bool IsIdentValid(const Anope::string &ident) override { return hybrid->IsIdentValid(ident); }
+8 -6
View File
@@ -134,10 +134,12 @@ private:
user->KillInternal(source, buf);
}
void SendModeInternal(const MessageSource &source, User *u, const Anope::string &buf) override
void SendModeInternal(const MessageSource &source, User *u, const Anope::string &modes, const std::vector<Anope::string> &values) override
{
UplinkSocket::Message(source) << "SVS2MODE " << u->GetUID() <<" " << buf;
}
auto params = values;
params.insert(params.begin(), { u->GetUID(), modes });
Uplink::SendInternal({}, source, "SVS2MODE", params);
}
void SendClientIntroduction(User *u) override
{
@@ -350,14 +352,14 @@ private:
{
/* 3.2.10.4+ treats users logged in with accounts as fully registered, even if -r, so we can not set this here. Just use the timestamp. */
if (Servers::Capab.count("ESVID") > 0 && !na->nc->HasExt("UNCONFIRMED"))
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %s", na->nc->display.c_str());
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d", na->nc->display);
else
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d %ld", (unsigned long)u->signon);
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d", u->signon);
}
void SendLogout(User *u) override
{
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d 0");
IRCD->SendMode(Config->GetClient("NickServ"), u, "+d", 0);
}
void SendChannel(Channel *c) override