summaryrefslogtreecommitdiffstats
path: root/src/modules/m_spanningtree/treesocket1.cpp
diff options
context:
space:
mode:
authorGravatar danieldg2010-02-16 14:13:22 +0000
committerGravatar danieldg2010-02-16 14:13:22 +0000
commit9eb61d66cc7fa5edd866d19ebb908eebc403f259 (patch)
tree5776fe35af00c8deace04d8e9d0feea48bde9416 /src/modules/m_spanningtree/treesocket1.cpp
parent1.2.5 release (diff)
downloadinspircd++-9eb61d66cc7fa5edd866d19ebb908eebc403f259.tar.gz
inspircd++-9eb61d66cc7fa5edd866d19ebb908eebc403f259.tar.bz2
inspircd++-9eb61d66cc7fa5edd866d19ebb908eebc403f259.zip
Close and delete server sockets when they are in DYING state, should avoid 100% CPU in other socketengines
git-svn-id: http://svn.inspircd.org/repository/branches/1_2_stable@12473 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index e1b28c0a0..e871ddd22 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -273,9 +273,12 @@ void TreeSocket::Squit(TreeServer* Current, const std::string &reason)
*/
bool TreeSocket::OnDataReady()
{
+ const char* data = this->Read();
if (LinkState == DYING)
+ {
+ Close();
return true;
- const char* data = this->Read();
+ }
/* Check that the data read is a valid pointer and it has some content */
if (data && *data)
{