From e7305114ad03352e07ef1d9f1d726f5b76cb6937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Wed, 27 Oct 2021 12:22:01 +0200 Subject: [PATCH] aquatic_http: glommio: panic if request receiver channel is closed --- aquatic_http/src/lib/glommio/network.rs | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/aquatic_http/src/lib/glommio/network.rs b/aquatic_http/src/lib/glommio/network.rs index 7f46e84..816852a 100644 --- a/aquatic_http/src/lib/glommio/network.rs +++ b/aquatic_http/src/lib/glommio/network.rs @@ -144,7 +144,7 @@ impl Connection { let opt_request = self.read_tls().await?; if let Some(request) = opt_request { - self.handle_request(request)?; + self.handle_request(request).await?; self.wait_for_and_send_response().await?; } @@ -263,7 +263,7 @@ impl Connection { } /// Send on request to proper request worker/workers - fn handle_request(&mut self, request: Request) -> anyhow::Result<()> { + async fn handle_request(&mut self, request: Request) -> anyhow::Result<()> { let peer_addr = self.get_peer_addr()?; match request { @@ -278,12 +278,8 @@ impl Connection { let consumer_index = calculate_request_consumer_index(&self.config, info_hash); - if let Err(err) = self.request_senders.try_send_to( - consumer_index, - request, - ) { - ::log::warn!("request_sender.try_send failed: {:?}", err); - } + // Only fails when receiver is closed + self.request_senders.send_to(consumer_index, request).await.unwrap(); } Request::Scrape(ScrapeRequest { info_hashes }) => { let mut info_hashes_by_worker: BTreeMap> = BTreeMap::new(); @@ -309,12 +305,8 @@ impl Connection { connection_id: self.connection_id, }; - if let Err(err) = self.request_senders.try_send_to( - consumer_index, - request, - ) { - ::log::warn!("request_sender.try_send failed: {:?}", err); - } + // Only fails when receiver is closed + self.request_senders.send_to(consumer_index, request).await.unwrap(); } } }