From a78ee0f8d2ee4f0a0c05bc5a0d7a97b0a29f4701 Mon Sep 17 00:00:00 2001 From: trisua Date: Sat, 19 Apr 2025 19:09:24 -0400 Subject: [PATCH] add: ip test api --- crates/app/src/routes/api/v1/mod.rs | 1 + crates/app/src/routes/api/v1/util.rs | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/crates/app/src/routes/api/v1/mod.rs b/crates/app/src/routes/api/v1/mod.rs index 557d940..84e49e2 100644 --- a/crates/app/src/routes/api/v1/mod.rs +++ b/crates/app/src/routes/api/v1/mod.rs @@ -26,6 +26,7 @@ pub fn routes() -> Router { // misc .route("/util/proxy", get(util::proxy_request)) .route("/util/lang", get(util::set_langfile_request)) + .route("/util/ip", get(util::ip_test_request)) // reactions .route("/reactions", post(reactions::create_request)) .route("/reactions/{id}", get(reactions::get_request)) diff --git a/crates/app/src/routes/api/v1/util.rs b/crates/app/src/routes/api/v1/util.rs index 3b5152c..3975207 100644 --- a/crates/app/src/routes/api/v1/util.rs +++ b/crates/app/src/routes/api/v1/util.rs @@ -1,6 +1,12 @@ use super::auth::images::read_image; use crate::State; -use axum::{Extension, body::Body, extract::Query, http::HeaderMap, response::IntoResponse}; +use axum::{ + body::Body, + extract::Query, + http::{HeaderMap, HeaderValue}, + response::IntoResponse, + Extension, +}; use pathbufd::PathBufD; use serde::Deserialize; @@ -131,3 +137,16 @@ pub async fn set_langfile_request(Query(props): Query) -> impl In "Language changed", ) } + +pub async fn ip_test_request( + headers: HeaderMap, + Extension(data): Extension, +) -> impl IntoResponse { + let data = &(data.read().await).0; + headers + .get(data.0.security.real_ip_header.to_owned()) + .unwrap_or(&HeaderValue::from_static("")) + .to_str() + .unwrap_or("") + .to_string() +}