From 302c4f334e364d196862de15a723923fd2db605b Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Fri, 10 Oct 2025 22:27:26 +0100 Subject: [PATCH] Add support for S2S tags on Solanum. --- modules/protocol/solanum.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/protocol/solanum.cpp b/modules/protocol/solanum.cpp index 27e137480..4f1b02a43 100644 --- a/modules/protocol/solanum.cpp +++ b/modules/protocol/solanum.cpp @@ -70,6 +70,11 @@ public: void SendLogin(User *u, NickAlias *na) override { ratbox->SendLogin(u, na); } void SendLogout(User *u) override { ratbox->SendLogout(u); } + bool IsTagValid(const Anope::string &tname, const Anope::string &tvalue) override + { + return !!Servers::Capab.count("STAG"); + } + void SendSASLMechanisms(std::vector &mechanisms) override { Anope::string mechlist; @@ -108,7 +113,8 @@ public: * UNKLN - Can do UNKLINE (encap only) * QS - Can handle quit storm removal */ - Uplink::Send("CAPAB", "BAN CHW CLUSTER EBMASK ECHO ENCAP EOPMOD EUID EX IE KLN KNOCK MLOCK QS RSFNC SERVICES TB UNKLN"); + // TODO: review the caps we send here. + Uplink::Send("CAPAB", "BAN CHW CLUSTER EBMASK ECHO ENCAP EOPMOD EUID EX IE KLN KNOCK MLOCK QS RSFNC SERVICES STAG TB UNKLN"); /* Make myself known to myself in the serverlist */ SendServer(Me); @@ -447,6 +453,9 @@ class ProtoSolanum final ServiceAlias message_bmask, message_join, message_nick, message_pong, message_sid, message_sjoin, message_tb, message_tmode, message_uid; + /* Ignored message handlers. */ + Message::Ignore message_echo; + /* Our message handlers */ IRCDMessageEBMask message_ebmask; IRCDMessageEncap message_encap; @@ -510,6 +519,7 @@ public: , message_tb("IRCDMessage", "solanum/tb", "ratbox/tb") , message_tmode("IRCDMessage", "solanum/tmode", "ratbox/tmode") , message_uid("IRCDMessage", "solanum/uid", "ratbox/uid") + , message_echo(this, "ECHO") , message_ebmask(this) , message_encap(this) , message_euid(this)