diff --git a/wg-event-gen/src/main.rs b/wg-event-gen/src/main.rs index 90a93c7..96c4150 100644 --- a/wg-event-gen/src/main.rs +++ b/wg-event-gen/src/main.rs @@ -18,6 +18,7 @@ use std::io::{BufRead, BufReader, Error, ErrorKind, Result}; use std::net::{IpAddr, SocketAddr}; use std::os::unix::net::UnixStream; use std::path::PathBuf; +use std::process::exit; use std::thread; use std::time::Duration; use structopt::StructOpt; @@ -242,6 +243,9 @@ fn main() { Ok(state) => state, Err(err) => { eprintln!("Failed to read from socket: {}", err); + if !opts.ignore_socket_errors { + exit(1); + } continue; } }; diff --git a/wg-event-gen/src/opts.rs b/wg-event-gen/src/opts.rs index 5c34170..69c2020 100644 --- a/wg-event-gen/src/opts.rs +++ b/wg-event-gen/src/opts.rs @@ -28,6 +28,9 @@ pub struct Opts { )] pub events: Option, + #[structopt(short = "I", long = "ignore-socket-err", env = "WG_IGNORE_SOCKET_ERR")] + pub ignore_socket_errors: bool, + #[structopt(name = "SOCKET", parse(from_os_str), env = "WG_EVENT_SOCKET")] pub socket: PathBuf, }