diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index e46054c..77da318 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,9 +46,12 @@ pub struct Opt { no_resolve: bool, #[structopt(flatten)] render_opts: RenderOpts, + #[structopt(short, long)] + /// Show DNS queries + show_dns: bool, } -#[derive(StructOpt, Debug)] +#[derive(StructOpt, Debug, Copy, Clone)] pub struct RenderOpts { #[structopt(short, long)] /// Show processes table only @@ -115,6 +118,7 @@ where { let running = Arc::new(AtomicBool::new(true)); let paused = Arc::new(AtomicBool::new(false)); + let dns_shown = opts.show_dns; let mut active_threads = vec![]; @@ -141,7 +145,7 @@ where on_winch({ Box::new(move || { let mut ui = ui.lock().unwrap(); - ui.draw(paused.load(Ordering::SeqCst)); + ui.draw(paused.load(Ordering::SeqCst), dns_shown); }) }); } @@ -184,7 +188,7 @@ where if raw_mode { ui.output_text(&mut write_to_stdout); } else { - ui.draw(paused); + ui.draw(paused, dns_shown); } } let render_duration = render_start_time.elapsed(); @@ -235,12 +239,13 @@ where .map(|(iface, frames)| { let name = format!("sniffing_handler_{}", iface.name); let running = running.clone(); + let show_dns = opts.show_dns; let network_utilization = network_utilization.clone(); thread::Builder::new() .name(name) .spawn(move || { - let mut sniffer = Sniffer::new(iface, frames); + let mut sniffer = Sniffer::new(iface, frames, show_dns); while running.load(Ordering::Acquire) { if let Some(segment) = sniffer.next() { |