aboutsummaryrefslogtreecommitdiffstats
path: root/src/wireguard/router/device.rs
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2019-11-18 12:04:20 +0100
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2019-11-18 12:04:20 +0100
commitb1fbd7fbbaa92dde20d292307f4f4347e4c01450 (patch)
tree3ad79a99ff36568aa801121fad4b065cb819b1ea /src/wireguard/router/device.rs
parentUpdate configuration API (diff)
downloadwireguard-rs-b1fbd7fbbaa92dde20d292307f4f4347e4c01450.tar.xz
wireguard-rs-b1fbd7fbbaa92dde20d292307f4f4347e4c01450.zip
Bug fixes from compliance tests with WireGuard
Diffstat (limited to 'src/wireguard/router/device.rs')
-rw-r--r--src/wireguard/router/device.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/wireguard/router/device.rs b/src/wireguard/router/device.rs
index b3f1787..04b2045 100644
--- a/src/wireguard/router/device.rs
+++ b/src/wireguard/router/device.rs
@@ -147,6 +147,12 @@ impl<E: Endpoint, C: Callbacks, T: tun::Writer, B: bind::Writer<E>> Device<E, C,
/// - msg: IP packet to crypt-key route
///
pub fn send(&self, msg: Vec<u8>) -> Result<(), RouterError> {
+ debug_assert!(msg.len() > SIZE_MESSAGE_PREFIX);
+ log::trace!(
+ "Router, outbound packet = {}",
+ hex::encode(&msg[SIZE_MESSAGE_PREFIX..])
+ );
+
// ignore header prefix (for in-place transport message construction)
let packet = &msg[SIZE_MESSAGE_PREFIX..];
@@ -182,12 +188,20 @@ impl<E: Endpoint, C: Callbacks, T: tun::Writer, B: bind::Writer<E>> Device<E, C,
return Err(RouterError::MalformedTransportMessage);
}
};
+
let header: LayoutVerified<&[u8], TransportHeader> = header;
+
debug_assert!(
header.f_type.get() == TYPE_TRANSPORT as u32,
"this should be checked by the message type multiplexer"
);
+ log::trace!(
+ "Router, handle transport message: (receiver = {}, counter = {})",
+ header.f_receiver,
+ header.f_counter
+ );
+
// lookup peer based on receiver id
let dec = self.state.recv.read();
let dec = dec