diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-10-13 22:26:12 +0200 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2019-10-13 22:26:12 +0200 |
commit | a08fd4002bfae92072f64f8d5e0084e6f248f139 (patch) | |
tree | a50315318549056627adb05bdd0a4f1a02f8541d /src/wireguard/wireguard.rs | |
parent | Port timer.c from WireGuard (diff) | |
download | wireguard-rs-a08fd4002bfae92072f64f8d5e0084e6f248f139.tar.xz wireguard-rs-a08fd4002bfae92072f64f8d5e0084e6f248f139.zip |
Work on Linux platform code
Diffstat (limited to '')
-rw-r--r-- | src/wireguard/wireguard.rs (renamed from src/wireguard.rs) | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/wireguard.rs b/src/wireguard/wireguard.rs index f14a053..7a22280 100644 --- a/src/wireguard.rs +++ b/src/wireguard/wireguard.rs @@ -1,13 +1,12 @@ -use crate::constants::*; -use crate::handshake; -use crate::router; -use crate::timers::{Events, Timers}; +use super::constants::*; +use super::handshake; +use super::router; +use super::timers::{Events, Timers}; -use crate::types::bind::Reader as BindReader; -use crate::types::bind::{Bind, Writer}; -use crate::types::tun::{Reader, Tun, MTU}; - -use crate::types::Endpoint; +use super::types::bind::Reader as BindReader; +use super::types::bind::{Bind, Writer}; +use super::types::tun::{Reader, Tun, MTU}; +use super::types::Endpoint; use hjul::Runner; @@ -372,9 +371,13 @@ impl<T: Tun, B: Bind> Wireguard<T, B> { msg.resize(size, 0); // read a new IP packet - let payload = reader - .read(&mut msg[..], router::SIZE_MESSAGE_PREFIX) - .unwrap(); + let payload = match reader.read(&mut msg[..], router::SIZE_MESSAGE_PREFIX) { + Ok(payload) => payload, + Err(e) => { + debug!("TUN worker, failed to read from tun device: {}", e); + return; + } + }; debug!("TUN worker, IP packet of {} bytes (MTU = {})", payload, mtu); // truncate padding |