aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs16
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);