basic pipelining
This commit is contained in:
@@ -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<u8>) {
|
||||
|
||||
Reference in New Issue
Block a user