diff options
author | Shav Kinderlehrer <[email protected]> | 2024-04-07 21:06:21 -0400 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2024-04-07 21:06:46 -0400 |
commit | 938be8949fbb9735953309611c73589be04a2ccb (patch) | |
tree | 3a9c88ea1643ff17873ca7ec53cf7a85a0c87451 /src | |
parent | 2faf2898295bbc4b4712b2ad82292f90c1c92f32 (diff) | |
download | chela-1.2.0.tar.gz chela-1.2.0.zip |
Use proper IP address when behind proxyv1.2.0
Diffstat (limited to 'src')
-rw-r--r-- | src/get.rs | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -41,7 +41,21 @@ pub async fn id_unix( Extension(state): Extension<ServerState>, Path(id): Path<String>, ) -> impl IntoResponse { - let ip = format!("{:?}", addr.peer_addr); + let ip = if state.behind_proxy { + match headers.get("x-real-ip") { + Some(it) => { + if let Ok(i) = it.to_str() { + Some(i.to_string()) + } else { + None + } + } + None => None, + } + } else { + Some(format!("{:?}", addr.peer_addr)) + } + .unwrap_or_default(); run_id(headers, ip, state, id).await } |