Use get_ip in ratelimit middleware

This commit is contained in:
asonix 2020-04-20 13:02:25 -05:00
parent 4df2031ae0
commit d058db95e5
3 changed files with 6 additions and 13 deletions

View file

@ -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(':')

View file

@ -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

View file

@ -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,