diff --git a/src/service/federation/execute.rs b/src/service/federation/execute.rs index 4ba51c517..9bba340ff 100644 --- a/src/service/federation/execute.rs +++ b/src/service/federation/execute.rs @@ -192,7 +192,9 @@ impl super::Service { if let Some(url_host) = url.host_str() { if let Ok(ip) = IPAddress::parse(url_host) { trace!("Checking request URL IP {ip:?}"); - self.services.resolver.validate_ip(&ip)?; + if !self.services.client.valid_cidr_range(&ip) { + return Err!(BadServerResponse("Not allowed to send requests to this IP")); + } } } diff --git a/src/service/resolver/actual.rs b/src/service/resolver/actual.rs deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/service/resolver/mod.rs b/src/service/resolver/mod.rs index c98f3ea75..c647f15dd 100644 --- a/src/service/resolver/mod.rs +++ b/src/service/resolver/mod.rs @@ -5,8 +5,7 @@ pub mod fed; use std::sync::Arc; use async_trait::async_trait; -use conduwuit::{Err, Result, implement}; -use ipaddress::IPAddress; +use conduwuit::Result; use resolvematrix::server::{MatrixResolver, MatrixResolverBuilder}; use self::{cache::Cache, dns::Resolver}; @@ -56,12 +55,3 @@ impl crate::Service for Service { fn name(&self) -> &str { crate::service::make_name(module_path!()) } } - -#[implement(Service)] -pub fn validate_ip(&self, ip: &IPAddress) -> Result<()> { - if !self.services.client.valid_cidr_range(ip) { - return Err!(BadServerResponse("Not allowed to send requests to this IP")); - } - - Ok(()) -}