diff --git a/wg-event-gen/src/controller.rs b/wg-event-gen/src/controller.rs index 0f0dd84..445bff6 100644 --- a/wg-event-gen/src/controller.rs +++ b/wg-event-gen/src/controller.rs @@ -1,4 +1,4 @@ -use crate::model::{Base64Backed, ECCKey, Peer, PeerBuilder, SharedKey, WireguardController}; +use crate::model::{Base64Backed, ECCKey, Interface, Peer, PeerBuilder, SharedKey, WireguardController}; use std::io::{BufRead, BufReader, Error, ErrorKind, Result, Write}; use std::net::{IpAddr, SocketAddr}; use std::os::unix::net::UnixStream; @@ -99,13 +99,22 @@ impl WireguardController for Userspace { .scan(PeerBuilder::default(), |builder, line| { match build_peer(builder, line) { Ok(Some(value)) => Some(Some(Ok(value))), - Err(err) => None, //TODO: propagate + Err(err) => { + eprintln!("{:?}", err); + None + }, //TODO: propagate _ => Some(None), } }) - .filter_map(|peer| peer); + .flatten(); Ok(Box::new(peers)) } + + fn interface(&mut self) -> Result { + let mut stream = UnixStream::connect(&self.0)?; + stream.write_all(b"get=1\n")?; + unimplemented!("TODO: return iface") + } fn update_peer(&mut self, peer: &Peer) -> Result<()> { loop {}