@@ -252,81 +252,9 @@ impl Id {
252
252
}
253
253
254
254
#[ must_use]
255
- pub fn get_client_name ( & self ) -> Option < & ' static str > {
256
- if self . 0 [ 0 ] == b'M' {
257
- return Some ( "BitTorrent" ) ;
258
- }
259
- if self . 0 [ 0 ] == b'-' {
260
- let name = match & self . 0 [ 1 ..3 ] {
261
- b"AG" | b"A~" => "Ares" ,
262
- b"AR" => "Arctic" ,
263
- b"AV" => "Avicora" ,
264
- b"AX" => "BitPump" ,
265
- b"AZ" => "Azureus" ,
266
- b"BB" => "BitBuddy" ,
267
- b"BC" => "BitComet" ,
268
- b"BF" => "Bitflu" ,
269
- b"BG" => "BTG (uses Rasterbar libtorrent)" ,
270
- b"BR" => "BitRocket" ,
271
- b"BS" => "BTSlave" ,
272
- b"BX" => "~Bittorrent X" ,
273
- b"CD" => "Enhanced CTorrent" ,
274
- b"CT" => "CTorrent" ,
275
- b"DE" => "DelugeTorrent" ,
276
- b"DP" => "Propagate Data Client" ,
277
- b"EB" => "EBit" ,
278
- b"ES" => "electric sheep" ,
279
- b"FT" => "FoxTorrent" ,
280
- b"FW" => "FrostWire" ,
281
- b"FX" => "Freebox BitTorrent" ,
282
- b"GS" => "GSTorrent" ,
283
- b"HL" => "Halite" ,
284
- b"HN" => "Hydranode" ,
285
- b"KG" => "KGet" ,
286
- b"KT" => "KTorrent" ,
287
- b"LH" => "LH-ABC" ,
288
- b"LP" => "Lphant" ,
289
- b"LT" => "libtorrent" ,
290
- b"lt" => "libTorrent" ,
291
- b"LW" => "LimeWire" ,
292
- b"MO" => "MonoTorrent" ,
293
- b"MP" => "MooPolice" ,
294
- b"MR" => "Miro" ,
295
- b"MT" => "MoonlightTorrent" ,
296
- b"NX" => "Net Transport" ,
297
- b"PD" => "Pando" ,
298
- b"qB" => "qBittorrent" ,
299
- b"QD" => "QQDownload" ,
300
- b"QT" => "Qt 4 Torrent example" ,
301
- b"RT" => "Retriever" ,
302
- b"S~" => "Shareaza alpha/beta" ,
303
- b"SB" => "~Swiftbit" ,
304
- b"SS" => "SwarmScope" ,
305
- b"ST" => "SymTorrent" ,
306
- b"st" => "sharktorrent" ,
307
- b"SZ" => "Shareaza" ,
308
- b"TN" => "TorrentDotNET" ,
309
- b"TR" => "Transmission" ,
310
- b"TS" => "Torrentstorm" ,
311
- b"TT" => "TuoTu" ,
312
- b"UL" => "uLeecher!" ,
313
- b"UT" => "µTorrent" ,
314
- b"UW" => "µTorrent Web" ,
315
- b"VG" => "Vagaa" ,
316
- b"WD" => "WebTorrent Desktop" ,
317
- b"WT" => "BitLet" ,
318
- b"WW" => "WebTorrent" ,
319
- b"WY" => "FireTorrent" ,
320
- b"XL" => "Xunlei" ,
321
- b"XT" => "XanTorrent" ,
322
- b"XX" => "Xtorrent" ,
323
- b"ZT" => "ZipTorrent" ,
324
- _ => return None ,
325
- } ;
326
- Some ( name)
327
- } else {
328
- None
329
- }
255
+ pub fn get_client_name ( & self ) -> Option < String > {
256
+ let peer_id = tdyne_peer_id:: PeerId :: from ( self . 0 ) ;
257
+ tdyne_peer_id_registry:: parse ( peer_id) . ok ( ) . map ( |parsed| parsed. client )
330
258
}
331
259
}
332
260
@@ -336,9 +264,9 @@ impl Serialize for Id {
336
264
S : serde:: Serializer ,
337
265
{
338
266
#[ derive( Serialize ) ]
339
- struct PeerIdInfo < ' a > {
267
+ struct PeerIdInfo {
340
268
id : Option < String > ,
341
- client : Option < & ' a str > ,
269
+ client : Option < String > ,
342
270
}
343
271
344
272
let obj = PeerIdInfo {
@@ -476,7 +404,7 @@ mod test {
476
404
#[ test]
477
405
fn it_should_be_serializable ( ) {
478
406
let torrent_peer = Peer {
479
- peer_id : peer:: Id ( * b"-qB00000000000000000 " ) ,
407
+ peer_id : peer:: Id ( * b"-qB0000-000000000000 " ) ,
480
408
peer_addr : SocketAddr :: new ( IpAddr :: V4 ( Ipv4Addr :: new ( 126 , 0 , 0 , 1 ) ) , 8080 ) ,
481
409
updated : Current :: now ( ) ,
482
410
uploaded : NumberOfBytes ( 0 ) ,
@@ -490,7 +418,7 @@ mod test {
490
418
let expected_raw_json = r#"
491
419
{
492
420
"peer_id": {
493
- "id": "0x2d71423030303030303030303030303030303030 ",
421
+ "id": "0x2d7142303030302d303030303030303030303030 ",
494
422
"client": "qBittorrent"
495
423
},
496
424
"peer_addr":"126.0.0.1:8080",
0 commit comments