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();
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")?);

View file

@ -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<std::borrow::Cow<'static, str>>,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> 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::<HeaderValue>()?);
entry.insert(value.into().parse::<HeaderValue>()?);
}
header::Entry::Occupied(mut entry) => {
entry.insert(HeaderValue::from_bytes(value.as_bytes())?);
entry.insert(HeaderValue::from_bytes(value.into().as_bytes())?);
}
}