mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-02 18:55:32 +00:00
aquatic_http: glommio: panic if request receiver channel is closed
This commit is contained in:
parent
c02f8f228e
commit
e7305114ad
1 changed files with 6 additions and 14 deletions
|
|
@ -144,7 +144,7 @@ impl Connection {
|
||||||
let opt_request = self.read_tls().await?;
|
let opt_request = self.read_tls().await?;
|
||||||
|
|
||||||
if let Some(request) = opt_request {
|
if let Some(request) = opt_request {
|
||||||
self.handle_request(request)?;
|
self.handle_request(request).await?;
|
||||||
self.wait_for_and_send_response().await?;
|
self.wait_for_and_send_response().await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -263,7 +263,7 @@ impl Connection {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Send on request to proper request worker/workers
|
/// 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()?;
|
let peer_addr = self.get_peer_addr()?;
|
||||||
|
|
||||||
match request {
|
match request {
|
||||||
|
|
@ -278,12 +278,8 @@ impl Connection {
|
||||||
let consumer_index =
|
let consumer_index =
|
||||||
calculate_request_consumer_index(&self.config, info_hash);
|
calculate_request_consumer_index(&self.config, info_hash);
|
||||||
|
|
||||||
if let Err(err) = self.request_senders.try_send_to(
|
// Only fails when receiver is closed
|
||||||
consumer_index,
|
self.request_senders.send_to(consumer_index, request).await.unwrap();
|
||||||
request,
|
|
||||||
) {
|
|
||||||
::log::warn!("request_sender.try_send failed: {:?}", err);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Request::Scrape(ScrapeRequest { info_hashes }) => {
|
Request::Scrape(ScrapeRequest { info_hashes }) => {
|
||||||
let mut info_hashes_by_worker: BTreeMap<usize, Vec<InfoHash>> = BTreeMap::new();
|
let mut info_hashes_by_worker: BTreeMap<usize, Vec<InfoHash>> = BTreeMap::new();
|
||||||
|
|
@ -309,12 +305,8 @@ impl Connection {
|
||||||
connection_id: self.connection_id,
|
connection_id: self.connection_id,
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Err(err) = self.request_senders.try_send_to(
|
// Only fails when receiver is closed
|
||||||
consumer_index,
|
self.request_senders.send_to(consumer_index, request).await.unwrap();
|
||||||
request,
|
|
||||||
) {
|
|
||||||
::log::warn!("request_sender.try_send failed: {:?}", err);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue