mirror of https://github.com/Icinga/icinga2.git
Ensure that HTTP/1.0 or Connection: close headers are properly disconnecting the client
Test results: https://github.com/Icinga/icinga2/issues/6514#issuecomment-428155731 fixes #6514
This commit is contained in:
parent
051b3ba9b7
commit
13239c3172
|
@ -111,9 +111,6 @@ void HttpResponse::Finish()
|
|||
}
|
||||
|
||||
m_State = HttpResponseEnd;
|
||||
|
||||
if (m_Request->ProtocolVersion == HttpVersion10 || m_Request->Headers->Get("connection") == "close")
|
||||
m_Stream->Shutdown();
|
||||
}
|
||||
|
||||
bool HttpResponse::Parse(StreamReadContext& src, bool may_wait)
|
||||
|
|
|
@ -357,6 +357,13 @@ void HttpServerConnection::DataAvailableHandler()
|
|||
}
|
||||
|
||||
m_RequestQueue.Enqueue(std::bind(&Stream::SetCorked, m_Stream, false));
|
||||
|
||||
/* Request finished, decide whether to explicitly close the connection. */
|
||||
if (m_CurrentRequest.ProtocolVersion == HttpVersion10 ||
|
||||
m_CurrentRequest.Headers->Get("connection") == "close") {
|
||||
m_Stream->Shutdown();
|
||||
close = true;
|
||||
}
|
||||
} else
|
||||
close = true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue