diff options
| author | 2007-09-13 11:55:15 +0000 | |
|---|---|---|
| committer | 2007-09-13 11:55:15 +0000 | |
| commit | 4e4da3f9dba948bcb90ab9ca27415010b6cabeb5 (patch) | |
| tree | 14af84555641084ab11f15e64852f8e08c885b8b /src/inspsocket.cpp | |
| parent | Made m_blockcaps' <blockcaps:minlen> parameter default to 1, not 0, since try... (diff) | |
Fixed a rare infinite loop in InspSocket::FlushWriteBuffer() - this could only affect a few rarely used modules, and is difficult to trigger.
git-svn-id: http://svn.inspircd.org/repository/branches/1_1_stable@8032 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/inspsocket.cpp')
| -rw-r--r-- | src/inspsocket.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/inspsocket.cpp b/src/inspsocket.cpp index e372a4472..d2f432178 100644 --- a/src/inspsocket.cpp +++ b/src/inspsocket.cpp @@ -508,6 +508,12 @@ bool InspSocket::FlushWriteBuffer() errno = EAGAIN; } } + else if (result == 0) + { + this->Instance->SE->DelFd(this); + this->Close(); + return true; + } else if ((result == -1) && (errno != EAGAIN)) { this->OnError(I_ERR_WRITE); |
