Parcourir la source

Fix 14185a16.

whitequark il y a 7 ans
Parent
commit
3f917c1adc
1 fichiers modifiés avec 8 ajouts et 9 suppressions
  1. 8 9
      src/iface/ethernet.rs

+ 8 - 9
src/iface/ethernet.rs

@@ -70,15 +70,14 @@ enum Packet<'a> {
 impl<'a> Packet<'a> {
 impl<'a> Packet<'a> {
     fn neighbor_addr(&self) -> Option<IpAddress> {
     fn neighbor_addr(&self) -> Option<IpAddress> {
         match self {
         match self {
-            &Packet::None |
+            &Packet::None | &Packet::Arp(_) => None,
-            &Packet::Arp(_) =>
+            &Packet::Icmpv4((ref ipv4_repr, _)) => Some(ipv4_repr.dst_addr.into()),
-                None,
+            #[cfg(feature = "socket-raw")]
-            &Packet::Icmpv4((ref ipv4_repr, _)) =>
+            &Packet::Raw((ref ip_repr, _)) => Some(ip_repr.dst_addr()),
-                Some(ipv4_repr.dst_addr.into()),
+            #[cfg(feature = "socket-udp")]
-            &Packet::Raw((ref ip_repr, _)) |
+            &Packet::Udp((ref ip_repr, _)) => Some(ip_repr.dst_addr()),
-            &Packet::Udp((ref ip_repr, _)) |
+            #[cfg(feature = "socket-tcp")]
-            &Packet::Tcp((ref ip_repr, _)) =>
+            &Packet::Tcp((ref ip_repr, _)) => Some(ip_repr.dst_addr())
-                Some(ip_repr.dst_addr())
         }
         }
     }
     }
 }
 }