diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-30 06:01:19 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-30 06:01:19 +0200 |
commit | 1300089bc4cdab99a5ce2f5eda58cccf086a7e64 (patch) | |
tree | 73334aaca617a461113a15315860933445ec2868 | |
parent | 7ef1b6952874a40373562aa610dc78a119a4f075 (diff) | |
download | gnix-1300089bc4cdab99a5ce2f5eda58cccf086a7e64.tar gnix-1300089bc4cdab99a5ce2f5eda58cccf086a7e64.tar.bz2 gnix-1300089bc4cdab99a5ce2f5eda58cccf086a7e64.tar.zst |
disablable server header
-rw-r--r-- | src/config.rs | 2 | ||||
-rw-r--r-- | src/main.rs | 28 |
2 files changed, 17 insertions, 13 deletions
diff --git a/src/config.rs b/src/config.rs index 5f925ea..8eb7d8d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -38,6 +38,8 @@ pub struct Config { #[serde(default)] pub limits: Limits, pub handler: DynNode, + #[serde(default = "return_true")] + pub disable_server_header: bool } fn random_bytes() -> [u8; 32] { diff --git a/src/main.rs b/src/main.rs index af9c30b..7fb07ca 100644 --- a/src/main.rs +++ b/src/main.rs @@ -403,19 +403,21 @@ async fn service( }; let mut resp = config.handler.handle(&mut context, request).await?; - let server_header = resp.headers().get(SERVER).cloned(); - resp.headers_mut().insert( - SERVER, - if let Some(o) = server_header { - HeaderValue::from_str(&format!( - "{} via gnix", - o.to_str().ok().unwrap_or("invalid") - )) - .unwrap() - } else { - HeaderValue::from_static("gnix") - }, - ); + if !config.disable_server_header { + let server_header = resp.headers().get(SERVER).cloned(); + resp.headers_mut().insert( + SERVER, + if let Some(o) = server_header { + HeaderValue::from_str(&format!( + "{} via gnix", + o.to_str().ok().unwrap_or("invalid") + )) + .unwrap() + } else { + HeaderValue::from_static("gnix") + }, + ); + } Ok(resp) } |