diff --git a/src/iface/interface.rs b/src/iface/interface.rs index 0fd63ac..3141923 100644 --- a/src/iface/interface.rs +++ b/src/iface/interface.rs @@ -1082,7 +1082,7 @@ impl<'a> InterfaceInner<'a> { // Pass every IP packet to all raw sockets we have registered. for mut raw_socket in sockets.iter_mut().filter_map(RawSocket::downcast) { - if !raw_socket.accepts(&ip_repr) { + if !raw_socket.accepts(ip_repr) { continue; } @@ -1105,7 +1105,7 @@ impl<'a> InterfaceInner<'a> { sockets: &mut SocketSet, ipv6_packet: &Ipv6Packet<&'frame T>, ) -> Result>> { - let ipv6_repr = Ipv6Repr::parse(&ipv6_packet)?; + let ipv6_repr = Ipv6Repr::parse(ipv6_packet)?; if !ipv6_repr.src_addr.is_unicast() { // Discard packets with non-unicast source addresses. diff --git a/src/parsers.rs b/src/parsers.rs index bc6175e..cf67b44 100644 --- a/src/parsers.rs +++ b/src/parsers.rs @@ -472,7 +472,7 @@ impl FromStr for IpEndpoint { type Err = (); fn from_str(s: &str) -> Result { - Parser::new(s).until_eof(|p| Ok(p.accept_ip_endpoint()?)) + Parser::new(s).until_eof(|p| p.accept_ip_endpoint()) } } diff --git a/src/phy/fault_injector.rs b/src/phy/fault_injector.rs index 49cc7ca..3e2963f 100644 --- a/src/phy/fault_injector.rs +++ b/src/phy/fault_injector.rs @@ -111,7 +111,7 @@ impl Device<'a>> FaultInjector { rx_bucket: 0, }; FaultInjector { - inner: inner, + inner, state: RefCell::new(state), config: Config::default(), } @@ -219,14 +219,14 @@ where } = self; inner.receive().map(|(rx_token, tx_token)| { let rx = RxToken { - state: &state, - config: config, + state, + config, token: rx_token, corrupt: [0; MTU], }; let tx = TxToken { - state: &state, - config: config, + state, + config, token: tx_token, junk: [0; MTU], }; @@ -241,9 +241,9 @@ where config, } = self; inner.transmit().map(|token| TxToken { - state: &state, - config: config, - token: token, + state, + config, + token, junk: [0; MTU], }) } diff --git a/src/phy/pcap_writer.rs b/src/phy/pcap_writer.rs index 2834e93..2d96fb3 100644 --- a/src/phy/pcap_writer.rs +++ b/src/phy/pcap_writer.rs @@ -229,7 +229,7 @@ impl phy::TxToken for TxToken { token.consume(timestamp, len, |buffer| { let result = f(buffer); match mode { - PcapMode::Both | PcapMode::TxOnly => sink.packet(timestamp, &buffer), + PcapMode::Both | PcapMode::TxOnly => sink.packet(timestamp, buffer), PcapMode::RxOnly => (), }; result diff --git a/src/phy/tracer.rs b/src/phy/tracer.rs index d5b8991..40b140b 100644 --- a/src/phy/tracer.rs +++ b/src/phy/tracer.rs @@ -171,7 +171,7 @@ impl<'a> fmt::Display for Packet<'a> { &mut indent, ), #[cfg(feature = "medium-ip")] - Medium::Ip => match crate::wire::IpVersion::of_packet(&self.buffer) { + Medium::Ip => match crate::wire::IpVersion::of_packet(self.buffer) { #[cfg(feature = "proto-ipv4")] Ok(crate::wire::IpVersion::Ipv4) => { crate::wire::Ipv4Packet::<&'static [u8]>::pretty_print( diff --git a/src/socket/dhcpv4.rs b/src/socket/dhcpv4.rs index 97711e6..0df203d 100644 --- a/src/socket/dhcpv4.rs +++ b/src/socket/dhcpv4.rs @@ -307,13 +307,11 @@ impl Dhcpv4Socket { let mut dns_servers = [None; DHCP_MAX_DNS_SERVER_COUNT]; if let Some(received) = dhcp_repr.dns_servers { let mut i = 0; - for addr in received.iter() { - if let Some(addr) = addr { - if addr.is_unicast() { - // This can never be out-of-bounds since both arrays have length DHCP_MAX_DNS_SERVER_COUNT - dns_servers[i] = Some(*addr); - i += 1; - } + for addr in received.iter().flatten() { + if addr.is_unicast() { + // This can never be out-of-bounds since both arrays have length DHCP_MAX_DNS_SERVER_COUNT + dns_servers[i] = Some(*addr); + i += 1; } } } diff --git a/src/socket/set.rs b/src/socket/set.rs index cdfd757..4828195 100644 --- a/src/socket/set.rs +++ b/src/socket/set.rs @@ -201,7 +201,7 @@ impl<'a, 'b: 'a> Iterator for Iter<'a, 'b> { type Item = &'a Socket<'b>; fn next(&mut self) -> Option { - while let Some(item_opt) = self.lower.next() { + for item_opt in &mut self.lower { if let Some(item) = item_opt.as_ref() { return Some(&item.socket); } @@ -222,7 +222,7 @@ impl<'a, 'b: 'a> Iterator for IterMut<'a, 'b> { type Item = SocketRef<'a, Socket<'b>>; fn next(&mut self) -> Option { - while let Some(item_opt) = self.lower.next() { + for item_opt in &mut self.lower { if let Some(item) = item_opt.as_mut() { return Some(SocketRef::new(&mut item.socket)); } diff --git a/src/socket/tcp.rs b/src/socket/tcp.rs index dc8ccea..d8d30c2 100644 --- a/src/socket/tcp.rs +++ b/src/socket/tcp.rs @@ -1424,7 +1424,7 @@ impl<'a> TcpSocket<'a> { ack_min, ack_max ); - return Ok(Some(self.ack_reply(ip_repr, &repr))); + return Ok(Some(self.ack_reply(ip_repr, repr))); } } } diff --git a/src/wire/icmpv4.rs b/src/wire/icmpv4.rs index 7964ee3..78eb67a 100644 --- a/src/wire/icmpv4.rs +++ b/src/wire/icmpv4.rs @@ -485,7 +485,7 @@ impl<'a> Repr<'a> { let mut ip_packet = Ipv4Packet::new_unchecked(packet.data_mut()); header.emit(&mut ip_packet, checksum_caps); let payload = &mut ip_packet.into_inner()[header.buffer_len()..]; - payload.copy_from_slice(&data[..]) + payload.copy_from_slice(data) } } diff --git a/src/wire/icmpv6.rs b/src/wire/icmpv6.rs index 395509b..e093243 100644 --- a/src/wire/icmpv6.rs +++ b/src/wire/icmpv6.rs @@ -657,7 +657,7 @@ impl<'a> Repr<'a> { let mut ip_packet = Ipv6Packet::new_unchecked(buffer); header.emit(&mut ip_packet); let payload = &mut ip_packet.into_inner()[header.buffer_len()..]; - payload.copy_from_slice(&data[..]); + payload.copy_from_slice(data); } match *self { @@ -669,7 +669,7 @@ impl<'a> Repr<'a> { packet.set_msg_type(Message::DstUnreachable); packet.set_msg_code(reason.into()); - emit_contained_packet(packet.payload_mut(), header, &data); + emit_contained_packet(packet.payload_mut(), header, data); } Repr::PktTooBig { mtu, header, data } => { @@ -677,7 +677,7 @@ impl<'a> Repr<'a> { packet.set_msg_code(0); packet.set_pkt_too_big_mtu(mtu); - emit_contained_packet(packet.payload_mut(), header, &data); + emit_contained_packet(packet.payload_mut(), header, data); } Repr::TimeExceeded { @@ -688,7 +688,7 @@ impl<'a> Repr<'a> { packet.set_msg_type(Message::TimeExceeded); packet.set_msg_code(reason.into()); - emit_contained_packet(packet.payload_mut(), header, &data); + emit_contained_packet(packet.payload_mut(), header, data); } Repr::ParamProblem { @@ -701,7 +701,7 @@ impl<'a> Repr<'a> { packet.set_msg_code(reason.into()); packet.set_param_problem_ptr(pointer); - emit_contained_packet(packet.payload_mut(), header, &data); + emit_contained_packet(packet.payload_mut(), header, data); } Repr::EchoRequest { diff --git a/src/wire/ip.rs b/src/wire/ip.rs index 3462841..7f9f483 100644 --- a/src/wire/ip.rs +++ b/src/wire/ip.rs @@ -433,7 +433,7 @@ impl From<::std::net::SocketAddr> for Endpoint { impl From<::std::net::SocketAddrV4> for Endpoint { fn from(x: ::std::net::SocketAddrV4) -> Endpoint { Endpoint { - addr: x.ip().clone().into(), + addr: (*x.ip()).into(), port: x.port(), } } @@ -443,7 +443,7 @@ impl From<::std::net::SocketAddrV4> for Endpoint { impl From<::std::net::SocketAddrV6> for Endpoint { fn from(x: ::std::net::SocketAddrV6) -> Endpoint { Endpoint { - addr: x.ip().clone().into(), + addr: (*x.ip()).into(), port: x.port(), } } @@ -772,7 +772,7 @@ impl Repr { match *self { Repr::Unspecified { .. } => panic!("unspecified IP representation"), #[cfg(feature = "proto-ipv4")] - Repr::Ipv4(repr) => repr.emit(&mut Ipv4Packet::new_unchecked(buffer), &_checksum_caps), + Repr::Ipv4(repr) => repr.emit(&mut Ipv4Packet::new_unchecked(buffer), _checksum_caps), #[cfg(feature = "proto-ipv6")] Repr::Ipv6(repr) => repr.emit(&mut Ipv6Packet::new_unchecked(buffer)), } diff --git a/src/wire/ipv6.rs b/src/wire/ipv6.rs index cb00586..60c3848 100644 --- a/src/wire/ipv6.rs +++ b/src/wire/ipv6.rs @@ -168,7 +168,7 @@ impl Address { let idx = (mask as usize) / 8; let modulus = (mask as usize) % 8; let (first, second) = self.0.split_at(idx); - bytes[0..idx].copy_from_slice(&first); + bytes[0..idx].copy_from_slice(first); if idx < 16 { let part = second[0]; bytes[idx] = part & (!(0xff >> modulus) as u8);