diff --git a/src/msg_handler/handler.rs b/src/msg_handler/handler.rs index c2fe57b..34adf51 100644 --- a/src/msg_handler/handler.rs +++ b/src/msg_handler/handler.rs @@ -179,16 +179,16 @@ where let headers = response.headers_mut(); remove_connection_header(headers); remove_hop_header(headers); - overwrite_header_entry(headers, "server", env!("CARGO_PKG_NAME"))?; + add_header_entry_overwrite_if_exist(headers, "server", env!("CARGO_PKG_NAME"))?; #[cfg(feature = "h3")] { if self.globals.http3 { if let Some(port) = self.globals.https_port { - overwrite_header_entry( + add_header_entry_overwrite_if_exist( headers, header::ALT_SVC.as_str(), - &format!( + format!( "h3=\":{}\"; ma={}, h3-29=\":{}\"; ma={}", port, H3_ALT_SVC_MAX_AGE, port, H3_ALT_SVC_MAX_AGE ), @@ -270,7 +270,7 @@ where // upgrade if let Some(v) = upgrade { - req.headers_mut().insert("upgrade", v.parse()?); + req.headers_mut().insert(header::UPGRADE, v.parse()?); req .headers_mut() .insert(header::CONNECTION, HeaderValue::from_str("upgrade")?); diff --git a/src/msg_handler/utils_headers.rs b/src/msg_handler/utils_headers.rs index 0a8b76c..3aaebbf 100644 --- a/src/msg_handler/utils_headers.rs +++ b/src/msg_handler/utils_headers.rs @@ -74,17 +74,17 @@ pub(super) fn add_header_entry_if_not_exist( Ok(()) } -pub(super) fn overwrite_header_entry( +pub(super) fn add_header_entry_overwrite_if_exist( headers: &mut HeaderMap, - key: &str, - value: &str, + key: impl Into>, + value: impl Into>, ) -> Result<()> { - match headers.entry(HeaderName::from_bytes(key.as_bytes())?) { + match headers.entry(HeaderName::from_bytes(key.into().as_bytes())?) { header::Entry::Vacant(entry) => { - entry.insert(value.parse::()?); + entry.insert(value.into().parse::()?); } header::Entry::Occupied(mut entry) => { - entry.insert(HeaderValue::from_bytes(value.as_bytes())?); + entry.insert(HeaderValue::from_bytes(value.into().as_bytes())?); } }