@@ -67,6 +67,7 @@ impl<S> Handshaker for LegacyHandshaker<S> where S: Sink<SinkItem=InitiateMessag
67
67
const MAX_PENDING_BLOCKS : usize = 50 ;
68
68
69
69
// Some enum to store our selection state updates
70
+ #[ allow( dead_code) ]
70
71
#[ derive( Debug ) ]
71
72
enum SelectState {
72
73
Choke ( PeerInfo ) ,
@@ -84,9 +85,11 @@ enum SelectState {
84
85
TorrentAdded ,
85
86
}
86
87
88
+ #[ allow( clippy:: too_many_lines) ]
87
89
fn main ( ) {
88
90
// Command line argument parsing
89
91
let matches = clap_app ! ( myapp =>
92
+
90
93
( version: "1.0" )
91
94
( author
: "Andrew <[email protected] >" )
92
95
( about: "Simple torrent downloading" )
@@ -130,7 +133,7 @@ fn main() {
130
133
// block when we reach our max peers). Setting these to low
131
134
// values so we don't have more than 2 unused tcp connections.
132
135
. with_config ( HandshakerConfig :: default ( ) . with_wait_buffer_size ( 0 ) . with_done_buffer_size ( 0 ) )
133
- . build :: < TcpTransport > ( TcpTransport , core. handle ( ) ) // Will handshake over TCP (could swap this for UTP in the future)
136
+ . build :: < TcpTransport > ( TcpTransport , & core. handle ( ) ) // Will handshake over TCP (could swap this for UTP in the future)
134
137
. unwrap ( )
135
138
. into_parts ( ) ;
136
139
// Create a peer manager that will hold our peers and heartbeat/send messages to them
@@ -146,7 +149,7 @@ fn main() {
146
149
let map_peer_manager_send = peer_manager_send. clone ( ) . sink_map_err ( |_| ( ) ) ;
147
150
core. handle ( ) . spawn (
148
151
handshaker_recv
149
- . map_err ( |_ | ( ) )
152
+ . map_err ( |( ) | ( ) )
150
153
. map ( |complete_msg| {
151
154
// Our handshaker finished handshaking some peer, get
152
155
// the peer info as well as the peer itself (socket)
@@ -173,7 +176,7 @@ fn main() {
173
176
174
177
// Map out the errors for these sinks so they match
175
178
let map_select_send = select_send. clone ( ) . sink_map_err ( |_| ( ) ) ;
176
- let map_disk_manager_send = disk_manager_send. clone ( ) . sink_map_err ( |_ | ( ) ) ;
179
+ let map_disk_manager_send = disk_manager_send. clone ( ) . sink_map_err ( |( ) | ( ) ) ;
177
180
178
181
// Hook up a future that receives messages from the peer manager, and forwards request to the disk manager or selection manager (using loop fn
179
182
// here because we need to be able to access state, like request_map and a different future combinator wouldn't let us keep it around to access)
@@ -241,15 +244,15 @@ fn main() {
241
244
OPeerManagerMessage :: PeerAdded ( info) => Some ( Either :: A ( SelectState :: NewPeer ( info) ) ) ,
242
245
OPeerManagerMessage :: SentMessage ( _, _) => None ,
243
246
OPeerManagerMessage :: PeerRemoved ( info) => {
244
- println ! ( "We Removed Peer {:?} From The Peer Manager" , info ) ;
247
+ println ! ( "We Removed Peer {info :?} From The Peer Manager" ) ;
245
248
Some ( Either :: A ( SelectState :: RemovedPeer ( info) ) )
246
249
}
247
250
OPeerManagerMessage :: PeerDisconnect ( info) => {
248
- println ! ( "Peer {:?} Disconnected From Us" , info ) ;
251
+ println ! ( "Peer {info :?} Disconnected From Us" ) ;
249
252
Some ( Either :: A ( SelectState :: RemovedPeer ( info) ) )
250
253
}
251
254
OPeerManagerMessage :: PeerError ( info, error) => {
252
- println ! ( "Peer {:?} Disconnected With Error: {:?}" , info , error ) ;
255
+ println ! ( "Peer {info :?} Disconnected With Error: {error :?}" ) ;
253
256
Some ( Either :: A ( SelectState :: RemovedPeer ( info) ) )
254
257
}
255
258
} ;
@@ -305,6 +308,7 @@ fn main() {
305
308
let peer_info = peer_list. remove ( 1 ) ;
306
309
307
310
// Pack up our block into a peer wire protocol message and send it off to the peer
311
+ #[ allow( clippy:: cast_possible_truncation) ]
308
312
let piece =
309
313
PieceMessage :: new ( metadata. piece_index ( ) as u32 , metadata. block_offset ( ) as u32 , block. freeze ( ) ) ;
310
314
let pwp_message = PeerWireProtocolMessage :: Piece ( piece) ;
@@ -360,13 +364,13 @@ fn main() {
360
364
match opt_item. unwrap ( ) {
361
365
// Disk manager identified a good piece already downloaded
362
366
SelectState :: GoodPiece ( index) => {
363
- piece_requests. retain ( |req| req. piece_index ( ) != index as u32 ) ;
367
+ piece_requests. retain ( |req| u64 :: from ( req. piece_index ( ) ) != index) ;
364
368
Loop :: Continue ( ( select_recv, piece_requests, cur_pieces + 1 ) )
365
369
}
366
370
// Disk manager is finished identifying good pieces, torrent has been added
367
371
SelectState :: TorrentAdded => Loop :: Break ( ( select_recv, piece_requests, cur_pieces) ) ,
368
372
// Shouldn't be receiving any other messages...
369
- message => panic ! ( "Unexpected Message Received In Selection Receiver: {:?}" , message ) ,
373
+ message => panic ! ( "Unexpected Message Received In Selection Receiver: {message :?}" ) ,
370
374
}
371
375
} )
372
376
. map_err ( |_| ( ) )
@@ -467,14 +471,14 @@ fn main() {
467
471
vec ! [ IPeerManagerMessage :: SendMessage (
468
472
peer,
469
473
0 ,
470
- PeerWireProtocolMessage :: Have ( HaveMessage :: new( piece as u32 ) ) ,
474
+ PeerWireProtocolMessage :: Have ( HaveMessage :: new( piece. try_into ( ) . unwrap ( ) ) ) ,
471
475
) ]
472
476
} else {
473
477
vec ! [ ]
474
478
}
475
479
}
476
480
// Decided not to handle these two cases here
477
- SelectState :: RemovedPeer ( info) => panic ! ( "Peer {:?} Got Disconnected" , info ) ,
481
+ SelectState :: RemovedPeer ( info) => panic ! ( "Peer {info :?} Got Disconnected" ) ,
478
482
SelectState :: BadPiece ( _) => panic ! ( "Peer Gave Us Bad Piece" ) ,
479
483
_ => vec ! [ ] ,
480
484
} ;
@@ -507,11 +511,11 @@ fn main() {
507
511
Box :: new (
508
512
map_peer_manager_send
509
513
. send_all ( stream:: iter_result ( send_messages. into_iter ( ) . map ( Ok :: < _ , ( ) > ) ) )
510
- . map_err ( |_ | ( ) )
514
+ . map_err ( |( ) | ( ) )
511
515
. and_then ( |( map_peer_manager_send, _) | {
512
516
map_peer_manager_send. send_all ( stream:: iter_result ( next_piece_requests) )
513
517
} )
514
- . map_err ( |_ | ( ) )
518
+ . map_err ( |( ) | ( ) )
515
519
. map ( move |( map_peer_manager_send, _) | {
516
520
Loop :: Continue ( (
517
521
select_recv,
@@ -567,6 +571,7 @@ fn generate_requests(info: &Info, block_size: usize) -> Vec<RequestMessage> {
567
571
for block_index in 0 ..whole_blocks {
568
572
let block_offset = block_index * block_size as u64 ;
569
573
574
+ #[ allow( clippy:: cast_possible_truncation) ]
570
575
requests. push ( RequestMessage :: new ( piece_index as u32 , block_offset as u32 , block_size) ) ;
571
576
}
572
577
@@ -576,9 +581,9 @@ fn generate_requests(info: &Info, block_size: usize) -> Vec<RequestMessage> {
576
581
let block_offset = whole_blocks * block_size as u64 ;
577
582
578
583
requests. push ( RequestMessage :: new (
579
- piece_index as u32 ,
580
- block_offset as u32 ,
581
- partial_block_length as usize ,
584
+ piece_index. try_into ( ) . unwrap ( ) ,
585
+ block_offset. try_into ( ) . unwrap ( ) ,
586
+ partial_block_length. try_into ( ) . unwrap ( ) ,
582
587
) ) ;
583
588
}
584
589
0 commit comments