Ensure that HttpServerConnections are properly closed

fixes #10655
This commit is contained in:
Gunnar Beutner 2016-01-13 10:30:38 +01:00
parent 882495952a
commit 7f4af89a56
3 changed files with 15 additions and 7 deletions

View File

@ -218,9 +218,6 @@ void TlsStream::OnEvent(int revents)
case SSL_ERROR_ZERO_RETURN:
lock.unlock();
if (IsHandlingEvents())
SignalDataAvailable();
Close();
break;
@ -237,9 +234,6 @@ void TlsStream::OnEvent(int revents)
lock.unlock();
if (IsHandlingEvents())
SignalDataAvailable();
Close();
break;
@ -316,13 +310,17 @@ void TlsStream::Shutdown(void)
*/
void TlsStream::Close(void)
{
if (!m_Eof) {
m_Eof = true;
SignalDataAvailable();
}
Stream::Close();
SocketEvents::Unregister();
boost::mutex::scoped_lock lock(m_Mutex);
m_Eof = true;
if (!m_SSL)
return;

View File

@ -206,7 +206,12 @@ void HttpServerConnection::DataAvailableHandler(void)
<< "Error while reading Http request: " << DiagnosticInformation(ex);
Disconnect();
return;
}
if (m_Stream->IsEof())
Disconnect();
}
void HttpServerConnection::CheckLiveness(void)

View File

@ -202,7 +202,12 @@ void JsonRpcConnection::DataAvailableHandler(void)
<< "': " << DiagnosticInformation(ex);
Disconnect();
return;
}
if (m_Stream->IsEof())
Disconnect();
}
Value SetLogPositionHandler(const MessageOrigin::Ptr& origin, const Dictionary::Ptr& params)