]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/utils.cpp
m_spanningtree Add SpanningTreeUtilities::FindRouteTarget()
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / utils.cpp
index bbda2634d5ae6b67c3e7209ff2e346d801cf5104..6de47de94604b7ef99d626b7550ef91f2306e344 100644 (file)
@@ -67,32 +67,6 @@ TreeServer* SpanningTreeUtilities::FindServer(const std::string &ServerName)
        }
 }
 
-/** Returns the locally connected server we must route a
- * message through to reach server 'ServerName'. This
- * only applies to one-to-one and not one-to-many routing.
- * See the comments for the constructor of TreeServer
- * for more details.
- */
-TreeServer* SpanningTreeUtilities::BestRouteTo(const std::string &ServerName)
-{
-       TreeServer* Found = FindServer(ServerName);
-       if (Found)
-       {
-               return Found->GetRoute();
-       }
-       else
-       {
-               // Cheat a bit. This allows for (better) working versions of routing commands with nick based prefixes, without hassle
-               User *u = ServerInstance->FindNick(ServerName);
-               if (u)
-               {
-                       return TreeServer::Get(u)->GetRoute();
-               }
-
-               return NULL;
-       }
-}
-
 /** Find the first server matching a given glob mask.
  * We iterate over the list and match each one until we get a hit.
  */
@@ -115,6 +89,19 @@ TreeServer* SpanningTreeUtilities::FindServerID(const std::string &id)
                return NULL;
 }
 
+TreeServer* SpanningTreeUtilities::FindRouteTarget(const std::string& target)
+{
+       TreeServer* const server = FindServer(target);
+       if (server)
+               return server;
+
+       User* const user = ServerInstance->FindNick(target);
+       if (user)
+               return TreeServer::Get(user);
+
+       return NULL;
+}
+
 SpanningTreeUtilities::SpanningTreeUtilities(ModuleSpanningTree* C)
        : Creator(C), TreeRoot(NULL)
        , PingFreq(60) // XXX: TreeServer constructor reads this and TreeRoot is created before the config is read, so init it to something (value doesn't matter) to avoid a valgrind warning in TimerManager on unload
@@ -191,16 +178,6 @@ void SpanningTreeUtilities::DoOneToAllButSender(const CmdBuilder& params, TreeSe
        }
 }
 
-bool SpanningTreeUtilities::DoOneToOne(const CmdBuilder& params, const std::string& target)
-{
-       TreeServer* Route = this->BestRouteTo(target);
-       if (!Route)
-               return false;
-
-       DoOneToOne(params, Route);
-       return true;
-}
-
 void SpanningTreeUtilities::DoOneToOne(const CmdBuilder& params, Server* server)
 {
        TreeServer* ts = static_cast<TreeServer*>(server);