aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_spanningtree/utils.cpp')
-rw-r--r--src/modules/m_spanningtree/utils.cpp27
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;