diff options
author | Jake McGinty <me@jake.su> | 2018-04-26 15:54:40 -0700 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-04-26 15:54:40 -0700 |
commit | 50169b51737be3c6221d8a767ae8fdb03e171ea9 (patch) | |
tree | 977920cdf27ffaa36d7035a0e8a83e5eaa375cf6 | |
parent | tests: gate iperf3 behind flag argument (diff) | |
download | wireguard-rs-50169b51737be3c6221d8a767ae8fdb03e171ea9.tar.xz wireguard-rs-50169b51737be3c6221d8a767ae8fdb03e171ea9.zip |
peer_server: make Error the error type, not ()
-rw-r--r-- | src/interface/mod.rs | 6 | ||||
-rw-r--r-- | src/interface/peer_server.rs | 21 | ||||
-rw-r--r-- | src/main.rs | 2 |
3 files changed, 14 insertions, 15 deletions
diff --git a/src/interface/mod.rs b/src/interface/mod.rs index 110706a..c670bbe 100644 --- a/src/interface/mod.rs +++ b/src/interface/mod.rs @@ -99,7 +99,7 @@ impl Interface { let peer_server = PeerServer::new(core.handle(), self.state.clone(), utun_tx.clone())?; let config_server = ConfigurationService::new(&self.name, &self.state, &core.handle())?; - let config_server = config_server.forward(peer_server.config_tx()).map_err(|_|()); + let config_server = config_server.forward(peer_server.config_tx()).map_err(|_|()); // TODO: don't just forward, this is so hacky. let utun_stream = UtunStream::connect(&self.name, &core.handle())?.framed(VecUtunCodec{}); let (utun_writer, utun_reader) = utun_stream.split(); @@ -116,7 +116,9 @@ impl Interface { let utun_futs = utun_write_fut.join(utun_read_fut); - let fut = peer_server.join(config_server.join(utun_futs)); + let fut = peer_server + .map_err(|e| error!("peer_server error: {:?}", e)) + .join(config_server.join(utun_futs)); let _ = core.run(fut); info!("reactor finished."); diff --git a/src/interface/peer_server.rs b/src/interface/peer_server.rs index 4de6eec..7832e85 100644 --- a/src/interface/peer_server.rs +++ b/src/interface/peer_server.rs @@ -409,7 +409,7 @@ impl PeerServer { impl Future for PeerServer { type Item = (); - type Error = (); + type Error = Error; fn poll(&mut self) -> Poll<Self::Item, Self::Error> { // Handle config events @@ -440,7 +440,8 @@ impl Future for PeerServer { } }, Ok(Async::NotReady) => break, - Ok(Async::Ready(None)) | Err(_) => return Err(()), + Ok(Async::Ready(None)) => bail!("config stream ended unexpectedly"), + Err(e) => bail!("config stream error: {:?}", e), } } @@ -451,7 +452,8 @@ impl Future for PeerServer { let _ = self.handle_timer(message).map_err(|e| debug!("TIMER: {}", e)); }, Ok(Async::NotReady) => break, - Ok(Async::Ready(None)) | Err(_) => return Err(()), + Ok(Async::Ready(None)) => bail!("timer stream ended unexpectedly"), + Err(e) => bail!("timer stream error: {:?}", e), } } @@ -463,14 +465,8 @@ impl Future for PeerServer { let _ = self.handle_ingress_packet(addr, packet).map_err(|e| warn!("UDP ERR: {:?}", e)); }, Ok(Async::NotReady) => break, - Ok(Async::Ready(None)) => { - error!("AHHHHHHHHHH Async::Ready(None) returned by UDP!!"); - return Err(()); - }, - Err(e) => { - error!("AHHHHHHHHHH {:?}", e); - return Err(()); - } + Ok(Async::Ready(None)) => bail!("incoming udp stream ended unexpectedly"), + Err(e) => bail!("incoming udp stream error: {:?}", e) } } } @@ -482,7 +478,8 @@ impl Future for PeerServer { let _ = self.handle_egress_packet(packet).map_err(|e| warn!("UDP ERR: {:?}", e)); }, Ok(Async::NotReady) => break, - Ok(Async::Ready(None)) | Err(_) => return Err(()), + Ok(Async::Ready(None)) => bail!("outgoing udp stream ended unexpectedly"), + Err(e) => bail!("outgoing udp stream error: {:?}", e), } } diff --git a/src/main.rs b/src/main.rs index 0c49343..183503c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -61,7 +61,7 @@ fn main() { )) }) .level(log::LevelFilter::Info) - .level_for("wireguard", log::LevelFilter::Trace) + .level_for("wireguard", log::LevelFilter::Debug) .chain(std::io::stdout()) .apply().unwrap(); |