aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/compat.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2024-02-26 18:01:03 +0000
committerGravatar Sadie Powell2024-02-27 13:15:08 +0000
commit81e84056170f4f25a8dd0647739486f28fb5edcd (patch)
tree53259cc51942bb1db0149eb429a95780481b14e4 /src/modules/m_spanningtree/compat.cpp
parentMerge branch 'insp3' into master. (diff)
Move SVSJOIN/SVSNICK/SVSPART to the services module.
Diffstat (limited to 'src/modules/m_spanningtree/compat.cpp')
-rw-r--r--src/modules/m_spanningtree/compat.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp
index 5d61272ea..d193d5e5a 100644
--- a/src/modules/m_spanningtree/compat.cpp
+++ b/src/modules/m_spanningtree/compat.cpp
@@ -109,3 +109,20 @@ void TreeSocket::WriteLine(const std::string& original_line)
WriteLineInternal(line);
}
+
+bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, CommandBase::Params& params)
+{
+ if (irc::equals(cmd, "SVSJOIN") || irc::equals(cmd, "SVSNICK") || irc::equals(cmd, "SVSPART"))
+ {
+ if (params.empty())
+ return false; // Malformed.
+
+ auto* target = ServerInstance->Users.FindUUID(params[0]);
+ if (!target)
+ return false; // User gone.
+
+ params.insert(params.begin(), { cmd, target->uuid });
+ cmd = "ENCAP";
+ }
+ return true;
+}