diff --git a/Cargo.lock b/Cargo.lock index 1ee924fac..c328d1167 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2239,7 +2239,7 @@ dependencies = [ [[package]] name = "torrust-tracker" -version = "2.3.0" +version = "2.3.1" dependencies = [ "aquatic_udp_protocol", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 53e2949db..e07778f44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] edition = "2021" name = "torrust-tracker" -version = "2.3.0" +version = "2.3.1" license = "AGPL-3.0" authors = ["Mick van Dijke "] description = "A feature rich BitTorrent tracker." @@ -16,7 +16,6 @@ lto = "thin" debug = 1 opt-level = 3 lto = "fat" -strip = true [dependencies] tokio = { version = "1.7", features = ["full"] } diff --git a/src/tracker/torrent.rs b/src/tracker/torrent.rs index 0c03e3f82..0102b207b 100644 --- a/src/tracker/torrent.rs +++ b/src/tracker/torrent.rs @@ -32,9 +32,12 @@ impl TorrentEntry { AnnounceEvent::Completed => { let peer_old = self.peers.insert(peer.peer_id.clone(), peer.clone()); // Don't count if peer was not previously known - if peer_old.is_some() { - self.completed += 1; - did_torrent_stats_change = true; + if let Some(old_peer) = peer_old { + // Don't double count + if !old_peer.is_seeder() { + self.completed += 1; + did_torrent_stats_change = true; + } } } _ => { @@ -74,7 +77,7 @@ impl TorrentEntry { pub fn remove_inactive_peers(&mut self, max_peer_timeout: u32) { self.peers.retain(|_, peer| { - peer.updated.elapsed() > std::time::Duration::from_secs(max_peer_timeout as u64) + peer.updated.elapsed() < std::time::Duration::from_secs(max_peer_timeout as u64) }); } }