mirror of
https://github.com/cloudflare/pingora.git
synced 2024-09-20 02:31:35 +02:00
Always respect_keepalive when releasing http session
When a user calls `release_http_session` on an http Connector, it is usually implied that they intend to reuse the underlying connection if possible. Previously for H1 this involved reaching into the H1 client Session and calling `respect_keepalive`. The new behavior always respects keepalive as part of releasing the http session, as it was very easy to overlook this step and unintentionally disable connection reuse for H1 sessions.
This commit is contained in:
parent
fbf3a95749
commit
03bd29044e
3 changed files with 4 additions and 6 deletions
2
.bleep
2
.bleep
|
@ -1 +1 @@
|
|||
19506db280fe5f52641e5c1ffd48e4b62f536f18
|
||||
b8ac54b482f643f04533dcc04061b1575482c92d
|
|
@ -51,10 +51,11 @@ impl Connector {
|
|||
|
||||
pub async fn release_http_session<P: Peer + Send + Sync + 'static>(
|
||||
&self,
|
||||
session: HttpSession,
|
||||
mut session: HttpSession,
|
||||
peer: &P,
|
||||
idle_timeout: Option<Duration>,
|
||||
) {
|
||||
session.respect_keepalive();
|
||||
if let Some(stream) = session.reuse().await {
|
||||
self.transport
|
||||
.release_stream(stream, peer.reuse_hash(), idle_timeout);
|
||||
|
|
|
@ -98,10 +98,7 @@ impl<SV> HttpProxy<SV> {
|
|||
);
|
||||
|
||||
match ret {
|
||||
Ok((_first, _second)) => {
|
||||
client_session.respect_keepalive();
|
||||
(true, true, None)
|
||||
}
|
||||
Ok((_first, _second)) => (true, true, None),
|
||||
Err(e) => (false, false, Some(e)),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue