1
0
mirror of https://github.com/anope/anope.git synced 2026-06-26 20:36:38 +02:00

Handle/send 1205-style PING/PONG messages.

This commit is contained in:
Peter Powell
2019-06-05 12:08:43 +01:00
committed by P. Powell
parent c35029fa2f
commit 2ee63f0f68
+22 -3
View File
@@ -102,6 +102,15 @@ class InspIRCd3Proto : public IRCDProto
UplinkSocket::Message(bi) << "PRIVMSG $" << dest->GetName() << " :" << msg;
}
void SendPong(const Anope::string &servname, const Anope::string &who) anope_override
{
Server *serv = servname.empty() ? NULL : Server::Find(servname);
if (!serv)
serv = Me;
UplinkSocket::Message(serv) << "PONG " << who;
}
void SendAkillDel(const XLine *x) anope_override
{
{
@@ -1634,6 +1643,16 @@ struct IRCDMessageOperType : IRCDMessage
}
};
struct IRCDMessagePing : IRCDMessage
{
IRCDMessagePing(Module *creator) : IRCDMessage(creator, "PING", 1) { SetFlag(IRCDMESSAGE_SOFT_LIMIT); SetFlag(IRCDMESSAGE_REQUIRE_SERVER); }
void Run(MessageSource &source, const std::vector<Anope::string> &params) anope_override
{
if (params[0] == Me->GetSID())
IRCD->SendPong(params[0], source.GetServer()->GetSID());
}
};
struct IRCDMessageRSQuit : IRCDMessage
{
@@ -1775,7 +1794,6 @@ class ProtoInspIRCd3 : public Module
Message::MOTD message_motd;
Message::Notice message_notice;
Message::Part message_part;
Message::Ping message_ping;
Message::Privmsg message_privmsg;
Message::Quit message_quit;
Message::Stats message_stats;
@@ -1798,6 +1816,7 @@ class ProtoInspIRCd3 : public Module
IRCDMessageMode message_mode;
IRCDMessageNick message_nick;
IRCDMessageOperType message_opertype;
IRCDMessagePing message_ping;
IRCDMessageRSQuit message_rsquit;
IRCDMessageServer message_server;
IRCDMessageSQuit message_squit;
@@ -1815,12 +1834,12 @@ class ProtoInspIRCd3 : public Module
ProtoInspIRCd3(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PROTOCOL | VENDOR),
ircd_proto(this),
message_error(this), message_invite(this), message_kill(this),
message_motd(this), message_notice(this), message_part(this), message_ping(this), message_privmsg(this),
message_motd(this), message_notice(this), message_part(this), message_privmsg(this),
message_quit(this), message_stats(this), message_away(this), message_capab(this),
message_encap(this), message_fhost(this), message_fident(this), message_kick(this),
message_metadata(this, use_server_side_topiclock, use_server_side_mlock), message_save(this),
message_endburst(this), message_fjoin(this), message_fmode(this), message_ftopic(this), message_idle(this), message_ijoin(this),
message_mode(this), message_nick(this), message_opertype(this), message_rsquit(this), message_server(this),
message_mode(this), message_nick(this), message_opertype(this), message_ping(this), message_rsquit(this), message_server(this),
message_squit(this), message_time(this), message_uid(this)
{
}