X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fnum.cpp;h=f83f91286e0648d70a04ef8083d57d5b83589492;hb=b2ac8cc0a6405946a388b80df3be21bc276a61f3;hp=047dba4322b9826528f3e5c02190ea8e18875a3c;hpb=a7dedb347b7dcd26ce93d4af81e77cfa3cf82d0f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/num.cpp b/src/modules/m_spanningtree/num.cpp index 047dba432..f83f91286 100644 --- a/src/modules/m_spanningtree/num.cpp +++ b/src/modules/m_spanningtree/num.cpp @@ -21,8 +21,9 @@ #include "utils.h" #include "commands.h" +#include "remoteuser.h" -CmdResult CommandNum::HandleServer(TreeServer* server, std::vector& params) +CmdResult CommandNum::HandleServer(TreeServer* server, CommandBase::Params& params) { User* const target = ServerInstance->FindUUID(params[1]); if (!target) @@ -41,7 +42,21 @@ CmdResult CommandNum::HandleServer(TreeServer* server, std::vector& return CMD_SUCCESS; } -RouteDescriptor CommandNum::GetRouting(User* user, const std::vector& params) +RouteDescriptor CommandNum::GetRouting(User* user, const Params& params) { return ROUTE_UNICAST(params[1]); } + +CommandNum::Builder::Builder(SpanningTree::RemoteUser* target, const Numeric::Numeric& numeric) + : CmdBuilder("NUM") +{ + TreeServer* const server = (numeric.GetServer() ? (static_cast(numeric.GetServer())) : Utils->TreeRoot); + push(server->GetID()).push(target->uuid).push(InspIRCd::Format("%03u", numeric.GetNumeric())); + const CommandBase::Params& params = numeric.GetParams(); + if (!params.empty()) + { + for (CommandBase::Params::const_iterator i = params.begin(); i != params.end()-1; ++i) + push(*i); + push_last(params.back()); + } +}