diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-18 12:04:20 +0100 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-11-18 12:04:20 +0100 |
commit | b1fbd7fbbaa92dde20d292307f4f4347e4c01450 (patch) | |
tree | 3ad79a99ff36568aa801121fad4b065cb819b1ea /src/wireguard/router/route.rs | |
parent | Update configuration API (diff) | |
download | wireguard-rs-b1fbd7fbbaa92dde20d292307f4f4347e4c01450.tar.xz wireguard-rs-b1fbd7fbbaa92dde20d292307f4f4347e4c01450.zip |
Bug fixes from compliance tests with WireGuard
Diffstat (limited to 'src/wireguard/router/route.rs')
-rw-r--r-- | src/wireguard/router/route.rs | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/wireguard/router/route.rs b/src/wireguard/router/route.rs index 94c7e23..29e7635 100644 --- a/src/wireguard/router/route.rs +++ b/src/wireguard/router/route.rs @@ -18,12 +18,15 @@ pub fn get_route<E: Endpoint, C: Callbacks, T: tun::Writer, B: bind::Writer<E>>( ) -> Option<Arc<PeerInner<E, C, T, B>>> { match packet.get(0)? >> 4 { VERSION_IP4 => { - trace!("cryptokey router, get route for IPv4 packet"); - // check length and cast to IPv4 header let (header, _): (LayoutVerified<&[u8], IPv4Header>, _) = LayoutVerified::new_from_prefix(packet)?; + log::trace!( + "Router, get route for IPv4 destination: {:?}", + Ipv4Addr::from(header.f_destination) + ); + // check IPv4 source address device .ipv4 @@ -32,12 +35,15 @@ pub fn get_route<E: Endpoint, C: Callbacks, T: tun::Writer, B: bind::Writer<E>>( .and_then(|(_, _, p)| Some(p.clone())) } VERSION_IP6 => { - trace!("cryptokey router, get route for IPv6 packet"); - // check length and cast to IPv6 header let (header, _): (LayoutVerified<&[u8], IPv6Header>, _) = LayoutVerified::new_from_prefix(packet)?; + log::trace!( + "Router, get route for IPv6 destination: {:?}", + Ipv6Addr::from(header.f_destination) + ); + // check IPv6 source address device .ipv6 @@ -57,12 +63,15 @@ pub fn check_route<E: Endpoint, C: Callbacks, T: tun::Writer, B: bind::Writer<E> ) -> Option<usize> { match packet.get(0)? >> 4 { VERSION_IP4 => { - trace!("cryptokey route, check route for IPv4 packet"); - // check length and cast to IPv4 header let (header, _): (LayoutVerified<&[u8], IPv4Header>, _) = LayoutVerified::new_from_prefix(packet)?; + log::trace!( + "Router, check route for IPv4 source: {:?}", + Ipv4Addr::from(header.f_source) + ); + // check IPv4 source address device .ipv4 @@ -77,12 +86,15 @@ pub fn check_route<E: Endpoint, C: Callbacks, T: tun::Writer, B: bind::Writer<E> }) } VERSION_IP6 => { - trace!("cryptokey route, check route for IPv6 packet"); - // check length and cast to IPv6 header let (header, _): (LayoutVerified<&[u8], IPv6Header>, _) = LayoutVerified::new_from_prefix(packet)?; + log::trace!( + "Router, check route for IPv6 source: {:?}", + Ipv6Addr::from(header.f_source) + ); + // check IPv6 source address device .ipv6 |