mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-01 02:05:30 +00:00
aquatic_http: use cleaner request filtering by access list
This commit is contained in:
parent
429ffc8301
commit
48d49c9a1a
1 changed files with 17 additions and 19 deletions
|
|
@ -210,6 +210,20 @@ pub fn handle_connection_read_event(
|
|||
|
||||
if let Some(established) = connection.get_established() {
|
||||
match established.read_request() {
|
||||
Ok(Request::Announce(ref r)) if !state.access_list.allows(access_list_mode, &r.info_hash.0) => {
|
||||
let meta = ConnectionMeta {
|
||||
worker_index: socket_worker_index,
|
||||
poll_token,
|
||||
peer_addr: established.peer_addr,
|
||||
};
|
||||
let response = FailureResponse::new("Info hash not allowed");
|
||||
|
||||
debug!("read disallowed request, sending back error response");
|
||||
|
||||
local_responses.push((meta, Response::Failure(response)));
|
||||
|
||||
break;
|
||||
},
|
||||
Ok(request) => {
|
||||
let meta = ConnectionMeta {
|
||||
worker_index: socket_worker_index,
|
||||
|
|
@ -217,26 +231,10 @@ pub fn handle_connection_read_event(
|
|||
peer_addr: established.peer_addr,
|
||||
};
|
||||
|
||||
let opt_allowed_request = if let Request::Announce(ref r) = request {
|
||||
if state.access_list.allows(access_list_mode, &r.info_hash.0){
|
||||
Some(request)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
} else {
|
||||
Some(request)
|
||||
};
|
||||
debug!("read allowed request, sending on to channel");
|
||||
|
||||
if let Some(request) = opt_allowed_request {
|
||||
debug!("read allowed request, sending on to channel");
|
||||
|
||||
if let Err(err) = request_channel_sender.send((meta, request)) {
|
||||
error!("RequestChannelSender: couldn't send message: {:?}", err);
|
||||
}
|
||||
} else {
|
||||
let response = FailureResponse::new("Info hash not allowed");
|
||||
|
||||
local_responses.push((meta, Response::Failure(response)))
|
||||
if let Err(err) = request_channel_sender.send((meta, request)) {
|
||||
error!("RequestChannelSender: couldn't send message: {:?}", err);
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue