From 44b0489521c8e099f9be91231af0dc901d93b6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Fri, 10 Apr 2020 10:10:33 +0200 Subject: [PATCH] bittorrent_udp: response_to_bytes: simplify code for ipv6 announce --- bittorrent_udp/src/converters/responses.rs | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/bittorrent_udp/src/converters/responses.rs b/bittorrent_udp/src/converters/responses.rs index 388cc73..67672e1 100644 --- a/bittorrent_udp/src/converters/responses.rs +++ b/bittorrent_udp/src/converters/responses.rs @@ -112,20 +112,9 @@ pub fn response_from_bytes( }).collect() } else { inner[position..].chunks_exact(18).map(|chunk| { - let mut cursor: Cursor<&[u8]> = Cursor::new(&chunk[..]); - - let ip_address = IpAddr::V6(Ipv6Addr::new( - cursor.read_u16::().unwrap(), - cursor.read_u16::().unwrap(), - cursor.read_u16::().unwrap(), - cursor.read_u16::().unwrap(), - cursor.read_u16::().unwrap(), - cursor.read_u16::().unwrap(), - cursor.read_u16::().unwrap(), - cursor.read_u16::().unwrap(), - )); - - let port = cursor.read_u16::().unwrap(); + let ip_bytes: [u8; 16] = (&chunk[..16]).try_into().unwrap(); + let ip_address = IpAddr::V6(Ipv6Addr::from(ip_bytes)); + let port = (&chunk[16..]).read_u16::().unwrap(); ResponsePeer { ip_address,