This commit is contained in:
Jun Kurihara 2022-07-10 15:05:44 +09:00
commit e52ed43050
No known key found for this signature in database
GPG key ID: 48ADFD173ED22B03
2 changed files with 10 additions and 10 deletions

View file

@ -179,16 +179,16 @@ where
let headers = response.headers_mut(); let headers = response.headers_mut();
remove_connection_header(headers); remove_connection_header(headers);
remove_hop_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")] #[cfg(feature = "h3")]
{ {
if self.globals.http3 { if self.globals.http3 {
if let Some(port) = self.globals.https_port { if let Some(port) = self.globals.https_port {
overwrite_header_entry( add_header_entry_overwrite_if_exist(
headers, headers,
header::ALT_SVC.as_str(), header::ALT_SVC.as_str(),
&format!( format!(
"h3=\":{}\"; ma={}, h3-29=\":{}\"; ma={}", "h3=\":{}\"; ma={}, h3-29=\":{}\"; ma={}",
port, H3_ALT_SVC_MAX_AGE, port, H3_ALT_SVC_MAX_AGE port, H3_ALT_SVC_MAX_AGE, port, H3_ALT_SVC_MAX_AGE
), ),
@ -270,7 +270,7 @@ where
// upgrade // upgrade
if let Some(v) = upgrade { if let Some(v) = upgrade {
req.headers_mut().insert("upgrade", v.parse()?); req.headers_mut().insert(header::UPGRADE, v.parse()?);
req req
.headers_mut() .headers_mut()
.insert(header::CONNECTION, HeaderValue::from_str("upgrade")?); .insert(header::CONNECTION, HeaderValue::from_str("upgrade")?);

View file

@ -74,17 +74,17 @@ pub(super) fn add_header_entry_if_not_exist(
Ok(()) Ok(())
} }
pub(super) fn overwrite_header_entry( pub(super) fn add_header_entry_overwrite_if_exist(
headers: &mut HeaderMap, headers: &mut HeaderMap,
key: &str, key: impl Into<std::borrow::Cow<'static, str>>,
value: &str, value: impl Into<std::borrow::Cow<'static, str>>,
) -> Result<()> { ) -> Result<()> {
match headers.entry(HeaderName::from_bytes(key.as_bytes())?) { match headers.entry(HeaderName::from_bytes(key.into().as_bytes())?) {
header::Entry::Vacant(entry) => { header::Entry::Vacant(entry) => {
entry.insert(value.parse::<HeaderValue>()?); entry.insert(value.into().parse::<HeaderValue>()?);
} }
header::Entry::Occupied(mut entry) => { header::Entry::Occupied(mut entry) => {
entry.insert(HeaderValue::from_bytes(value.as_bytes())?); entry.insert(HeaderValue::from_bytes(value.into().as_bytes())?);
} }
} }