Change to restarting of dead peers (#239)
* Logging died peers * Ignore incoming for retry, cancel retries after download is complete * Remove cancel * Add incoming flag to PeerHandler * Cleaning up, plus debug * Fix debug style
This commit is contained in:
parent
14cd2a4d9c
commit
f7a812439b
1 changed files with 12 additions and 1 deletions
|
|
@ -399,6 +399,7 @@ impl TorrentStateLive {
|
|||
// TODO: bump counters for incoming
|
||||
let handler = PeerHandler {
|
||||
addr: checked_peer.addr,
|
||||
incoming: true,
|
||||
on_bitfield_notify: Default::default(),
|
||||
unchoke_notify: Default::default(),
|
||||
locked: RwLock::new(PeerHandlerLocked { i_am_choked: true }),
|
||||
|
|
@ -463,6 +464,7 @@ impl TorrentStateLive {
|
|||
|
||||
let handler = PeerHandler {
|
||||
addr,
|
||||
incoming: false,
|
||||
on_bitfield_notify: Default::default(),
|
||||
unchoke_notify: Default::default(),
|
||||
locked: RwLock::new(PeerHandlerLocked { i_am_choked: true }),
|
||||
|
|
@ -818,7 +820,7 @@ struct PeerHandler {
|
|||
requests_sem: Semaphore,
|
||||
|
||||
addr: SocketAddr,
|
||||
|
||||
incoming: bool,
|
||||
tx: PeerTx,
|
||||
|
||||
first_message_received: AtomicBool,
|
||||
|
|
@ -1018,6 +1020,15 @@ impl PeerHandler {
|
|||
|
||||
pe.value_mut().state.set(PeerState::Dead, &pstats);
|
||||
|
||||
if self.incoming {
|
||||
// do not retry incoming peers
|
||||
debug!(
|
||||
peer = handle.to_string(),
|
||||
"incoming peer died, not re-queueing"
|
||||
);
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let backoff = pe.value_mut().stats.backoff.next_backoff();
|
||||
|
||||
// Prevent deadlocks.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue