summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorasonix <asonix@asonix.dog>2020-04-20 13:02:25 -0500
committerasonix <asonix@asonix.dog>2020-04-20 13:02:25 -0500
commitd058db95e5d642ff79416ad6a11c2707b667517f (patch)
tree6b625e2d86d6ba474f5026bb60523c4693dac978 /server
parent4df2031ae035e59c4bbf060c2fad6bfe5e30e256 (diff)
Use get_ip in ratelimit middleware
Diffstat (limited to 'server')
-rw-r--r--server/src/lib.rs7
-rw-r--r--server/src/rate_limit/mod.rs10
-rw-r--r--server/src/routes/websocket.rs2
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,