diff options
Diffstat (limited to 'src/modules/m_spanningtree/utils.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/utils.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index b3394dd55..a27dd5f65 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -53,6 +53,16 @@ TreeServer* SpanningTreeUtilities::FindServer(const std::string &ServerName) } } +TreeServer* SpanningTreeUtilities::FindRemoteBurstServer(TreeServer* Server) +{ + server_hash::iterator iter; + iter = RemoteServersBursting.find(Server->GetName().c_str()); + if (iter != RemoteServersBursting.end()) + return iter->second; + else + return NULL; +} + TreeSocket* SpanningTreeUtilities::FindBurstingServer(const std::string &ServerName) { std::map<irc::string,TreeSocket*>::iterator iter; @@ -67,6 +77,23 @@ TreeSocket* SpanningTreeUtilities::FindBurstingServer(const std::string &ServerN } } +void SpanningTreeUtilities::SetRemoteBursting(TreeServer* Server, bool bursting) +{ + ServerInstance->Log(DEBUG,"Server %s is %sbursting nicknames", Server->GetName().c_str(), bursting ? "" : "no longer "); + server_hash::iterator iter; + iter = RemoteServersBursting.find(Server->GetName().c_str()); + if (bursting) + { + if (iter == RemoteServersBursting.end()) + RemoteServersBursting.erase(iter); + } + else + { + if (iter != RemoteServersBursting.end()) + RemoteServersBursting.insert(make_pair(Server->GetName(), Server)); + } +} + void SpanningTreeUtilities::AddBurstingServer(const std::string &ServerName, TreeSocket* s) { std::map<irc::string,TreeSocket*>::iterator iter; |
