From 75065741dc3cfdbe95a2afa34119244f1aa17173 Mon Sep 17 00:00:00 2001 From: Simon Bernier St-Pierre Date: Wed, 14 Dec 2016 13:32:31 -0500 Subject: [PATCH] basic pipelining --- src/net/session.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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) {