aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/config.rs2
-rw-r--r--src/main.rs28
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)
}