From 1540f7475f4439a029f881eaa1efe747ee79da14 Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Sat, 2 Oct 2010 16:27:19 -0400 Subject: Remove some unneeded complexity from spanningtree --- src/modules/m_spanningtree/postcommand.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/modules/m_spanningtree/postcommand.cpp') diff --git a/src/modules/m_spanningtree/postcommand.cpp b/src/modules/m_spanningtree/postcommand.cpp index 63a8d76c3..45523bea3 100644 --- a/src/modules/m_spanningtree/postcommand.cpp +++ b/src/modules/m_spanningtree/postcommand.cpp @@ -106,19 +106,18 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, const std::string & Channel* c = ServerInstance->FindChan(dest); if (!c) return; - TreeServerList list; + TreeSocketSet list; // TODO OnBuildExemptList hook was here GetListOfServersForChannel(c,list,pfx, CUList()); std::string data = ":" + user->uuid + " " + sent_cmd; for (unsigned int x = 0; x < params.size(); x++) data += " " + params[x]; - for (TreeServerList::iterator i = list.begin(); i != list.end(); i++) + for (TreeSocketSet::iterator i = list.begin(); i != list.end(); i++) { - TreeSocket* Sock = i->second->GetSocket(); + TreeSocket* Sock = *i; if (origin && origin->GetSocket() == Sock) continue; - if (Sock) - Sock->WriteLine(data); + Sock->WriteLine(data); } } else if (dest[0] == '$') @@ -134,8 +133,8 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, const std::string & User* d = ServerInstance->FindNick(dest); if (!d) return; - TreeServer* tsd = BestRouteTo(d->server); - if (tsd == origin) + TreeServer* tsd = FindServer(d->server); + if (origin && tsd->GetSocket() == origin->GetSocket()) // huh? no routing stuff around in a circle, please. return; DoOneToOne(user->uuid, sent_cmd, params, d->server); -- cgit v1.3.1-10-gc9f91