diff options
author | asonix <asonix@asonix.dog> | 2020-04-20 13:02:25 -0500 |
---|---|---|
committer | asonix <asonix@asonix.dog> | 2020-04-20 13:02:25 -0500 |
commit | d058db95e5d642ff79416ad6a11c2707b667517f (patch) | |
tree | 6b625e2d86d6ba474f5026bb60523c4693dac978 /server | |
parent | 4df2031ae035e59c4bbf060c2fad6bfe5e30e256 (diff) |
Use get_ip in ratelimit middleware
Diffstat (limited to 'server')
-rw-r--r-- | server/src/lib.rs | 7 | ||||
-rw-r--r-- | server/src/rate_limit/mod.rs | 10 | ||||
-rw-r--r-- | server/src/routes/websocket.rs | 2 |
3 files changed, 6 insertions, 13 deletions
diff --git a/server/src/lib.rs b/server/src/lib.rs index 2d0ecc3a..79a1437e 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -34,7 +34,7 @@ pub mod settings; pub mod version; pub mod websocket; -use actix_web::HttpRequest; +use actix_web::dev::ConnectionInfo; use chrono::{DateTime, NaiveDateTime, Utc}; use isahc::prelude::*; use lettre::smtp::authentication::{Credentials, Mechanism}; @@ -233,9 +233,8 @@ pub fn markdown_to_html(text: &str) -> String { comrak::markdown_to_html(text, &comrak::ComrakOptions::default()) } -pub fn get_ip(req: &HttpRequest) -> String { - req - .connection_info() +pub fn get_ip(conn_info: &ConnectionInfo) -> String { + conn_info .remote() .unwrap_or("127.0.0.1:12345") .split(':') diff --git a/server/src/rate_limit/mod.rs b/server/src/rate_limit/mod.rs index bb77db29..de45002e 100644 --- a/server/src/rate_limit/mod.rs +++ b/server/src/rate_limit/mod.rs @@ -2,6 +2,7 @@ pub mod rate_limiter; use super::{IPAddr, Settings}; use crate::api::APIError; +use crate::get_ip; use crate::settings::RateLimitConfig; use actix_web::dev::{Service, ServiceRequest, ServiceResponse, Transform}; use failure::Error; @@ -181,14 +182,7 @@ where } fn call(&mut self, req: S::Request) -> Self::Future { - let ip_addr = req - .connection_info() - .remote() - .unwrap_or("127.0.0.1:12345") - .split(':') - .next() - .unwrap_or("127.0.0.1") - .to_string(); + let ip_addr = get_ip(&req.connection_info()); let fut = self .rate_limited diff --git a/server/src/routes/websocket.rs b/server/src/routes/websocket.rs index e1efdc0f..80885945 100644 --- a/server/src/routes/websocket.rs +++ b/server/src/routes/websocket.rs @@ -18,7 +18,7 @@ pub async fn chat_route( cs_addr: chat_server.get_ref().to_owned(), id: 0, hb: Instant::now(), - ip: get_ip(&req), + ip: get_ip(&req.connection_info()), }, &req, stream, |