mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-02 10:45:30 +00:00
aquatic: run_event_loop: extract inner logic to own function
This commit is contained in:
parent
8426e8f3f7
commit
ad1fa5b833
1 changed files with 97 additions and 73 deletions
|
|
@ -81,8 +81,38 @@ pub fn run_event_loop(
|
||||||
|
|
||||||
if token.0 == token_num {
|
if token.0 == token_num {
|
||||||
if event.is_readable(){
|
if event.is_readable(){
|
||||||
|
handle_readable_socket(
|
||||||
|
&state,
|
||||||
|
&mut socket,
|
||||||
|
&mut buffer,
|
||||||
|
&mut responses,
|
||||||
|
&mut connect_requests,
|
||||||
|
&mut announce_requests,
|
||||||
|
&mut scrape_requests
|
||||||
|
);
|
||||||
|
|
||||||
|
poll.registry()
|
||||||
|
.reregister(&mut socket, token, interests)
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Read requests, generate and send back responses
|
||||||
|
fn handle_readable_socket(
|
||||||
|
state: &State,
|
||||||
|
socket: &mut UdpSocket,
|
||||||
|
buffer: &mut [u8],
|
||||||
|
responses: &mut Vec<(Response, SocketAddr)>,
|
||||||
|
connect_requests: &mut Vec<(ConnectRequest, SocketAddr)>,
|
||||||
|
announce_requests: &mut Vec<(AnnounceRequest, SocketAddr)>,
|
||||||
|
scrape_requests: &mut Vec<(ScrapeRequest, SocketAddr)>,
|
||||||
|
){
|
||||||
loop {
|
loop {
|
||||||
match socket.recv_from(&mut buffer) {
|
match socket.recv_from(buffer) {
|
||||||
Ok((amt, src)) => {
|
Ok((amt, src)) => {
|
||||||
let request = request_from_bytes(
|
let request = request_from_bytes(
|
||||||
&buffer[..amt],
|
&buffer[..amt],
|
||||||
|
|
@ -108,7 +138,7 @@ pub fn run_event_loop(
|
||||||
responses.push((response, src));
|
responses.push((response, src));
|
||||||
},
|
},
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
eprintln!("Request parse error: {:?}", err);
|
eprintln!("request_from_bytes error: {:?}", err);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -126,18 +156,18 @@ pub fn run_event_loop(
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_connect_requests(
|
handle_connect_requests(
|
||||||
&state,
|
state,
|
||||||
&mut responses,
|
responses,
|
||||||
connect_requests.drain(..)
|
connect_requests.drain(..)
|
||||||
);
|
);
|
||||||
handle_announce_requests(
|
handle_announce_requests(
|
||||||
&state,
|
state,
|
||||||
&mut responses,
|
responses,
|
||||||
announce_requests.drain(..),
|
announce_requests.drain(..),
|
||||||
);
|
);
|
||||||
handle_scrape_requests(
|
handle_scrape_requests(
|
||||||
&state,
|
state,
|
||||||
&mut responses,
|
responses,
|
||||||
scrape_requests.drain(..),
|
scrape_requests.drain(..),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -159,10 +189,4 @@ pub fn run_event_loop(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
poll.registry().reregister(&mut socket, token, interests).unwrap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue