diff options
Diffstat (limited to 'src/modules/m_spanningtree.cpp')
-rw-r--r-- | src/modules/m_spanningtree.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index e859ff844..0bea7f896 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -1664,6 +1664,24 @@ class TreeSocket : public InspSocket } return true; } + + bool Push(std::string prefix, std::deque<std::string> ¶ms) + { + if (params.size() < 2) + return true; + userrec* u = Srv->FindNick(params[0]); + if (IS_LOCAL(u)) + { + // push the raw to the user + ::Write(u->fd,"%s",params[1].c_str()); + } + else + { + // continue the raw onwards + DoOneToOne(prefix,"PUSH",params,u->server); + } + return true; + } bool LocalPing(std::string prefix, std::deque<std::string> ¶ms) { @@ -2114,6 +2132,10 @@ class TreeSocket : public InspSocket { return this->Whois(prefix,params); } + else if (command == "PUSH") + { + return this->Push(prefix,params); + } else if (command == "SVSJOIN") { if (prefix == "") |