From 1300089bc4cdab99a5ce2f5eda58cccf086a7e64 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 30 Mar 2025 06:01:19 +0200 Subject: disablable server header --- src/config.rs | 2 ++ 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) } -- cgit v1.2.3-70-g09d2