aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShav Kinderlehrer <[email protected]>2024-04-07 21:06:21 -0400
committerShav Kinderlehrer <[email protected]>2024-04-07 21:06:46 -0400
commit938be8949fbb9735953309611c73589be04a2ccb (patch)
tree3a9c88ea1643ff17873ca7ec53cf7a85a0c87451 /src
parent2faf2898295bbc4b4712b2ad82292f90c1c92f32 (diff)
downloadchela-938be8949fbb9735953309611c73589be04a2ccb.tar.gz
chela-938be8949fbb9735953309611c73589be04a2ccb.zip
Use proper IP address when behind proxyv1.2.0
Diffstat (limited to 'src')
-rw-r--r--src/get.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/get.rs b/src/get.rs
index efe2711..a00ac48 100644
--- a/src/get.rs
+++ b/src/get.rs
@@ -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
}