summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-02-24 15:15:58 +0100
committermetamuffin <metamuffin@disroot.org>2023-02-24 15:15:58 +0100
commit324b1e3bff0940a4c8af7df7b311135229a24b87 (patch)
treefcb9c76153de450cf5983398b76bee2ee984e045
parent975f2325a0ee78f75e0ed2ab899d161868250e8d (diff)
downloadgnix-324b1e3bff0940a4c8af7df7b311135229a24b87.tar
gnix-324b1e3bff0940a4c8af7df7b311135229a24b87.tar.bz2
gnix-324b1e3bff0940a4c8af7df7b311135229a24b87.tar.zst
set server header
-rw-r--r--src/main.rs20
-rw-r--r--src/proxy.rs13
2 files changed, 18 insertions, 15 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 {
diff --git a/src/proxy.rs b/src/proxy.rs
index aff1ae5..036bbc1 100644
--- a/src/proxy.rs
+++ b/src/proxy.rs
@@ -2,7 +2,7 @@ use crate::ServiceError;
use http_body_util::{combinators::BoxBody, BodyExt};
use hyper::{
body::Incoming,
- header::{SERVER, UPGRADE},
+ header::UPGRADE,
http::{
uri::{PathAndQuery, Scheme},
HeaderValue,
@@ -67,17 +67,6 @@ pub async fn proxy_request(
.map_err(ServiceError::Hyper)?
};
- let server_header = resp.headers().get(SERVER).cloned();
- resp.headers_mut().insert(
- SERVER,
- HeaderValue::from_str(&if let Some(o) = server_header {
- format!("{} via gnix", o.to_str().unwrap())
- } else {
- format!("gnix")
- })
- .unwrap(),
- );
-
if do_upgrade {
let on_upgrade_upstream = resp.extensions_mut().remove::<OnUpgrade>();
tokio::task::spawn(async move {