X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Futils.cpp;h=cb8a39638266889e05e5ced62180ade099de4a14;hb=551d687ec6d7ce44be35fae0dd7345fe73c4f63a;hp=aa8f74d866541ffef60d81cac70f7046280fb6f1;hpb=7f56a39e972c9dd27826e33f0ec824dda73afd61;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index aa8f74d86..cb8a39638 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -21,14 +21,10 @@ #include "inspircd.h" -#include "socket.h" -#include "xline.h" -#include "socketengine.h" #include "main.h" #include "utils.h" #include "treeserver.h" -#include "link.h" #include "treesocket.h" #include "resolvers.h" @@ -165,12 +161,6 @@ SpanningTreeUtilities::~SpanningTreeUtilities() delete TreeRoot; } -void SpanningTreeUtilities::AddThisServer(TreeServer* server, TreeServerList &list) -{ - if (list.find(server) == list.end()) - list[server] = server; -} - /* returns a list of DIRECT servernames for a specific channel */ void SpanningTreeUtilities::GetListOfServersForChannel(Channel* c, TreeServerList &list, char status, const CUList &exempt_list) { @@ -196,7 +186,7 @@ void SpanningTreeUtilities::GetListOfServersForChannel(Channel* c, TreeServerLis { TreeServer* best = this->BestRouteTo(i->first->server); if (best) - AddThisServer(best,list); + list.insert(best); } } return; @@ -427,3 +417,21 @@ Link* SpanningTreeUtilities::FindLink(const std::string& name) } return NULL; } + +void SpanningTreeUtilities::SendChannelMessage(const std::string& prefix, Channel* target, const std::string &text, char status, const CUList& exempt_list, const char* message_type) +{ + std::string raw(":"); + raw.append(prefix).append(1, ' ').append(message_type).push_back(' '); + if (status) + raw.push_back(status); + raw.append(target->name).append(" :").append(text); + + TreeServerList list; + this->GetListOfServersForChannel(target, list, status, exempt_list); + for (TreeServerList::iterator i = list.begin(); i != list.end(); ++i) + { + TreeSocket* Sock = (*i)->GetSocket(); + if (Sock) + Sock->WriteLine(raw); + } +}