summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-09 15:57:43 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-09 15:57:43 +0000
commit35695871c45c3f3c73a02be463a20f11e61aaad5 (patch)
treee6ef514534a76493fccc3c0ab4886ada9ffba9b2 /src/modules/m_spanningtree
parent2e03f561b994f634cd87d7ab2c19310349101b77 (diff)
sanity check for existing server in DoFailOver seems to have vanished!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8138 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/utils.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp
index 6385b7a12..abc251ab0 100644
--- a/src/modules/m_spanningtree/utils.cpp
+++ b/src/modules/m_spanningtree/utils.cpp
@@ -645,8 +645,16 @@ void SpanningTreeUtilities::DoFailOver(Link* x)
Link* TryThisOne = this->FindLink(x->FailOver.c_str());
if (TryThisOne)
{
- Creator->RemoteMessage(NULL,"FAILOVER: Trying failover link for \002%s\002: \002%s\002...", x->Name.c_str(), TryThisOne->Name.c_str());
- Creator->ConnectServer(TryThisOne);
+ TreeServer* CheckDupe = this->FindServer(x->FailOver.c_str());
+ if (CheckDupe)
+ {
+ ServerInstance->Log(DEBUG,"Skipping existing failover: %s", x->FailOver.c_str());
+ }
+ else
+ {
+ Creator->RemoteMessage(NULL,"FAILOVER: Trying failover link for \002%s\002: \002%s\002...", x->Name.c_str(), TryThisOne->Name.c_str());
+ Creator->ConnectServer(TryThisOne);
+ }
}
else
{