summaryrefslogtreecommitdiffstats
path: root/src/wireguard/wireguard.rs
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2019-10-13 22:26:12 +0200
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2019-10-13 22:26:12 +0200
commita08fd4002bfae92072f64f8d5e0084e6f248f139 (patch)
treea50315318549056627adb05bdd0a4f1a02f8541d /src/wireguard/wireguard.rs
parentPort timer.c from WireGuard (diff)
downloadwireguard-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