summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp3
-rw-r--r--src/modules/m_spanningtree/treesocket2.cpp3
-rw-r--r--src/modules/m_spanningtree/utils.cpp1
3 files changed, 7 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index 4d960cf8a..c987cb590 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -212,6 +212,9 @@ void TreeSocket::OnError(InspSocketError e)
{
Link* MyLink;
+ if (this->LinkState == LISTENER)
+ return;
+
switch (e)
{
case I_ERR_CONNECT:
diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp
index dcfb2b4aa..23362ca99 100644
--- a/src/modules/m_spanningtree/treesocket2.cpp
+++ b/src/modules/m_spanningtree/treesocket2.cpp
@@ -1501,6 +1501,9 @@ void TreeSocket::OnTimeout()
void TreeSocket::OnClose()
{
+ if (this->LinkState == LISTENER)
+ return;
+
// Connection closed.
// If the connection is fully up (state CONNECTED)
// then propogate a netsplit to all peers.
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp
index 9d4fbf41a..bfd46ef03 100644
--- a/src/modules/m_spanningtree/utils.cpp
+++ b/src/modules/m_spanningtree/utils.cpp
@@ -202,6 +202,7 @@ SpanningTreeUtilities::~SpanningTreeUtilities()
}
}
delete TreeRoot;
+ ServerInstance->InspSocketCull();
}
void SpanningTreeUtilities::AddThisServer(TreeServer* server, TreeServerList &list)