better unauthorized ip, and adding responder
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user