aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/encap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_spanningtree/encap.cpp')
-rw-r--r--src/modules/m_spanningtree/encap.cpp33
1 files changed, 13 insertions, 20 deletions
diff --git a/src/modules/m_spanningtree/encap.cpp b/src/modules/m_spanningtree/encap.cpp
index fedadedb5..12ab2b664 100644
--- a/src/modules/m_spanningtree/encap.cpp
+++ b/src/modules/m_spanningtree/encap.cpp
@@ -18,31 +18,24 @@
#include "inspircd.h"
-#include "xline.h"
-#include "treesocket.h"
-#include "utils.h"
+#include "commands.h"
/** ENCAP */
-void TreeSocket::Encap(User* who, parameterlist &params)
+CmdResult CommandEncap::Handle(User* user, std::vector<std::string>& params)
{
- if (params.size() > 1)
+ if (ServerInstance->Config->GetSID() == params[0] || InspIRCd::Match(ServerInstance->Config->ServerName, params[0]))
{
- if (ServerInstance->Config->GetSID() == params[0] || InspIRCd::Match(ServerInstance->Config->ServerName, params[0]))
- {
- parameterlist plist(params.begin() + 2, params.end());
- ServerInstance->Parser->CallHandler(params[1], plist, who);
- // discard return value, ENCAP shall succeed even if the command does not exist
- }
-
- params[params.size() - 1] = ":" + params[params.size() - 1];
-
- if (params[0].find_first_of("*?") != std::string::npos)
- {
- Utils->DoOneToAllButSender(who->uuid, "ENCAP", params, who->server);
- }
- else
- Utils->DoOneToOne(who->uuid, "ENCAP", params, params[0]);
+ parameterlist plist(params.begin() + 2, params.end());
+ ServerInstance->Parser->CallHandler(params[1], plist, user);
+ // Discard return value, ENCAP shall succeed even if the command does not exist
}
+ return CMD_SUCCESS;
}
+RouteDescriptor CommandEncap::GetRouting(User* user, const std::vector<std::string>& params)
+{
+ if (params[0].find_first_of("*?") != std::string::npos)
+ return ROUTE_BROADCAST;
+ return ROUTE_UNICAST(params[0]);
+}