diff --git a/src/net/session.rs b/src/net/session.rs index 3f7e80f..0ff26e4 100644 --- a/src/net/session.rs +++ b/src/net/session.rs @@ -178,7 +178,7 @@ impl SessionTorrent { } FragmentStatus::Complete => continue, FragmentStatus::Taken(timestamp) => { - if timestamp.elapsed() > Duration::from_secs(10) { + if timestamp.elapsed() > Duration::from_secs(5) { println!("retrying fragment"); fragment.status = FragmentStatus::Taken(Instant::now()); return Some((index, fragment.begin, fragment.length)) @@ -242,6 +242,7 @@ impl SessionTorrent { // println!("onto piece {} {}..{}", index, begin, begin + length); peer::send_request(&mut self.get_peer(&peer_id).sock, index, begin,length); } else { + peer::send_not_interested(&mut self.get_peer(&peer_id).sock); println!("no fragment"); } } @@ -274,6 +275,8 @@ impl SessionTorrent { fn unchoke_reply(&mut self, peer_id: &Hash) { self.get_peer(&peer_id).peer_choking = false; self.requeue(peer_id); + self.requeue(peer_id); + self.requeue(peer_id); } fn piece_reply(&mut self, peer_id: &Hash, index: u32, begin: u32, block: Vec) {