aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index c325e61..980dd36 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -15,7 +15,7 @@ use error::ServiceError;
use http_body_util::{combinators::BoxBody, BodyExt};
use hyper::{
body::Incoming,
- header::{CONTENT_TYPE, HOST},
+ header::{CONTENT_TYPE, HOST, SERVER},
http::HeaderValue,
server::conn::http1,
service::service_fn,
@@ -161,10 +161,24 @@ async fn service(
))
.ok_or(ServiceError::NoHost)?;
- match route {
+ let mut resp = match route {
HostConfig::Backend { backend } => proxy_request(req, addr, backend).await,
HostConfig::Files { files } => serve_files(req, files).await,
- }
+ }?;
+
+ let server_header = resp.headers().get(SERVER).cloned();
+ eprintln!(" {server_header:?}");
+ resp.headers_mut().insert(
+ SERVER,
+ HeaderValue::from_str(&if let Some(o) = server_header {
+ format!("{} via gnix", o.to_str().ok().unwrap_or("invalid"))
+ } else {
+ format!("gnix")
+ })
+ .unwrap(),
+ );
+
+ return Ok(resp);
}
pub fn remove_port(s: &str) -> &str {