From 2e821108c95d725c36bdb679c4143a742502e657 Mon Sep 17 00:00:00 2001 From: Jun Kurihara Date: Sat, 9 Jul 2022 16:07:43 +0900 Subject: [PATCH] fix bug to check case-insensitive upgrade header values for upgrade --- src/proxy/proxy_handler.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/proxy/proxy_handler.rs b/src/proxy/proxy_handler.rs index 6d3c8f4..6d597cf 100644 --- a/src/proxy/proxy_handler.rs +++ b/src/proxy/proxy_handler.rs @@ -113,7 +113,13 @@ where if res_backend.status() == StatusCode::SWITCHING_PROTOCOLS { // Handle StatusCode::SWITCHING_PROTOCOLS in response let upgrade_in_response = extract_upgrade(res_backend.headers()); - if upgrade_in_request == upgrade_in_response { + if if let (Some(u_req), Some(u_res)) = + (upgrade_in_request.as_ref(), upgrade_in_response.as_ref()) + { + u_req.to_ascii_lowercase() == u_res.to_ascii_lowercase() + } else { + false + } { if let Some(request_upgraded) = request_upgraded { let mut response_upgraded = res_backend .extensions_mut()