mirror of
https://github.com/emmett-framework/granian.git
synced 2025-08-04 17:08:02 +00:00
Handle errors in TCP accept loop (close #580)
This commit is contained in:
parent
70719cb283
commit
891c4f96d0
1 changed files with 13 additions and 4 deletions
|
@ -524,11 +524,19 @@ macro_rules! accept_loop {
|
|||
while accept_loop {
|
||||
let semaphore = semaphore.clone();
|
||||
tokio::select! {
|
||||
(permit, Ok((stream, remote_addr))) = async {
|
||||
(permit, event) = async {
|
||||
let permit = semaphore.acquire_owned().await.unwrap();
|
||||
(permit, tcp_listener.accept().await)
|
||||
} => {
|
||||
$handler(local_addr, remote_addr, stream, permit, "http");
|
||||
match event {
|
||||
Ok((stream, remote_addr)) => {
|
||||
$handler(local_addr, remote_addr, stream, permit, "http");
|
||||
},
|
||||
Err(err) => {
|
||||
log::info!("TCP handshake failed with error: {:?}", err);
|
||||
drop(permit);
|
||||
}
|
||||
}
|
||||
},
|
||||
_ = $pysig.changed() => {
|
||||
accept_loop = false;
|
||||
|
@ -552,16 +560,17 @@ macro_rules! accept_loop {
|
|||
while accept_loop {
|
||||
let semaphore = semaphore.clone();
|
||||
tokio::select! {
|
||||
(permit, accept) = async {
|
||||
(permit, event) = async {
|
||||
let permit = semaphore.acquire_owned().await.unwrap();
|
||||
(permit, tls_listener.accept().await)
|
||||
} => {
|
||||
match accept {
|
||||
match event {
|
||||
Ok((stream, remote_addr)) => {
|
||||
$handler(local_addr, remote_addr, stream, permit, "https")
|
||||
},
|
||||
Err(err) => {
|
||||
log::info!("TLS handshake failed with {:?}", err);
|
||||
drop(permit);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue