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:
Edward Wang 2024-06-19 13:48:59 -07:00 committed by Edward Wang
parent fbf3a95749
commit 03bd29044e
3 changed files with 4 additions and 6 deletions

2
.bleep
View file

@ -1 +1 @@
19506db280fe5f52641e5c1ffd48e4b62f536f18
b8ac54b482f643f04533dcc04061b1575482c92d

View file

@ -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);

View file

@ -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)),
}
}