diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index 356b270..00e4e5b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,7 @@ use certs::CertPool; use config::{setup_file_watch, Config, NODE_KINDS}; use error::ServiceError; use futures::future::try_join_all; -use h3::{error::ErrorLevel, server::RequestStream}; +use h3::server::RequestStream; use h3_quinn::SendStream; use h3_support::H3RequestBody; use http::header::{CONTENT_LENGTH, TRANSFER_ENCODING}; @@ -311,7 +311,11 @@ async fn serve_h3_stream( let max_par_requests = Semaphore::new(config.limits.max_requests_per_connnection); loop { match conn.accept().await { - Ok(Some((req, stream))) => { + Ok(Some(x)) => { + let Ok((req, stream)) = x.resolve_request().await else { + warn!("h3 request accept failed"); + continue; + }; let Ok(_sem_req) = max_par_requests.acquire().await else { warn!("h3 par request semasphore closed"); return; @@ -330,10 +334,10 @@ async fn serve_h3_stream( drop(_sem_req) } Ok(None) => break, - Err(e) => match e.get_error_level() { - ErrorLevel::ConnectionError => break, - ErrorLevel::StreamError => continue, - }, + Err(e) => { + warn!("h3 connection error: {e}"); + break; + } } } drop(_sem); |