better unauthorized ip, and adding responder

This commit is contained in:
2025-01-18 04:04:07 +01:00
parent f5f3ee67a5
commit 3499f430b1
6 changed files with 99 additions and 19 deletions

View File

@@ -28,8 +28,8 @@ impl Server {
.parse()
.expect("Invalid IP or port");
let listener = TcpListener::bind(addr).await.unwrap();
let handler = Arc::new(handler);
let handler = Arc::new(handler);
loop {
let listener_res = listener.accept().await;
if listener_res.is_err() {
@@ -37,12 +37,9 @@ impl Server {
}
let (tcp, client_addr) = listener_res.unwrap();
let client_ip = client_addr.ip();
let io = TokioIo::new(tcp);
if !self.config.is_ip_authorized(&client_addr.ip()) {
continue;
}
let config = Arc::clone(&self.config);
let handler = Arc::clone(&handler);
spawn(async move {
@@ -55,10 +52,12 @@ impl Server {
let handler = Arc::clone(&handler);
async move {
if config.is_req_authorized(&req) {
handler(req).await
} else {
if !config.is_ip_authorized(&client_ip)
|| !config.is_req_authorized(&req)
{
Responder::unathorized()
} else {
handler(req).await
}
}
}),