Skip to content

Commit 01e71bf

Browse files
committed
clippy: fix src/tracker/peer.rs
1 parent 49a6acb commit 01e71bf

File tree

7 files changed

+49
-52
lines changed

7 files changed

+49
-52
lines changed

src/api/resources/torrent_resource.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use serde::{Deserialize, Serialize};
22

3-
use crate::tracker::peer::{self, TorrentPeer};
3+
use crate::tracker::peer::{self, Peer};
44

55
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
66
pub struct TorrentResource {
@@ -50,9 +50,9 @@ impl From<peer::Id> for PeerIdResource {
5050
}
5151
}
5252

53-
impl From<TorrentPeer> for TorrentPeerResource {
53+
impl From<Peer> for TorrentPeerResource {
5454
#[allow(deprecated)]
55-
fn from(peer: TorrentPeer) -> Self {
55+
fn from(peer: Peer) -> Self {
5656
TorrentPeerResource {
5757
peer_id: PeerIdResource::from(peer.peer_id),
5858
peer_addr: peer.peer_addr.to_string(),

src/http/handlers.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ pub async fn handle_announce(
4848

4949
debug!("{:?}", announce_request);
5050

51-
let peer =
52-
peer::TorrentPeer::from_http_announce_request(&announce_request, announce_request.peer_addr, tracker.config.get_ext_ip());
51+
let peer = peer::Peer::from_http_announce_request(&announce_request, announce_request.peer_addr, tracker.config.get_ext_ip());
5352
let torrent_stats = tracker
5453
.update_torrent_with_peer_and_get_stats(&announce_request.info_hash, &peer)
5554
.await;
@@ -137,7 +136,7 @@ pub async fn handle_scrape(
137136
fn send_announce_response(
138137
announce_request: &request::Announce,
139138
torrent_stats: &torrent::Stats,
140-
peers: &Vec<peer::TorrentPeer>,
139+
peers: &Vec<peer::Peer>,
141140
interval: u32,
142141
interval_min: u32,
143142
) -> WebResult<impl Reply> {

src/tracker/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ impl Tracker {
227227
}
228228

229229
/// Get all torrent peers for a given torrent filtering out the peer with the client address
230-
pub async fn get_torrent_peers(&self, info_hash: &InfoHash, client_addr: &SocketAddr) -> Vec<peer::TorrentPeer> {
230+
pub async fn get_torrent_peers(&self, info_hash: &InfoHash, client_addr: &SocketAddr) -> Vec<peer::Peer> {
231231
let read_lock = self.torrents.read().await;
232232

233233
match read_lock.get(info_hash) {
@@ -237,7 +237,7 @@ impl Tracker {
237237
}
238238

239239
/// Get all torrent peers for a given torrent
240-
pub async fn get_all_torrent_peers(&self, info_hash: &InfoHash) -> Vec<peer::TorrentPeer> {
240+
pub async fn get_all_torrent_peers(&self, info_hash: &InfoHash) -> Vec<peer::Peer> {
241241
let read_lock = self.torrents.read().await;
242242

243243
match read_lock.get(info_hash) {
@@ -246,7 +246,7 @@ impl Tracker {
246246
}
247247
}
248248

249-
pub async fn update_torrent_with_peer_and_get_stats(&self, info_hash: &InfoHash, peer: &peer::TorrentPeer) -> torrent::Stats {
249+
pub async fn update_torrent_with_peer_and_get_stats(&self, info_hash: &InfoHash, peer: &peer::Peer) -> torrent::Stats {
250250
let mut torrents = self.torrents.write().await;
251251

252252
let torrent_entry = match torrents.entry(*info_hash) {

src/tracker/peer.rs

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::protocol::common::{AnnounceEventDef, NumberOfBytesDef};
1010
use crate::protocol::utils::ser_unix_time_value;
1111

1212
#[derive(PartialEq, Eq, Debug, Clone, Serialize, Copy)]
13-
pub struct TorrentPeer {
13+
pub struct Peer {
1414
pub peer_id: Id,
1515
pub peer_addr: SocketAddr,
1616
#[serde(serialize_with = "ser_unix_time_value")]
@@ -25,16 +25,16 @@ pub struct TorrentPeer {
2525
pub event: AnnounceEvent,
2626
}
2727

28-
impl TorrentPeer {
28+
impl Peer {
2929
#[must_use]
3030
pub fn from_udp_announce_request(
3131
announce_request: &aquatic_udp_protocol::AnnounceRequest,
3232
remote_ip: IpAddr,
3333
host_opt_ip: Option<IpAddr>,
3434
) -> Self {
35-
let peer_addr = TorrentPeer::peer_addr_from_ip_and_port_and_opt_host_ip(remote_ip, host_opt_ip, announce_request.port.0);
35+
let peer_addr = Peer::peer_addr_from_ip_and_port_and_opt_host_ip(remote_ip, host_opt_ip, announce_request.port.0);
3636

37-
TorrentPeer {
37+
Peer {
3838
peer_id: Id(announce_request.peer_id.0),
3939
peer_addr,
4040
updated: Current::now(),
@@ -47,7 +47,7 @@ impl TorrentPeer {
4747

4848
#[must_use]
4949
pub fn from_http_announce_request(announce_request: &Announce, remote_ip: IpAddr, host_opt_ip: Option<IpAddr>) -> Self {
50-
let peer_addr = TorrentPeer::peer_addr_from_ip_and_port_and_opt_host_ip(remote_ip, host_opt_ip, announce_request.port);
50+
let peer_addr = Peer::peer_addr_from_ip_and_port_and_opt_host_ip(remote_ip, host_opt_ip, announce_request.port);
5151

5252
let event: AnnounceEvent = if let Some(event) = &announce_request.event {
5353
match event.as_ref() {
@@ -61,8 +61,8 @@ impl TorrentPeer {
6161
};
6262

6363
#[allow(clippy::cast_possible_truncation)]
64-
TorrentPeer {
65-
peer_id: announce_request.peer_id.clone(),
64+
Peer {
65+
peer_id: announce_request.peer_id,
6666
peer_addr,
6767
updated: Current::now(),
6868
uploaded: NumberOfBytes(i128::from(announce_request.uploaded) as i64),
@@ -104,6 +104,9 @@ impl std::fmt::Display for Id {
104104

105105
impl Id {
106106
#[must_use]
107+
/// # Panics
108+
///
109+
/// It will panic if the `binascii::bin2hex` from a too-small output buffer.
107110
pub fn get_id(&self) -> Option<String> {
108111
let buff_size = self.0.len() * 2;
109112
let mut tmp: Vec<u8> = vec![0; buff_size];
@@ -202,11 +205,6 @@ impl Serialize for Id {
202205
client: Option<&'a str>,
203206
}
204207

205-
let buff_size = self.0.len() * 2;
206-
let mut tmp: Vec<u8> = vec![0; buff_size];
207-
binascii::bin2hex(&self.0, &mut tmp).unwrap();
208-
let id = std::str::from_utf8(&tmp).ok();
209-
210208
let obj = PeerIdInfo {
211209
id: self.get_id(),
212210
client: self.get_client_name(),
@@ -224,11 +222,11 @@ mod test {
224222
use aquatic_udp_protocol::{AnnounceEvent, NumberOfBytes};
225223

226224
use crate::protocol::clock::{Current, Time};
227-
use crate::tracker::peer::{self, TorrentPeer};
225+
use crate::tracker::peer::{self, Peer};
228226

229227
#[test]
230228
fn it_should_be_serializable() {
231-
let torrent_peer = TorrentPeer {
229+
let torrent_peer = Peer {
232230
peer_id: peer::Id(*b"-qB00000000000000000"),
233231
peer_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(126, 0, 0, 1)), 8080),
234232
updated: Current::now(),
@@ -256,7 +254,7 @@ mod test {
256254
AnnounceEvent, AnnounceRequest, NumberOfBytes, NumberOfPeers, PeerId as AquaticPeerId, PeerKey, Port, TransactionId,
257255
};
258256

259-
use crate::tracker::peer::TorrentPeer;
257+
use crate::tracker::peer::Peer;
260258
use crate::udp::connection_cookie::{into_connection_id, make};
261259

262260
// todo: duplicate functions is PR 82. Remove duplication once both PR are merged.
@@ -308,7 +306,7 @@ mod test {
308306
let remote_ip = IpAddr::V4(Ipv4Addr::new(126, 0, 0, 2));
309307
let announce_request = AnnounceRequestBuilder::default().into();
310308

311-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, None);
309+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, None);
312310

313311
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(remote_ip, announce_request.port.0));
314312
}
@@ -318,7 +316,7 @@ mod test {
318316
let remote_ip = IpAddr::V4(Ipv4Addr::new(126, 0, 0, 2));
319317
let announce_request = AnnounceRequestBuilder::default().into();
320318

321-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, None);
319+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, None);
322320

323321
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(remote_ip, announce_request.port.0));
324322
}
@@ -329,14 +327,14 @@ mod test {
329327
use std::str::FromStr;
330328

331329
use crate::tracker::peer::test::torrent_peer_constructor_from_udp_requests::AnnounceRequestBuilder;
332-
use crate::tracker::peer::TorrentPeer;
330+
use crate::tracker::peer::Peer;
333331

334332
#[test]
335333
fn it_should_use_the_loopback_ip_if_the_server_does_not_have_the_external_ip_configuration() {
336334
let remote_ip = IpAddr::V4(Ipv4Addr::LOCALHOST);
337335
let announce_request = AnnounceRequestBuilder::default().into();
338336

339-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, None);
337+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, None);
340338

341339
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(remote_ip, announce_request.port.0));
342340
}
@@ -347,7 +345,7 @@ mod test {
347345
let announce_request = AnnounceRequestBuilder::default().into();
348346

349347
let host_opt_ip = IpAddr::V4(Ipv4Addr::from_str("126.0.0.1").unwrap());
350-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
348+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
351349

352350
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(host_opt_ip, announce_request.port.0));
353351
}
@@ -358,7 +356,7 @@ mod test {
358356
let announce_request = AnnounceRequestBuilder::default().into();
359357

360358
let host_opt_ip = IpAddr::V6(Ipv6Addr::from_str("2345:0425:2CA1:0000:0000:0567:5673:23b5").unwrap());
361-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
359+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
362360

363361
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(host_opt_ip, announce_request.port.0));
364362
}
@@ -370,14 +368,14 @@ mod test {
370368
use std::str::FromStr;
371369

372370
use crate::tracker::peer::test::torrent_peer_constructor_from_udp_requests::AnnounceRequestBuilder;
373-
use crate::tracker::peer::TorrentPeer;
371+
use crate::tracker::peer::Peer;
374372

375373
#[test]
376374
fn it_should_use_the_loopback_ip_if_the_server_does_not_have_the_external_ip_configuration() {
377375
let remote_ip = IpAddr::V6(Ipv6Addr::LOCALHOST);
378376
let announce_request = AnnounceRequestBuilder::default().into();
379377

380-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, None);
378+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, None);
381379

382380
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(remote_ip, announce_request.port.0));
383381
}
@@ -388,7 +386,7 @@ mod test {
388386
let announce_request = AnnounceRequestBuilder::default().into();
389387

390388
let host_opt_ip = IpAddr::V6(Ipv6Addr::from_str("2345:0425:2CA1:0000:0000:0567:5673:23b5").unwrap());
391-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
389+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
392390

393391
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(host_opt_ip, announce_request.port.0));
394392
}
@@ -399,7 +397,7 @@ mod test {
399397
let announce_request = AnnounceRequestBuilder::default().into();
400398

401399
let host_opt_ip = IpAddr::V4(Ipv4Addr::from_str("126.0.0.1").unwrap());
402-
let torrent_peer = TorrentPeer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
400+
let torrent_peer = Peer::from_udp_announce_request(&announce_request, remote_ip, Some(host_opt_ip));
403401

404402
assert_eq!(torrent_peer.peer_addr, SocketAddr::new(host_opt_ip, announce_request.port.0));
405403
}
@@ -411,7 +409,7 @@ mod test {
411409

412410
use crate::http::request::Announce;
413411
use crate::protocol::info_hash::InfoHash;
414-
use crate::tracker::peer::{self, TorrentPeer};
412+
use crate::tracker::peer::{self, Peer};
415413

416414
fn sample_http_announce_request(peer_addr: IpAddr, port: u16) -> Announce {
417415
Announce {
@@ -434,7 +432,7 @@ mod test {
434432
let ip_in_announce_request = IpAddr::V4(Ipv4Addr::new(126, 0, 0, 1));
435433
let announce_request = sample_http_announce_request(ip_in_announce_request, 8080);
436434

437-
let torrent_peer = TorrentPeer::from_http_announce_request(&announce_request, remote_ip, None);
435+
let torrent_peer = Peer::from_http_announce_request(&announce_request, remote_ip, None);
438436

439437
assert_eq!(torrent_peer.peer_addr.ip(), remote_ip);
440438
assert_ne!(torrent_peer.peer_addr.ip(), ip_in_announce_request);
@@ -449,7 +447,7 @@ mod test {
449447
let announce_request =
450448
sample_http_announce_request(IpAddr::V4(Ipv4Addr::new(126, 0, 0, 1)), port_in_announce_request);
451449

452-
let torrent_peer = TorrentPeer::from_http_announce_request(&announce_request, remote_ip, None);
450+
let torrent_peer = Peer::from_http_announce_request(&announce_request, remote_ip, None);
453451

454452
assert_eq!(torrent_peer.peer_addr.port(), announce_request.port);
455453
assert_ne!(torrent_peer.peer_addr.port(), remote_port);

src/tracker/torrent.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::protocol::common::MAX_SCRAPE_TORRENTS;
1111
#[derive(Serialize, Deserialize, Clone, Debug)]
1212
pub struct Entry {
1313
#[serde(skip)]
14-
pub peers: std::collections::BTreeMap<peer::Id, peer::TorrentPeer>,
14+
pub peers: std::collections::BTreeMap<peer::Id, peer::Peer>,
1515
pub completed: u32,
1616
}
1717

@@ -25,7 +25,7 @@ impl Entry {
2525
}
2626

2727
// Update peer and return completed (times torrent has been downloaded)
28-
pub fn update_peer(&mut self, peer: &peer::TorrentPeer) -> bool {
28+
pub fn update_peer(&mut self, peer: &peer::Peer) -> bool {
2929
let mut did_torrent_stats_change: bool = false;
3030

3131
match peer.event {
@@ -49,7 +49,7 @@ impl Entry {
4949
}
5050

5151
#[must_use]
52-
pub fn get_peers(&self, client_addr: Option<&SocketAddr>) -> Vec<&peer::TorrentPeer> {
52+
pub fn get_peers(&self, client_addr: Option<&SocketAddr>) -> Vec<&peer::Peer> {
5353
self.peers
5454
.values()
5555
.filter(|peer| match client_addr {
@@ -122,12 +122,12 @@ mod tests {
122122
use crate::tracker::torrent::Entry;
123123

124124
struct TorrentPeerBuilder {
125-
peer: peer::TorrentPeer,
125+
peer: peer::Peer,
126126
}
127127

128128
impl TorrentPeerBuilder {
129129
pub fn default() -> TorrentPeerBuilder {
130-
let default_peer = peer::TorrentPeer {
130+
let default_peer = peer::Peer {
131131
peer_id: peer::Id([0u8; 20]),
132132
peer_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080),
133133
updated: Current::now(),
@@ -164,14 +164,14 @@ mod tests {
164164
self
165165
}
166166

167-
pub fn into(self) -> peer::TorrentPeer {
167+
pub fn into(self) -> peer::Peer {
168168
self.peer
169169
}
170170
}
171171

172172
/// A torrent seeder is a peer with 0 bytes left to download which
173173
/// has not announced it has stopped
174-
fn a_torrent_seeder() -> peer::TorrentPeer {
174+
fn a_torrent_seeder() -> peer::Peer {
175175
TorrentPeerBuilder::default()
176176
.with_number_of_bytes_left(0)
177177
.with_event_completed()
@@ -180,7 +180,7 @@ mod tests {
180180

181181
/// A torrent leecher is a peer that is not a seeder.
182182
/// Leecher: left > 0 OR event = Stopped
183-
fn a_torrent_leecher() -> peer::TorrentPeer {
183+
fn a_torrent_leecher() -> peer::Peer {
184184
TorrentPeerBuilder::default()
185185
.with_number_of_bytes_left(1)
186186
.with_event_completed()

src/udp/handlers.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ pub async fn handle_announce(
9292
.authenticate_request(&wrapped_announce_request.info_hash, &None)
9393
.await?;
9494

95-
let peer = peer::TorrentPeer::from_udp_announce_request(
95+
let peer = peer::Peer::from_udp_announce_request(
9696
&wrapped_announce_request.announce_request,
9797
remote_addr.ip(),
9898
tracker.config.get_ext_ip(),
@@ -289,12 +289,12 @@ mod tests {
289289
}
290290

291291
struct TorrentPeerBuilder {
292-
peer: peer::TorrentPeer,
292+
peer: peer::Peer,
293293
}
294294

295295
impl TorrentPeerBuilder {
296296
pub fn default() -> TorrentPeerBuilder {
297-
let default_peer = peer::TorrentPeer {
297+
let default_peer = peer::Peer {
298298
peer_id: peer::Id([255u8; 20]),
299299
peer_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(126, 0, 0, 1)), 8080),
300300
updated: Current::now(),
@@ -321,7 +321,7 @@ mod tests {
321321
self
322322
}
323323

324-
pub fn into(self) -> peer::TorrentPeer {
324+
pub fn into(self) -> peer::Peer {
325325
self.peer
326326
}
327327
}

tests/api.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ mod tracker_api {
2424
use torrust_tracker::protocol::clock::DurationSinceUnixEpoch;
2525
use torrust_tracker::protocol::info_hash::InfoHash;
2626
use torrust_tracker::tracker::auth;
27-
use torrust_tracker::tracker::peer::{self, TorrentPeer};
27+
use torrust_tracker::tracker::peer::{self, Peer};
2828
use torrust_tracker::tracker::statistics::Keeper;
2929
use torrust_tracker::{ephemeral_instance_keys, logging, static_time, tracker};
3030

@@ -187,8 +187,8 @@ mod tracker_api {
187187
);
188188
}
189189

190-
fn sample_torrent_peer() -> (TorrentPeer, TorrentPeerResource) {
191-
let torrent_peer = TorrentPeer {
190+
fn sample_torrent_peer() -> (Peer, TorrentPeerResource) {
191+
let torrent_peer = Peer {
192192
peer_id: peer::Id(*b"-qB00000000000000000"),
193193
peer_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(126, 0, 0, 1)), 8080),
194194
updated: DurationSinceUnixEpoch::new(1_669_397_478_934, 0),

0 commit comments

Comments
 (0)