summaryrefslogtreecommitdiff
path: root/src/proxy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/proxy.rs')
-rw-r--r--src/proxy.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/proxy.rs b/src/proxy.rs
index 65fc5a8..aff1ae5 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::UPGRADE,
+ header::{SERVER, UPGRADE},
http::{
uri::{PathAndQuery, Scheme},
HeaderValue,
@@ -67,8 +67,16 @@ pub async fn proxy_request(
.map_err(ServiceError::Hyper)?
};
- resp.headers_mut()
- .insert("server", HeaderValue::from_static("gnix"));
+ 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>();