diff options
author | Jonathan Davies <jpds@protonmail.com> | 2023-02-09 13:50:04 +0000 |
---|---|---|
committer | Jonathan Davies <jpds@protonmail.com> | 2023-03-06 11:43:54 +0000 |
commit | 4e0fc3d6c9d764f2eecb7cf9e995580e734bdb2d (patch) | |
tree | 13f7c7d9930eac4b5977afc3e6848af220630656 | |
parent | e4e5196066a75ed9327a62d8082decb1e0c381e7 (diff) | |
download | garage-4e0fc3d6c9d764f2eecb7cf9e995580e734bdb2d.tar.gz garage-4e0fc3d6c9d764f2eecb7cf9e995580e734bdb2d.zip |
web/web_server.rs: Handle X-Forwarded-For here too.
-rw-r--r-- | src/web/web_server.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/web/web_server.rs b/src/web/web_server.rs index 5719da54..0c7edf23 100644 --- a/src/web/web_server.rs +++ b/src/web/web_server.rs @@ -29,6 +29,7 @@ use garage_model::garage::Garage; use garage_table::*; use garage_util::error::Error as GarageError; +use garage_util::forwarded_headers; use garage_util::metrics::{gen_trace_id, RecordDuration}; struct WebMetrics { @@ -104,7 +105,19 @@ impl WebServer { req: Request<Body>, addr: SocketAddr, ) -> Result<Response<Body>, Infallible> { - info!("{} {} {}", addr, req.method(), req.uri()); + if let Ok(forwarded_for_ip_addr) = + forwarded_headers::handle_forwarded_for_headers(&req.headers()) + { + info!( + "{} (via {}) {} {}", + forwarded_for_ip_addr, + addr, + req.method(), + req.uri() + ); + } else { + info!("{} {} {}", addr, req.method(), req.uri()); + } // Lots of instrumentation let tracer = opentelemetry::global::tracer("garage"); |