added option to supress Transfer logging
Some checks are pending
continuous-integration/drone/push Build is running

This commit is contained in:
shimunn 2019-05-23 20:23:05 +02:00
parent b8d14bee77
commit 60dac9ea17
2 changed files with 16 additions and 4 deletions

View File

@ -1,5 +1,6 @@
use crate::Peer; use crate::Peer;
use number_prefix::{NumberPrefix, Prefixed, Standalone}; use number_prefix::{NumberPrefix, Prefixed, Standalone};
use std::env;
use std::net::SocketAddr; use std::net::SocketAddr;
use std::path::PathBuf; use std::path::PathBuf;
use std::process::Command; use std::process::Command;
@ -33,7 +34,18 @@ impl EventListener for Vec<Box<EventListener>> {
} }
} }
pub struct LogListener; pub struct LogListener {
log_transfer: bool,
}
impl Default for LogListener {
fn default() -> LogListener {
let log = env::var("WG_LOG_TRANSFER")
.map(|t| t.parse::<bool>().unwrap_or(true))
.unwrap_or(false);
LogListener { log_transfer: log }
}
}
impl EventListener for LogListener { impl EventListener for LogListener {
fn name(&self) -> &'static str { fn name(&self) -> &'static str {
@ -52,7 +64,7 @@ impl EventListener for LogListener {
previous_addr, previous_addr,
peer.endpoint.unwrap() peer.endpoint.unwrap()
), ),
Event::Transfered { peer, tx, rx } => { Event::Transfered { peer, tx, rx } if self.log_transfer => {
let prefix = |cnt: u64| match NumberPrefix::binary(cnt as f64) { let prefix = |cnt: u64| match NumberPrefix::binary(cnt as f64) {
Standalone(bytes) => format!("{}B", bytes), Standalone(bytes) => format!("{}B", bytes),
Prefixed(prefix, n) => format!("{:.0} {}B", n, prefix), Prefixed(prefix, n) => format!("{:.0} {}B", n, prefix),
@ -64,7 +76,7 @@ impl EventListener for LogListener {
prefix(rx) prefix(rx)
); );
} }
Event::Transfered { peer, tx, rx } => (),
_ => unimplemented!(), _ => unimplemented!(),
} }
} }

View File

@ -29,7 +29,7 @@ fn listeners(opts: &Opts) -> Vec<Box<EventListener>> {
listeners.push(Box::new(ScriptListener::new(events))) listeners.push(Box::new(ScriptListener::new(events)))
} }
if opts.log { if opts.log {
listeners.push(Box::new(LogListener)); listeners.push(Box::new(LogListener::default()));
} }
println!("Enabled handlers: {}", (&listeners.iter().map(|l| l.name()).collect::<Vec<_>>()).join(", ")); println!("Enabled handlers: {}", (&listeners.iter().map(|l| l.name()).collect::<Vec<_>>()).join(", "));
listeners listeners