mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
Merge pull request #22 from greatest-ape/fixes
Bug fixes, minor improments, README update
This commit is contained in:
commit
fec7236763
4 changed files with 15 additions and 13 deletions
|
|
@ -186,6 +186,10 @@ clients, with some exceptions:
|
|||
* Doesn't track of the number of torrent downloads (0 is always sent).
|
||||
* Doesn't allow full scrapes, i.e. of all registered info hashes
|
||||
|
||||
The current glommio-based implementation currently has large performance
|
||||
regressions compared to [the previous mio-based implementation](https://github.com/greatest-ape/aquatic/tree/30fa96a7f43eb7568b7df1e1fdb6e1885f3b4f58).
|
||||
Use it instead if you want maximum performance now.
|
||||
|
||||
#### TLS
|
||||
|
||||
Please see `aquatic_http` TLS section above.
|
||||
|
|
|
|||
|
|
@ -105,8 +105,8 @@ async fn handle_request_stream<S>(
|
|||
|
||||
::log::debug!("preparing to send response to channel: {:?}", response);
|
||||
|
||||
if let Err(err) = response_senders.try_send_to(producer_index, (response, src)) {
|
||||
::log::warn!("response_sender.try_send: {:?}", err);
|
||||
if let Err(err) = response_senders.send_to(producer_index, (response, src)).await {
|
||||
::log::error!("response_sender.send: {:?}", err);
|
||||
}
|
||||
|
||||
yield_if_needed().await;
|
||||
|
|
|
|||
|
|
@ -240,15 +240,15 @@ async fn read_requests(
|
|||
let request_consumer_index =
|
||||
calculate_request_consumer_index(&config, request.info_hash);
|
||||
|
||||
if let Err(err) = request_senders.try_send_to(
|
||||
if let Err(err) = request_senders.send_to(
|
||||
request_consumer_index,
|
||||
(
|
||||
response_consumer_index,
|
||||
ConnectedRequest::Announce(request),
|
||||
src,
|
||||
),
|
||||
) {
|
||||
::log::warn!("request_sender.try_send failed: {:?}", err)
|
||||
).await {
|
||||
::log::error!("request_sender.try_send failed: {:?}", err)
|
||||
}
|
||||
} else {
|
||||
let response = Response::Error(ErrorResponse {
|
||||
|
|
@ -300,11 +300,11 @@ async fn read_requests(
|
|||
original_indices,
|
||||
};
|
||||
|
||||
if let Err(err) = request_senders.try_send_to(
|
||||
if let Err(err) = request_senders.send_to(
|
||||
consumer_index,
|
||||
(response_consumer_index, request, src),
|
||||
) {
|
||||
::log::warn!("request_sender.try_send failed: {:?}", err)
|
||||
).await {
|
||||
::log::error!("request_sender.send failed: {:?}", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -378,11 +378,9 @@ struct ConnectionWriter {
|
|||
impl ConnectionWriter {
|
||||
async fn run_out_message_loop(&mut self) -> anyhow::Result<()> {
|
||||
loop {
|
||||
let (meta, out_message) = self
|
||||
.out_message_receiver
|
||||
.recv()
|
||||
.await
|
||||
.expect("wait_for_out_message: can't receive out_message, sender is closed");
|
||||
let (meta, out_message) = self.out_message_receiver.recv().await.ok_or_else(|| {
|
||||
anyhow::anyhow!("ConnectionWriter couldn't receive message, sender is closed")
|
||||
})?;
|
||||
|
||||
if meta.naive_peer_addr != self.peer_addr {
|
||||
return Err(anyhow::anyhow!("peer addresses didn't match"));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue