summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/treesocket1.cpp
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-02 03:15:46 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-02 03:15:46 +0000
commit8456cf5ccd44911f4e56538fe0880dd7fc7cd96d (patch)
tree3e1f96b94cc86506a615d8b39131ff6ea7c1b64c /src/modules/m_spanningtree/treesocket1.cpp
parent87d031609bb8b7d2cd186d8f24bcb853fd93798c (diff)
Fix valgrind issues and crashes on exit
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11794 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index ad15a33c8..70046d774 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -70,7 +70,7 @@ TreeSocket::TreeSocket(SpanningTreeUtilities* Util, int newfd, char* ip, Autocon
ServerInstance->Timers->AddTimer(hstimer);
/* Fix by Brain - inbound sockets need a timeout, too. 30 secs should be pleanty */
- Utils->timeoutlist[this] = std::pair<std::string, int>("<unknown>", 30);
+ Utils->timeoutlist[this] = std::pair<std::string, int>("<from " + std::string(ip) + ">", 30);
}
ServerState TreeSocket::GetLinkState()
@@ -88,13 +88,18 @@ void TreeSocket::CleanNegotiationInfo()
OutboundPass.clear();
}
-TreeSocket::~TreeSocket()
+bool TreeSocket::cull()
{
if (GetIOHook())
BufferedSocketUnhookRequest(this, Utils->Creator, GetIOHook()).Send();
+ Utils->timeoutlist.erase(this);
+ return this->BufferedSocket::cull();
+}
+
+TreeSocket::~TreeSocket()
+{
if (hstimer)
ServerInstance->Timers->DelTimer(hstimer);
- Utils->timeoutlist.erase(this);
}
/** When an outbound connection finishes connecting, we receive