This commit is contained in:
Felix Ableitner 2026-04-14 14:38:07 +02:00
parent a087c489a0
commit 2d0845431d

View file

@ -183,7 +183,7 @@ impl<T: Clone> FederationConfig<T> {
} }
let allow_local = std::env::var("DANGER_FEDERATION_ALLOW_LOCAL_IP").is_ok(); let allow_local = std::env::var("DANGER_FEDERATION_ALLOW_LOCAL_IP").is_ok();
if !allow_local && self.is_valid_ip(&url).await.is_err() { if !allow_local && validate_ip(&url).await.is_err() {
return Err(Error::DomainResolveError(domain.to_string())); return Err(Error::DomainResolveError(domain.to_string()));
} }
} }
@ -222,15 +222,6 @@ impl<T: Clone> FederationConfig<T> {
pub fn domain(&self) -> &str { pub fn domain(&self) -> &str {
&self.domain &self.domain
} }
/// Resolve domain of the url and throw error if it points to local/private IP.
pub async fn is_valid_ip(&self, url: &Url) -> Result<(), Error> {
if self.debug {
return Ok(());
}
validate_ip(url).await
}
} }
impl<T: Clone> FederationConfigBuilder<T> { impl<T: Clone> FederationConfigBuilder<T> {
@ -387,6 +378,15 @@ impl<T: Clone> Data<T> {
) )
.await .await
} }
/// Resolve domain of the url and throw error if it points to local/private IP.
pub async fn is_valid_ip(&self, url: &Url) -> Result<(), Error> {
if self.config.debug {
return Ok(());
}
validate_ip(url).await
}
} }
impl<T: Clone> Deref for Data<T> { impl<T: Clone> Deref for Data<T> {