From ec1648b19187d3edce40785942357fba51a3a0c0 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 18 Feb 2024 12:47:54 +0100 Subject: fix panic when upgrading connections incorrectly --- src/filters/proxy.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/filters/proxy.rs') diff --git a/src/filters/proxy.rs b/src/filters/proxy.rs index 40ebf17..0e1a556 100644 --- a/src/filters/proxy.rs +++ b/src/filters/proxy.rs @@ -75,13 +75,14 @@ pub async fn proxy_request( }; if do_upgrade { - let on_upgrade_upstream = resp.extensions_mut().remove::(); + let on_upgrade_upstream = resp + .extensions_mut() + .remove::() + .ok_or(ServiceError::UpgradeFailed)?; + let on_upgrade_downstream = on_upgrade_downstream.ok_or(ServiceError::UpgradeFailed)?; tokio::task::spawn(async move { debug!("about to upgrade connection, sending empty response"); - match ( - on_upgrade_upstream.unwrap().await, - on_upgrade_downstream.unwrap().await, - ) { + match (on_upgrade_upstream.await, on_upgrade_downstream.await) { (Ok(upgraded_upstream), Ok(upgraded_downstream)) => { debug!("upgrade successful"); match tokio::io::copy_bidirectional( -- cgit v1.2.3-70-g09d2