From 3fa928b3158ce33a57e9ba2c1913485eb409ff4b Mon Sep 17 00:00:00 2001 From: Mathias Hall-Andersen Date: Wed, 23 Oct 2019 10:32:18 +0200 Subject: Work on platform specific code (Linux) --- src/wireguard/types/dummy.rs | 54 ++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 19 deletions(-) (limited to 'src/wireguard/types/dummy.rs') diff --git a/src/wireguard/types/dummy.rs b/src/wireguard/types/dummy.rs index 2403c9b..384f123 100644 --- a/src/wireguard/types/dummy.rs +++ b/src/wireguard/types/dummy.rs @@ -2,11 +2,11 @@ use std::error::Error; use std::fmt; use std::marker; use std::net::SocketAddr; +use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::mpsc::{sync_channel, Receiver, SyncSender}; use std::sync::Arc; use std::sync::Mutex; use std::time::Instant; -use std::sync::atomic::{Ordering, AtomicUsize}; use super::*; @@ -43,7 +43,7 @@ impl fmt::Display for BindError { #[derive(Debug)] pub enum TunError { - Disconnected + Disconnected, } impl Error for TunError { @@ -76,7 +76,7 @@ impl Endpoint for UnitEndpoint { "127.0.0.1:8080".parse().unwrap() } - fn clear_src(&self) {} + fn clear_src(&mut self) {} } impl UnitEndpoint { @@ -92,21 +92,21 @@ pub struct TunTest {} pub struct TunFakeIO { store: bool, tx: SyncSender>, - rx: Receiver> + rx: Receiver>, } pub struct TunReader { - rx: Receiver> + rx: Receiver>, } pub struct TunWriter { store: bool, - tx: Mutex>> + tx: Mutex>>, } #[derive(Clone)] pub struct TunMTU { - mtu: Arc + mtu: Arc, } impl tun::Reader for TunReader { @@ -118,7 +118,7 @@ impl tun::Reader for TunReader { buf[offset..].copy_from_slice(&m[..]); Ok(m.len()) } - Err(_) => Err(TunError::Disconnected) + Err(_) => Err(TunError::Disconnected), } } } @@ -131,7 +131,7 @@ impl tun::Writer for TunWriter { let m = src.to_owned(); match self.tx.lock().unwrap().send(m) { Ok(_) => Ok(()), - Err(_) => Err(TunError::Disconnected) + Err(_) => Err(TunError::Disconnected), } } else { Ok(()) @@ -153,7 +153,7 @@ impl tun::Tun for TunTest { } impl TunFakeIO { - pub fn write(&self, msg : Vec) { + pub fn write(&self, msg: Vec) { if self.store { self.tx.send(msg).unwrap(); } @@ -165,15 +165,31 @@ impl TunFakeIO { } impl TunTest { - pub fn create(mtu : usize, store: bool) -> (TunFakeIO, TunReader, TunWriter, TunMTU) { - - let (tx1, rx1) = if store { sync_channel(32) } else { sync_channel(1) }; - let (tx2, rx2) = if store { sync_channel(32) } else { sync_channel(1) }; - - let fake = TunFakeIO{tx: tx1, rx: rx2, store}; - let reader = TunReader{rx : rx1}; - let writer = TunWriter{tx : Mutex::new(tx2), store}; - let mtu = TunMTU{mtu : Arc::new(AtomicUsize::new(mtu))}; + pub fn create(mtu: usize, store: bool) -> (TunFakeIO, TunReader, TunWriter, TunMTU) { + let (tx1, rx1) = if store { + sync_channel(32) + } else { + sync_channel(1) + }; + let (tx2, rx2) = if store { + sync_channel(32) + } else { + sync_channel(1) + }; + + let fake = TunFakeIO { + tx: tx1, + rx: rx2, + store, + }; + let reader = TunReader { rx: rx1 }; + let writer = TunWriter { + tx: Mutex::new(tx2), + store, + }; + let mtu = TunMTU { + mtu: Arc::new(AtomicUsize::new(mtu)), + }; (fake, reader, writer, mtu) } -- cgit v1.2.3-59-g8ed1b