diff --git a/Cargo.lock b/Cargo.lock index 352b62f5d..3a464173c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -439,12 +439,12 @@ dependencies = [ [[package]] name = "axum-client-ip" -version = "0.7.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff8ee1869817523c8f91c20bf17fd932707f66c2e7e0b0f811b29a227289562" +checksum = "a8ba1af5b620232acf37f2eb6d22151ea465491e0b4c25f552d1990f64ec5a67" dependencies = [ "axum", - "forwarded-header-value", + "client-ip", "serde", ] @@ -512,13 +512,35 @@ dependencies = [ "tower-service", ] +[[package]] +name = "axum-server" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1df331683d982a0b9492b38127151e6453639cd34926eb9c07d4cd8c6d22bfc" +dependencies = [ + "arc-swap", + "bytes", + "either", + "fs-err", + "http", + "http-body", + "hyper", + "hyper-util", + "pin-project-lite", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + [[package]] name = "axum-server-dual-protocol" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2164551db024e87f20316d164eab9f5ad342d8188b08051ceb15ca92a60ea7b7" dependencies = [ - "axum-server", + "axum-server 0.7.3", "bytes", "http", "http-body-util", @@ -820,7 +842,7 @@ checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" dependencies = [ "cfg-if", "cpufeatures 0.3.0", - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] @@ -890,6 +912,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "client-ip" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39d2056bf065c8b4bce5a8898d40e175211ff4410add2a84d695845d3937c729" +dependencies = [ + "http", +] + [[package]] name = "cmake" version = "0.1.58" @@ -1035,7 +1066,7 @@ dependencies = [ "reqwest 0.13.2", "ruma", "serde", - "serde_html_form", + "serde_html_form 0.4.0", "serde_json", "sha1 0.11.0", "tokio", @@ -1107,7 +1138,7 @@ dependencies = [ "tikv-jemallocator", "tokio", "tokio-metrics", - "toml 0.9.12+spec-1.1.0", + "toml 1.1.2+spec-1.1.0", "tracing", "tracing-core", "tracing-subscriber", @@ -1151,7 +1182,7 @@ version = "0.5.7" dependencies = [ "axum", "axum-client-ip", - "axum-server", + "axum-server 0.8.0", "axum-server-dual-protocol", "bytes", "conduwuit_admin", @@ -1300,9 +1331,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-str" -version = "0.7.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0664d2867b4a32697dfe655557f5c3b187e9b605b38612a748e5ec99811d160" +checksum = "18f12cc9948ed9604230cdddc7c86e270f9401ccbe3c2e98a4378c5e7632212f" [[package]] name = "const_panic" @@ -2075,16 +2106,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "forwarded-header-value" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" -dependencies = [ - "nonempty", - "thiserror 1.0.69", -] - [[package]] name = "fs-err" version = "3.3.0" @@ -2251,7 +2272,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", - "rand_core 0.10.0", + "rand_core 0.10.1", "wasip2", "wasip3", ] @@ -2629,7 +2650,6 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots", ] [[package]] @@ -3510,12 +3530,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "nonempty" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" - [[package]] name = "nonzero_ext" version = "0.3.0" @@ -4408,7 +4422,7 @@ checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ "chacha20", "getrandom 0.4.2", - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] @@ -4441,9 +4455,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rav1e" @@ -4579,21 +4593,16 @@ dependencies = [ "http-body", "http-body-util", "hyper", - "hyper-rustls", "hyper-util", "js-sys", "log", "percent-encoding", "pin-project-lite", - "quinn", - "rustls", - "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", "tokio", - "tokio-rustls", "tower", "tower-http", "tower-service", @@ -4601,7 +4610,6 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", ] [[package]] @@ -4612,6 +4620,7 @@ checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" dependencies = [ "base64 0.22.1", "bytes", + "futures-channel", "futures-core", "futures-util", "h2", @@ -4633,6 +4642,8 @@ dependencies = [ "rustls", "rustls-pki-types", "rustls-platform-verifier", + "serde", + "serde_json", "sync_wrapper", "tokio", "tokio-rustls", @@ -4724,7 +4735,7 @@ dependencies = [ "ruma-common", "ruma-events", "serde", - "serde_html_form", + "serde_html_form 0.2.8", "serde_json", "thiserror 2.0.18", "url", @@ -4751,7 +4762,7 @@ dependencies = [ "ruma-identifiers-validation", "ruma-macros", "serde", - "serde_html_form", + "serde_html_form 0.2.8", "serde_json", "smallvec", "thiserror 2.0.18", @@ -5143,13 +5154,13 @@ dependencies = [ [[package]] name = "sentry" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92d893ba7469d361a6958522fa440e4e2bc8bf4c5803cd1bf40b9af63f8f9a8" +checksum = "eb25f439f97d26fea01d717fa626167ceffcd981addaa670001e70505b72acbb" dependencies = [ "cfg_aliases", "httpdate", - "reqwest 0.12.28", + "reqwest 0.13.2", "rustls", "sentry-backtrace", "sentry-contexts", @@ -5165,9 +5176,9 @@ dependencies = [ [[package]] name = "sentry-backtrace" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8784d0a27b5cd4b5f75769ffc84f0b7580e3c35e1af9cd83cb90b612d769cc" +checksum = "46a8c2c1bd5c1f735e84f28b48e7d72efcaafc362b7541bc8253e60e8fcdffc6" dependencies = [ "backtrace", "regex", @@ -5176,9 +5187,9 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e5eb42f4cd4f9fdfec9e3b07b25a4c9769df83d218a7e846658984d5948ad3e" +checksum = "9b88a90baa654d7f0e1f4b667f6b434293d9f72c71bef16b197c76af5b7d5803" dependencies = [ "hostname", "libc", @@ -5190,9 +5201,9 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b1e7ca40f965db239da279bf278d87b7407469b98835f27f0c8e59ed189b06" +checksum = "0ac170a5bba8bec6e3339c90432569d89641fa7a3d3e4f44987d24f0762e6adf" dependencies = [ "rand 0.9.3", "sentry-types", @@ -5203,9 +5214,9 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "002561e49ea3a9de316e2efadc40fae553921b8ff41448f02ea85fd135a778d6" +checksum = "dd9646a972b57896d4a92ed200cf76139f8e30b3cfd03b6662ae59926d26633c" dependencies = [ "findshlibs", "sentry-core", @@ -5213,9 +5224,9 @@ dependencies = [ [[package]] name = "sentry-log" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e200860daf76e09f9ad111bce25928f96bedbb84bc5934b37f05bb445727c70e" +checksum = "235865e639f1d72414fa5d35374e105c292e2ee3a2f90919d961bbb486626ee6" dependencies = [ "bitflags", "log", @@ -5224,9 +5235,9 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8906f8be87aea5ac7ef937323fb655d66607427f61007b99b7cb3504dc5a156c" +checksum = "6127d3d304ba5ce0409401e85aae538e303a569f8dbb031bf64f9ba0f7174346" dependencies = [ "sentry-backtrace", "sentry-core", @@ -5234,9 +5245,9 @@ dependencies = [ [[package]] name = "sentry-tower" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56aebe376310840b49dad4cca55c7b32d9abdc14946cd071d4158ecb149b63a4" +checksum = "61c5253dc4ad89863a866b93aeaaac1c9d60f2f774663b5024afe2d57e0a101c" dependencies = [ "http", "pin-project", @@ -5248,9 +5259,9 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b07eefe04486316c57aba08ab53dd44753c25102d1d3fe05775cc93a13262d9" +checksum = "27701acc51e68db5281802b709010395bfcbcb128b1d0a4e5873680d3b47ff0c" dependencies = [ "bitflags", "sentry-backtrace", @@ -5261,9 +5272,9 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567711f01f86a842057e1fc17779eba33a336004227e1a1e7e6cc2599e22e259" +checksum = "56780cb5597d676bf22e6c11d1f062eb4def46390ea3bfb047bcbcf7dfd19bdb" dependencies = [ "debugid", "hex", @@ -5288,9 +5299,9 @@ dependencies = [ [[package]] name = "serde-saphyr" -version = "0.0.23" +version = "0.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fbdfe7a27a1b1633dfc0c4c8e65940b8d819c5ddb9cca48ebc3223b00c8b14" +checksum = "f83ad47c2f14654528a89495f8d0dbc64173176f8512c7c72386cbe81009f661" dependencies = [ "ahash", "annotate-snippets", @@ -5299,7 +5310,6 @@ dependencies = [ "getrandom 0.3.4", "nohash-hasher", "num-traits", - "regex", "saphyr-parser-bw", "serde", "smallvec", @@ -5339,6 +5349,19 @@ dependencies = [ "serde_core", ] +[[package]] +name = "serde_html_form" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0946d52b4b7e28823148aebbeceb901012c595ad737920d504fa8634bb099e6f" +dependencies = [ + "form_urlencoded", + "indexmap", + "itoa", + "ryu", + "serde_core", +] + [[package]] name = "serde_json" version = "1.0.149" @@ -5899,9 +5922,9 @@ dependencies = [ [[package]] name = "tokio-metrics" -version = "0.4.9" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0410015c6db7b67b9c9ab2a3af4d74a942d637ff248d0d055073750deac6f9" +checksum = "d9e81d53caf955549b1dec7af4ac2149e94cc25ed97b4a545151140281e2f528" dependencies = [ "futures-util", "pin-project-lite", @@ -5970,6 +5993,19 @@ dependencies = [ "winnow 0.7.15", ] +[[package]] +name = "toml" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +dependencies = [ + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.1", +] + [[package]] name = "toml_datetime" version = "0.6.11" diff --git a/Cargo.toml b/Cargo.toml index 47c6e4df6..69492bbbc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,7 +36,7 @@ version = "0.3" features = ["ffi", "std", "union"] [workspace.dependencies.const-str] -version = "0.7.0" +version = "1.1.0" [workspace.dependencies.ctor] version = "0.10.0" @@ -47,9 +47,9 @@ default-features = false features = ["features"] [workspace.dependencies.toml] -version = "0.9.5" +version = "1.1.2" default-features = false -features = ["parse"] +features = ["parse", "serde"] [workspace.dependencies.sanitize-filename] version = "0.6.0" @@ -102,7 +102,7 @@ default-features = false features = ["typed-header", "tracing", "cookie"] [workspace.dependencies.axum-server] -version = "0.7.2" +version = "0.8.0" default-features = false # to listen on both HTTP and HTTPS if listening on TLS dierctly from conduwuit for complement or sytest @@ -110,7 +110,7 @@ default-features = false version = "0.7" [workspace.dependencies.axum-client-ip] -version = "0.7" +version = "1.3" [workspace.dependencies.tower] version = "0.5.2" @@ -159,7 +159,7 @@ features = ["raw_value"] # Used for appservice registration files [workspace.dependencies.serde-saphyr] -version = "0.0.23" +version = "0.0.24" # Used to load forbidden room/user regex from config [workspace.dependencies.serde_regex] @@ -167,7 +167,7 @@ version = "1.1.0" # Used for ruma wrapper [workspace.dependencies.serde_html_form] -version = "0.2.6" +version = "0.4.0" # Used for password hashing [workspace.dependencies.argon2] @@ -251,7 +251,7 @@ features = [ ] [workspace.dependencies.tokio-metrics] -version = "0.4.0" +version = "0.5.0" [workspace.dependencies.libloading] version = "0.9.0" @@ -429,7 +429,7 @@ features = ["http", "grpc-tonic", "trace", "logs", "metrics"] # optional sentry metrics for crash/panic reporting [workspace.dependencies.sentry] -version = "0.46.0" +version = "0.47.0" default-features = false features = [ "backtrace", @@ -445,9 +445,9 @@ features = [ ] [workspace.dependencies.sentry-tracing] -version = "0.46.0" +version = "0.47.0" [workspace.dependencies.sentry-tower] -version = "0.46.0" +version = "0.47.0" # jemalloc usage [workspace.dependencies.tikv-jemalloc-sys] diff --git a/src/api/client/account/mod.rs b/src/api/client/account/mod.rs index 57a592e63..255777100 100644 --- a/src/api/client/account/mod.rs +++ b/src/api/client/account/mod.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Event, Result, err, info, pdu::PduBuilder, @@ -48,7 +48,7 @@ pub(crate) mod threepid; #[tracing::instrument(skip_all, fields(%client), name = "register_available", level = "info")] pub(crate) async fn get_register_available_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { // Validate user id @@ -110,7 +110,7 @@ pub(crate) async fn get_register_available_route( #[tracing::instrument(skip_all, fields(%client), name = "change_password", level = "info")] pub(crate) async fn change_password_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let identity = if let Some(ref user_id) = body.sender_user { @@ -272,7 +272,7 @@ pub(crate) async fn whoami_route( #[tracing::instrument(skip_all, fields(%client), name = "deactivate", level = "info")] pub(crate) async fn deactivate_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { // Authentication for this endpoint is technically optional, diff --git a/src/api/client/account/register.rs b/src/api/client/account/register.rs index 3fd7e4418..afba5b82a 100644 --- a/src/api/client/account/register.rs +++ b/src/api/client/account/register.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, fmt::Write}; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, debug_info, error, info, utils::{self}, @@ -52,7 +52,7 @@ const RANDOM_USER_ID_LENGTH: usize = 10; #[tracing::instrument(skip_all, fields(%client), name = "register", level = "info")] pub(crate) async fn register_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let is_guest = body.kind == RegistrationKind::Guest; diff --git a/src/api/client/dehydrated_device.rs b/src/api/client/dehydrated_device.rs index e665ec417..033763ef5 100644 --- a/src/api/client/dehydrated_device.rs +++ b/src/api/client/dehydrated_device.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Result, at}; use futures::StreamExt; use ruma::api::client::dehydrated_device::{ @@ -18,7 +18,7 @@ const MAX_BATCH_EVENTS: usize = 50; #[tracing::instrument(skip_all, fields(%client))] pub(crate) async fn put_dehydrated_device_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body @@ -42,7 +42,7 @@ pub(crate) async fn put_dehydrated_device_route( #[tracing::instrument(skip_all, fields(%client))] pub(crate) async fn delete_dehydrated_device_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); @@ -60,7 +60,7 @@ pub(crate) async fn delete_dehydrated_device_route( #[tracing::instrument(skip_all, fields(%client))] pub(crate) async fn get_dehydrated_device_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); @@ -79,7 +79,7 @@ pub(crate) async fn get_dehydrated_device_route( #[tracing::instrument(skip_all, fields(%client))] pub(crate) async fn get_dehydrated_events_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/device.rs b/src/api/client/device.rs index aea7b6737..08c505423 100644 --- a/src/api/client/device.rs +++ b/src/api/client/device.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Result, debug, err, utils}; use futures::StreamExt; use ruma::{ @@ -50,7 +50,7 @@ pub(crate) async fn get_device_route( #[tracing::instrument(skip_all, fields(%client), name = "update_device", level = "debug")] pub(crate) async fn update_device_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/directory.rs b/src/api/client/directory.rs index 86321f66b..4219c3b1c 100644 --- a/src/api/client/directory.rs +++ b/src/api/client/directory.rs @@ -1,7 +1,7 @@ use std::iter::once; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Event, Result, RoomVersion, err, info, utils::{ @@ -51,7 +51,7 @@ use crate::Ruma; #[tracing::instrument(skip_all, fields(%client), name = "publicrooms", level = "info")] pub(crate) async fn get_public_rooms_filtered_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { if let Some(server) = &body.server { @@ -87,7 +87,7 @@ pub(crate) async fn get_public_rooms_filtered_route( #[tracing::instrument(skip_all, fields(%client), name = "publicrooms", level = "info")] pub(crate) async fn get_public_rooms_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { if let Some(server) = &body.server { @@ -123,7 +123,7 @@ pub(crate) async fn get_public_rooms_route( #[tracing::instrument(skip_all, fields(%client), name = "room_directory", level = "info")] pub(crate) async fn set_room_visibility_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/media.rs b/src/api/client/media.rs index c3ea1ec93..1f9710cfc 100644 --- a/src/api/client/media.rs +++ b/src/api/client/media.rs @@ -1,7 +1,7 @@ use std::time::Duration; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, err, utils::{self, content_disposition::make_content_disposition, math::ruma_from_usize}, @@ -49,7 +49,7 @@ pub(crate) async fn get_media_config_route( )] pub(crate) async fn create_content_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let user = body.sender_user(); @@ -99,7 +99,7 @@ pub(crate) async fn create_content_route( )] pub(crate) async fn get_content_thumbnail_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let user = body.sender_user(); @@ -148,7 +148,7 @@ pub(crate) async fn get_content_thumbnail_route( )] pub(crate) async fn get_content_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let user = body.sender_user(); @@ -194,7 +194,7 @@ pub(crate) async fn get_content_route( )] pub(crate) async fn get_content_as_filename_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let user = body.sender_user(); @@ -241,7 +241,7 @@ pub(crate) async fn get_content_as_filename_route( )] pub(crate) async fn get_media_preview_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/media_legacy.rs b/src/api/client/media_legacy.rs index 930daab47..ab9d4de2b 100644 --- a/src/api/client/media_legacy.rs +++ b/src/api/client/media_legacy.rs @@ -1,7 +1,7 @@ #![allow(deprecated)] use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, err, utils::{content_disposition::make_content_disposition, math::ruma_from_usize}, @@ -52,7 +52,7 @@ pub(crate) async fn get_media_config_legacy_legacy_route( #[tracing::instrument(skip_all, fields(%client), name = "url_preview_legacy", level = "debug")] pub(crate) async fn get_media_preview_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); @@ -94,10 +94,10 @@ pub(crate) async fn get_media_preview_legacy_route( /// Returns URL preview. pub(crate) async fn get_media_preview_legacy_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result> { - get_media_preview_legacy_route(State(services), InsecureClientIp(client), body) + get_media_preview_legacy_route(State(services), ClientIp(client), body) .await .map(RumaResponse) } @@ -114,10 +114,10 @@ pub(crate) async fn get_media_preview_legacy_legacy_route( /// - Media will be saved in the media/ directory pub(crate) async fn create_content_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result> { - create_content_route(State(services), InsecureClientIp(client), body) + create_content_route(State(services), ClientIp(client), body) .await .map(RumaResponse) } @@ -133,7 +133,7 @@ pub(crate) async fn create_content_legacy_route( #[tracing::instrument(skip_all, fields(%client), name = "media_get_legacy", level = "debug")] pub(crate) async fn get_content_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let mxc = Mxc { @@ -205,10 +205,10 @@ pub(crate) async fn get_content_legacy_route( #[tracing::instrument(skip_all, fields(%client), name = "media_get_legacy", level = "debug")] pub(crate) async fn get_content_legacy_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result> { - get_content_legacy_route(State(services), InsecureClientIp(client), body) + get_content_legacy_route(State(services), ClientIp(client), body) .await .map(RumaResponse) } @@ -224,7 +224,7 @@ pub(crate) async fn get_content_legacy_legacy_route( #[tracing::instrument(skip_all, fields(%client), name = "media_get_legacy", level = "debug")] pub(crate) async fn get_content_as_filename_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let mxc = Mxc { @@ -295,10 +295,10 @@ pub(crate) async fn get_content_as_filename_legacy_route( /// seconds pub(crate) async fn get_content_as_filename_legacy_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result> { - get_content_as_filename_legacy_route(State(services), InsecureClientIp(client), body) + get_content_as_filename_legacy_route(State(services), ClientIp(client), body) .await .map(RumaResponse) } @@ -314,7 +314,7 @@ pub(crate) async fn get_content_as_filename_legacy_legacy_route( #[tracing::instrument(skip_all, fields(%client), name = "media_thumbnail_get_legacy", level = "debug")] pub(crate) async fn get_content_thumbnail_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let mxc = Mxc { @@ -386,10 +386,10 @@ pub(crate) async fn get_content_thumbnail_legacy_route( /// seconds pub(crate) async fn get_content_thumbnail_legacy_legacy_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result> { - get_content_thumbnail_legacy_route(State(services), InsecureClientIp(client), body) + get_content_thumbnail_legacy_route(State(services), ClientIp(client), body) .await .map(RumaResponse) } diff --git a/src/api/client/membership/invite.rs b/src/api/client/membership/invite.rs index e3ea03b1d..69d4a2f1b 100644 --- a/src/api/client/membership/invite.rs +++ b/src/api/client/membership/invite.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, debug_error, err, info, matrix::{event::gen_event_id_canonical_json, pdu::PduBuilder}, @@ -25,7 +25,7 @@ use crate::Ruma; #[tracing::instrument(skip_all, fields(%client), name = "invite", level = "info")] pub(crate) async fn invite_user_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/membership/join.rs b/src/api/client/membership/join.rs index eb6fa3390..58e2b2bb0 100644 --- a/src/api/client/membership/join.rs +++ b/src/api/client/membership/join.rs @@ -1,7 +1,7 @@ use std::{borrow::Borrow, collections::HashMap, iter::once, sync::Arc}; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, debug, debug_info, debug_warn, err, error, info, is_true, matrix::{ @@ -67,7 +67,7 @@ use crate::{ #[tracing::instrument(skip_all, fields(%client), name = "join", level = "info")] pub(crate) async fn join_room_by_id_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); @@ -139,7 +139,7 @@ pub(crate) async fn join_room_by_id_route( #[tracing::instrument(skip_all, fields(%client), name = "join", level = "info")] pub(crate) async fn join_room_by_id_or_alias_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/membership/knock.rs b/src/api/client/membership/knock.rs index e589aa11c..439adc95d 100644 --- a/src/api/client/membership/knock.rs +++ b/src/api/client/membership/knock.rs @@ -1,7 +1,7 @@ use std::{borrow::Borrow, collections::HashMap, iter::once, sync::Arc}; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, debug, debug_info, debug_warn, err, info, matrix::{ @@ -47,7 +47,7 @@ use crate::Ruma; #[tracing::instrument(skip_all, fields(%client), name = "knock", level = "info")] pub(crate) async fn knock_room_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/message.rs b/src/api/client/message.rs index 851874775..d014b0d57 100644 --- a/src/api/client/message.rs +++ b/src/api/client/message.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Error, Result, at, debug_warn, matrix::{ @@ -71,7 +71,7 @@ const LIMIT_DEFAULT: usize = 10; /// where the user was joined, depending on `history_visibility`) pub(crate) async fn get_message_events_route( State(services): State, - InsecureClientIp(client_ip): InsecureClientIp, + ClientIp(client_ip): ClientIp, body: Ruma, ) -> Result { debug_assert!(IGNORED_MESSAGE_TYPES.is_sorted(), "IGNORED_MESSAGE_TYPES is not sorted"); diff --git a/src/api/client/read_marker.rs b/src/api/client/read_marker.rs index 95c761f98..3ed1bccc9 100644 --- a/src/api/client/read_marker.rs +++ b/src/api/client/read_marker.rs @@ -1,7 +1,7 @@ use std::collections::BTreeMap; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, PduCount, Result, err}; use ruma::{ MilliSecondsSinceUnixEpoch, @@ -119,7 +119,7 @@ pub(crate) async fn set_read_marker_route( /// Sets private read marker and public read receipt EDU. pub(crate) async fn create_receipt_route( State(services): State, - InsecureClientIp(client_ip): InsecureClientIp, + ClientIp(client_ip): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/redact.rs b/src/api/client/redact.rs index c3f42999b..7ec7f162a 100644 --- a/src/api/client/redact.rs +++ b/src/api/client/redact.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Result, matrix::pdu::PduBuilder}; use ruma::{ api::client::redact::redact_event, events::room::redaction::RoomRedactionEventContent, @@ -14,7 +14,7 @@ use crate::Ruma; /// - TODO: Handle txn id pub(crate) async fn redact_event_route( State(services): State, - InsecureClientIp(client_ip): InsecureClientIp, + ClientIp(client_ip): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/report.rs b/src/api/client/report.rs index f6137ba0b..a833d412c 100644 --- a/src/api/client/report.rs +++ b/src/api/client/report.rs @@ -1,7 +1,7 @@ use std::{fmt::Write as _, time::Duration}; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Event, Result, debug_info, info, matrix::pdu::PduEvent, utils::ReadyExt}; use conduwuit_service::Services; use ruma::{ @@ -31,7 +31,7 @@ struct Report { #[tracing::instrument(skip_all, fields(%client), name = "report_room", level = "info")] pub(crate) async fn report_room_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); @@ -87,7 +87,7 @@ pub(crate) async fn report_room_route( #[tracing::instrument(skip_all, fields(%client), name = "report_event", level = "info")] pub(crate) async fn report_event_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { // user authentication @@ -135,7 +135,7 @@ pub(crate) async fn report_event_route( #[tracing::instrument(skip_all, fields(%client), name = "report_user", level = "info")] pub(crate) async fn report_user_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { // user authentication diff --git a/src/api/client/room/summary.rs b/src/api/client/room/summary.rs index 29d393cfc..4333d1afa 100644 --- a/src/api/client/room/summary.rs +++ b/src/api/client/room/summary.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, debug, debug_warn, info, trace, utils::{IterStream, future::TryExtExt}, @@ -33,10 +33,10 @@ use crate::{Ruma, RumaResponse}; /// An implementation of [MSC3266](https://github.com/matrix-org/matrix-spec-proposals/pull/3266) pub(crate) async fn get_room_summary_legacy( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result> { - get_room_summary(State(services), InsecureClientIp(client), body) + get_room_summary(State(services), ClientIp(client), body) .boxed() .await .map(RumaResponse) @@ -49,7 +49,7 @@ pub(crate) async fn get_room_summary_legacy( #[tracing::instrument(skip_all, fields(%client), name = "room_summary", level = "info")] pub(crate) async fn get_room_summary( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let (room_id, servers) = services diff --git a/src/api/client/send.rs b/src/api/client/send.rs index 7f91c3979..20513c0b7 100644 --- a/src/api/client/send.rs +++ b/src/api/client/send.rs @@ -1,7 +1,7 @@ use std::collections::BTreeMap; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Result, err, matrix::pdu::PduBuilder, utils}; use ruma::{api::client::message::send_message_event, events::MessageLikeEventType}; use serde_json::from_str; @@ -19,7 +19,7 @@ use crate::Ruma; /// allowed pub(crate) async fn send_message_event_route( State(services): State, - InsecureClientIp(client_ip): InsecureClientIp, + ClientIp(client_ip): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/session.rs b/src/api/client/session.rs index 76b661cef..681d1d29e 100644 --- a/src/api/client/session.rs +++ b/src/api/client/session.rs @@ -1,7 +1,7 @@ use std::time::Duration; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Error, Result, debug, err, info, utils::{self, ReadyExt, hash, stream::BroadbandExt}, @@ -42,7 +42,7 @@ use crate::Ruma; #[tracing::instrument(skip_all, fields(%client), name = "login", level = "info")] pub(crate) async fn get_login_types_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, _body: Ruma, ) -> Result { Ok(get_login_types::v3::Response::new(vec![ @@ -242,7 +242,7 @@ pub(crate) async fn handle_login( #[tracing::instrument(skip_all, fields(%client), name = "login", level = "info")] pub(crate) async fn login_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let emergency_mode_enabled = services.config.emergency_password.is_some(); @@ -375,7 +375,7 @@ pub(crate) async fn login_route( #[tracing::instrument(skip_all, fields(%client), name = "login_token", level = "info")] pub(crate) async fn login_token_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { if !services.server.config.login_via_existing_session { @@ -411,7 +411,7 @@ pub(crate) async fn login_token_route( #[tracing::instrument(skip_all, fields(%client), name = "logout", level = "info")] pub(crate) async fn logout_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let (sender_user, sender_device) = body.sender(); @@ -457,7 +457,7 @@ pub(crate) async fn logout_route( #[tracing::instrument(skip_all, fields(%client), name = "logout", level = "info")] pub(crate) async fn logout_all_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/client/state.rs b/src/api/client/state.rs index f0b8ac6f3..11b1933ad 100644 --- a/src/api/client/state.rs +++ b/src/api/client/state.rs @@ -1,7 +1,7 @@ #[cfg(test)] mod tests; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Result, err, matrix::{Event, pdu::PduBuilder}, @@ -33,7 +33,7 @@ use crate::{Ruma, RumaResponse}; /// Sends a state event into the room. pub(crate) async fn send_state_event_for_key_route( State(services): State, - InsecureClientIp(ip): InsecureClientIp, + ClientIp(ip): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); @@ -70,10 +70,10 @@ pub(crate) async fn send_state_event_for_key_route( /// Sends a state event into the room. pub(crate) async fn send_state_event_for_empty_key_route( State(services): State, - InsecureClientIp(ip): InsecureClientIp, + ClientIp(ip): ClientIp, body: Ruma, ) -> Result> { - send_state_event_for_key_route(State(services), InsecureClientIp(ip), body) + send_state_event_for_key_route(State(services), ClientIp(ip), body) .boxed() .await .map(RumaResponse) diff --git a/src/api/client/sync/v3/mod.rs b/src/api/client/sync/v3/mod.rs index d733cd411..f9489053c 100644 --- a/src/api/client/sync/v3/mod.rs +++ b/src/api/client/sync/v3/mod.rs @@ -9,7 +9,7 @@ use std::{ }; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Result, at, extract_variant, utils::{ @@ -181,7 +181,7 @@ type PresenceUpdates = HashMap; )] pub(crate) async fn sync_events_route( State(services): State, - InsecureClientIp(client_ip): InsecureClientIp, + ClientIp(client_ip): ClientIp, body: Ruma, ) -> Result> { let (sender_user, sender_device) = body.sender(); diff --git a/src/api/client/sync/v5.rs b/src/api/client/sync/v5.rs index 49bdf1a8d..183f3aaac 100644 --- a/src/api/client/sync/v5.rs +++ b/src/api/client/sync/v5.rs @@ -6,7 +6,7 @@ use std::{ }; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Error, Result, at, error, extract_variant, is_equal_to, matrix::{Event, TypeStateKey, pdu::PduCount}, @@ -63,7 +63,7 @@ type KnownRooms = BTreeMap>; /// [MSC4186]: https://github.com/matrix-org/matrix-spec-proposals/pull/4186 pub(crate) async fn sync_events_v5_route( State(ref services): State, - InsecureClientIp(client_ip): InsecureClientIp, + ClientIp(client_ip): ClientIp, body: Ruma, ) -> Result { debug_assert!(DEFAULT_BUMP_TYPES.is_sorted(), "DEFAULT_BUMP_TYPES is not sorted"); diff --git a/src/api/client/typing.rs b/src/api/client/typing.rs index e54aef7d7..638249351 100644 --- a/src/api/client/typing.rs +++ b/src/api/client/typing.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Result, utils, utils::math::Tried}; use ruma::api::client::typing::create_typing_event; @@ -10,7 +10,7 @@ use crate::Ruma; /// Sets the typing state of the sender user. pub(crate) async fn create_typing_event_route( State(services): State, - InsecureClientIp(ip): InsecureClientIp, + ClientIp(ip): ClientIp, body: Ruma, ) -> Result { use create_typing_event::v3::Typing; diff --git a/src/api/client/unstable.rs b/src/api/client/unstable.rs index 6cf9a29f8..54c8550cb 100644 --- a/src/api/client/unstable.rs +++ b/src/api/client/unstable.rs @@ -1,7 +1,7 @@ use std::collections::BTreeMap; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Result}; use futures::{FutureExt, StreamExt}; use ruma::{ @@ -29,7 +29,7 @@ use crate::Ruma; #[tracing::instrument(skip_all, fields(%client), name = "mutual_rooms", level = "info")] pub(crate) async fn get_mutual_rooms_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let sender_user = body.sender_user(); diff --git a/src/api/server/invite.rs b/src/api/server/invite.rs index beb0c4883..aa19b20e4 100644 --- a/src/api/server/invite.rs +++ b/src/api/server/invite.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use base64::{Engine as _, engine::general_purpose}; use conduwuit::{ Err, Error, PduEvent, Result, err, error, @@ -22,7 +22,7 @@ use crate::Ruma; #[tracing::instrument(skip_all, fields(%client), name = "invite", level = "info")] pub(crate) async fn create_invite_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { // ACL check origin diff --git a/src/api/server/media.rs b/src/api/server/media.rs index cbe8595bd..b3e3b06b5 100644 --- a/src/api/server/media.rs +++ b/src/api/server/media.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Err, Result, utils::content_disposition::make_content_disposition}; use conduwuit_service::media::{Dim, FileMeta}; use ruma::{ @@ -22,7 +22,7 @@ use crate::Ruma; )] pub(crate) async fn get_content_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let mxc = Mxc { @@ -64,7 +64,7 @@ pub(crate) async fn get_content_route( )] pub(crate) async fn get_content_thumbnail_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { let dim = Dim::from_ruma(body.width, body.height, body.method.clone())?; diff --git a/src/api/server/publicrooms.rs b/src/api/server/publicrooms.rs index cf66ea71a..b943a6f1a 100644 --- a/src/api/server/publicrooms.rs +++ b/src/api/server/publicrooms.rs @@ -1,5 +1,5 @@ use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{Error, Result}; use ruma::{ api::{ @@ -17,7 +17,7 @@ use crate::Ruma; #[tracing::instrument(name = "publicrooms", level = "debug", skip_all, fields(%client))] pub(crate) async fn get_public_rooms_filtered_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { if !services @@ -55,7 +55,7 @@ pub(crate) async fn get_public_rooms_filtered_route( #[tracing::instrument(name = "publicrooms", level = "debug", skip_all, fields(%client))] pub(crate) async fn get_public_rooms_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { if !services diff --git a/src/api/server/send.rs b/src/api/server/send.rs index a799af00e..08dd6270b 100644 --- a/src/api/server/send.rs +++ b/src/api/server/send.rs @@ -5,7 +5,7 @@ use std::{ }; use axum::extract::State; -use axum_client_ip::InsecureClientIp; +use axum_client_ip::ClientIp; use conduwuit::{ Err, Error, Result, debug, debug_warn, err, error, result::LogErr, @@ -59,7 +59,7 @@ type Pdu = (OwnedRoomId, OwnedEventId, CanonicalJsonObject); /// Push EDUs and PDUs to this server. pub(crate) async fn send_transaction_message_route( State(services): State, - InsecureClientIp(client): InsecureClientIp, + ClientIp(client): ClientIp, body: Ruma, ) -> Result { if body.origin() != body.body.origin { diff --git a/src/core/Cargo.toml b/src/core/Cargo.toml index c84741f89..4399e0306 100644 --- a/src/core/Cargo.toml +++ b/src/core/Cargo.toml @@ -88,6 +88,7 @@ log.workspace = true lettre.workspace = true num-traits.workspace = true rand.workspace = true +# tied to passwordhash 0.5.0 rand_core = { version = "0.6.4", features = ["getrandom"] } regex.workspace = true reqwest.workspace = true diff --git a/src/router/layers.rs b/src/router/layers.rs index 59f9b96f8..ee17f243f 100644 --- a/src/router/layers.rs +++ b/src/router/layers.rs @@ -4,7 +4,7 @@ use axum::{ Router, extract::{DefaultBodyLimit, MatchedPath}, }; -use axum_client_ip::SecureClientIpSource; +use axum_client_ip::ClientIpSource; use conduwuit::{Result, Server, debug, error}; use conduwuit_service::{Services, state::Guard}; use http::{ @@ -59,7 +59,7 @@ pub(crate) fn build(services: &Arc) -> Result<(Router, Guard)> { .on_response(DefaultOnResponse::new().level(Level::DEBUG)), ) .layer(axum::middleware::from_fn_with_state(Arc::clone(services), request::handle)) - .layer(SecureClientIpSource::ConnectInfo.into_extension()) + .layer(ClientIpSource::ConnectInfo.into_extension()) .layer(ResponseBodyTimeoutLayer::new(Duration::from_secs( server.config.client_response_timeout, ))) diff --git a/src/router/run.rs b/src/router/run.rs index 04663c718..5f1c77444 100644 --- a/src/router/run.rs +++ b/src/router/run.rs @@ -7,7 +7,7 @@ use std::{ time::Duration, }; -use axum_server::Handle as ServerHandle; +use axum_server::{Address, Handle as ServerHandle}; use conduwuit::{Error, Result, Server, debug, debug_error, debug_info, error, info}; use futures::FutureExt; use service::Services; @@ -117,7 +117,7 @@ pub(crate) async fn stop(services: Arc) -> Result<()> { } #[tracing::instrument(skip_all, level = "info")] -async fn signal(server: Arc, tx: Sender<()>, handle: axum_server::Handle) { +async fn signal(server: Arc, tx: Sender<()>, handle: axum_server::Handle) { server .clone() .until_shutdown() @@ -125,7 +125,11 @@ async fn signal(server: Arc, tx: Sender<()>, handle: axum_server::Handle .await; } -async fn handle_shutdown(server: Arc, tx: Sender<()>, handle: axum_server::Handle) { +async fn handle_shutdown( + server: Arc, + tx: Sender<()>, + handle: axum_server::Handle, +) { if let Err(e) = tx.send(()) { error!("failed sending shutdown transaction to channel: {e}"); } diff --git a/src/router/serve/mod.rs b/src/router/serve/mod.rs index 2399edf05..0e86af8f7 100644 --- a/src/router/serve/mod.rs +++ b/src/router/serve/mod.rs @@ -15,7 +15,7 @@ use super::layers; /// Serve clients pub(super) async fn serve( services: Arc, - handle: ServerHandle, + handle: ServerHandle, mut shutdown: broadcast::Receiver<()>, ) -> Result { let server = &services.server; diff --git a/src/router/serve/plain.rs b/src/router/serve/plain.rs index 6db7e138a..2024c67c2 100644 --- a/src/router/serve/plain.rs +++ b/src/router/serve/plain.rs @@ -11,7 +11,7 @@ use tokio::task::JoinSet; pub(super) async fn serve( server: &Arc, app: Router, - handle: ServerHandle, + handle: ServerHandle, addrs: Vec, ) -> Result<()> { let app = app.into_make_service_with_connect_info::();