From 93a6178c00662ce427e4f4dfd1a710365329f639 Mon Sep 17 00:00:00 2001 From: sigmaSd Date: Tue, 14 Jul 2020 15:45:59 +0200 Subject: feat(raw): add delimiters to raw output (#175) --- src/display/ui.rs | 67 ++++++++++++++-------- .../raw_mode__bi_directional_traffic.snap | 5 ++ ...__multiple_connections_from_remote_address.snap | 5 ++ ...kets_of_traffic_from_different_connections.snap | 5 ++ ..._packets_of_traffic_from_single_connection.snap | 5 ++ ...ltiple_processes_with_multiple_connections.snap | 5 ++ .../cases/snapshots/raw_mode__no_resolve_mode.snap | 7 +++ .../raw_mode__one_ip_packet_of_traffic.snap | 5 ++ .../snapshots/raw_mode__one_packet_of_traffic.snap | 5 ++ ...ode__one_process_with_multiple_connections.snap | 5 ++ ..._sustained_traffic_from_multiple_processes.snap | 7 +++ ...fic_from_multiple_processes_bi_directional.snap | 7 +++ ...w_mode__sustained_traffic_from_one_process.snap | 7 +++ .../raw_mode__traffic_with_host_names.snap | 7 +++ 14 files changed, 118 insertions(+), 24 deletions(-) diff --git a/src/display/ui.rs b/src/display/ui.rs index ce96aa1..d37ab31 100644 --- a/src/display/ui.rs +++ b/src/display/ui.rs @@ -45,8 +45,10 @@ where let ip_to_host = &self.ip_to_host; let local_time: DateTime = Local::now(); let timestamp = local_time.timestamp(); + let mut no_traffic = true; - let output_process_data = |write_to_stdout: &mut (dyn FnMut(String) + Send)| { + let output_process_data = |write_to_stdout: &mut (dyn FnMut(String) + Send), + no_traffic: &mut bool| { for (process, process_network_data) in &state.processes { write_to_stdout(format!( "process: <{}> \"{}\" up/down Bps: {}/{} connections: {}", @@ -56,27 +58,31 @@ where process_network_data.total_bytes_downloaded, process_network_data.connection_count )); + *no_traffic = false; } }; - let output_connections_data = |write_to_stdout: &mut (dyn FnMut(String) + Send)| { - for (connection, connection_network_data) in &state.connections { - write_to_stdout(format!( - "connection: <{}> {} up/down Bps: {}/{} process: \"{}\"", - timestamp, - display_connection_string( - connection, - ip_to_host, - &connection_network_data.interface_name, - ), - connection_network_data.total_bytes_uploaded, - connection_network_data.total_bytes_downloaded, - connection_network_data.process_name - )); - } - }; + let output_connections_data = + |write_to_stdout: &mut (dyn FnMut(String) + Send), no_traffic: &mut bool| { + for (connection, connection_network_data) in &state.connections { + write_to_stdout(format!( + "connection: <{}> {} up/down Bps: {}/{} process: \"{}\"", + timestamp, + display_connection_string( + connection, + ip_to_host, + &connection_network_data.interface_name, + ), + connection_network_data.total_bytes_uploaded, + connection_network_data.total_bytes_downloaded, + connection_network_data.process_name + )); + *no_traffic = false; + } + }; - let output_adressess_data = |write_to_stdout: &mut (dyn FnMut(String) + Send)| { + let output_adressess_data = |write_to_stdout: &mut (dyn FnMut(String) + Send), + no_traffic: &mut bool| { for (remote_address, remote_address_network_data) in &state.remote_addresses { write_to_stdout(format!( "remote_address: <{}> {} up/down Bps: {}/{} connections: {}", @@ -86,23 +92,36 @@ where remote_address_network_data.total_bytes_downloaded, remote_address_network_data.connection_count )); + *no_traffic = false; } }; + // header + write_to_stdout("Refreshing:".into()); + + // body1 if self.opts.processes { - output_process_data(write_to_stdout); + output_process_data(write_to_stdout, &mut no_traffic); } if self.opts.connections { - output_connections_data(write_to_stdout); + output_connections_data(write_to_stdout, &mut no_traffic); } if self.opts.addresses { - output_adressess_data(write_to_stdout); + output_adressess_data(write_to_stdout, &mut no_traffic); } if !(self.opts.processes || self.opts.connections || self.opts.addresses) { - output_process_data(write_to_stdout); - output_connections_data(write_to_stdout); - output_adressess_data(write_to_stdout); + output_process_data(write_to_stdout, &mut no_traffic); + output_connections_data(write_to_stdout, &mut no_traffic); + output_adressess_data(write_to_stdout, &mut no_traffic); + } + + // body2: In case no traffic is detected + if no_traffic { + write_to_stdout("".into()); } + + // footer + write_to_stdout("".into()); } pub fn draw(&mut self, paused: bool, show_dns: bool, elapsed_time: Duration, ui_offset: usize) { diff --git a/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap b/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap index ff5c6df..604d40f 100644 --- a/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap +++ b/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap @@ -2,7 +2,12 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 24/25 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 24/25 process: "1" remote_address: 1.1.1.1 up/down Bps: 24/25 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap b/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap index ee79f90..140d2b4 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap @@ -2,8 +2,13 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 0/47 connections: 2 connection: :443 => 1.1.1.1:12346 (tcp) up/down Bps: 0/25 process: "1" connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" remote_address: 1.1.1.1 up/down Bps: 0/47 connections: 2 + diff --git a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap index d5defc2..8d4d513 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap @@ -2,9 +2,14 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 0/22 connections: 1 process: "4" up/down Bps: 0/19 connections: 1 connection: :443 => 2.2.2.2:12345 (tcp) up/down Bps: 0/22 process: "1" connection: :4434 => 2.2.2.2:54321 (tcp) up/down Bps: 0/19 process: "4" remote_address: 2.2.2.2 up/down Bps: 0/41 connections: 2 + diff --git a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap index 91bf8b8..7db2d18 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap @@ -2,7 +2,12 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 0/45 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/45 process: "1" remote_address: 1.1.1.1 up/down Bps: 0/45 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap b/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap index 6709ffd..0b230b7 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap @@ -2,6 +2,10 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "5" up/down Bps: 0/28 connections: 1 process: "4" up/down Bps: 0/26 connections: 1 process: "1" up/down Bps: 0/22 connections: 1 @@ -15,3 +19,4 @@ remote_address: 2.2.2.2 up/down Bps: 0/26 connections: 1 remote_address: 1.1.1.1 up/down Bps: 0/22 connections: 1 remote_address: 4.4.4.4 up/down Bps: 0/21 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap b/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap index c4624be..1e198c6 100644 --- a/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap +++ b/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap @@ -2,12 +2,18 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 28/30 connections: 1 process: "5" up/down Bps: 17/18 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 28/30 process: "1" connection: :4435 => 3.3.3.3:1337 (tcp) up/down Bps: 17/18 process: "5" remote_address: 1.1.1.1 up/down Bps: 28/30 connections: 1 remote_address: 3.3.3.3 up/down Bps: 17/18 connections: 1 + +Refreshing: process: "1" up/down Bps: 31/32 connections: 1 process: "5" up/down Bps: 22/27 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 31/32 process: "1" @@ -15,3 +21,4 @@ connection: :4435 => 3.3.3.3:1337 (tcp) up/d remote_address: 1.1.1.1 up/down Bps: 31/32 connections: 1 remote_address: 3.3.3.3 up/down Bps: 22/27 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap b/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap index 6ed439b..8ce2579 100644 --- a/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap +++ b/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap @@ -2,7 +2,12 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 21/0 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 21/0 process: "1" remote_address: 1.1.1.1 up/down Bps: 21/0 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap b/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap index 6ed439b..8ce2579 100644 --- a/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap +++ b/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap @@ -2,7 +2,12 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 21/0 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 21/0 process: "1" remote_address: 1.1.1.1 up/down Bps: 21/0 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap b/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap index cb3efff..91519f3 100644 --- a/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap +++ b/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap @@ -2,8 +2,13 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 0/46 connections: 2 connection: :443 => 1.1.1.1:12346 (tcp) up/down Bps: 0/24 process: "1" connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" remote_address: 1.1.1.1 up/down Bps: 0/46 connections: 2 + diff --git a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap index 526b9f7..85aadde 100644 --- a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap +++ b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap @@ -2,12 +2,18 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 0/22 connections: 1 process: "5" up/down Bps: 0/19 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" connection: :4435 => 3.3.3.3:1337 (tcp) up/down Bps: 0/19 process: "5" remote_address: 1.1.1.1 up/down Bps: 0/22 connections: 1 remote_address: 3.3.3.3 up/down Bps: 0/19 connections: 1 + +Refreshing: process: "1" up/down Bps: 0/35 connections: 1 process: "5" up/down Bps: 0/30 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/35 process: "1" @@ -15,3 +21,4 @@ connection: :4435 => 3.3.3.3:1337 (tcp) up/d remote_address: 1.1.1.1 up/down Bps: 0/35 connections: 1 remote_address: 3.3.3.3 up/down Bps: 0/30 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap index c4624be..1e198c6 100644 --- a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap +++ b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap @@ -2,12 +2,18 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 28/30 connections: 1 process: "5" up/down Bps: 17/18 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 28/30 process: "1" connection: :4435 => 3.3.3.3:1337 (tcp) up/down Bps: 17/18 process: "5" remote_address: 1.1.1.1 up/down Bps: 28/30 connections: 1 remote_address: 3.3.3.3 up/down Bps: 17/18 connections: 1 + +Refreshing: process: "1" up/down Bps: 31/32 connections: 1 process: "5" up/down Bps: 22/27 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 31/32 process: "1" @@ -15,3 +21,4 @@ connection: :4435 => 3.3.3.3:1337 (tcp) up/d remote_address: 1.1.1.1 up/down Bps: 31/32 connections: 1 remote_address: 3.3.3.3 up/down Bps: 22/27 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_one_process.snap b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_one_process.snap index 13a327c..af3264d 100644 --- a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_one_process.snap +++ b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_one_process.snap @@ -2,10 +2,17 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 0/22 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" remote_address: 1.1.1.1 up/down Bps: 0/22 connections: 1 + +Refreshing: process: "1" up/down Bps: 0/31 connections: 1 connection: :443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/31 process: "1" remote_address: 1.1.1.1 up/down Bps: 0/31 connections: 1 + diff --git a/src/tests/cases/snapshots/raw_mode__traffic_with_host_names.snap b/src/tests/cases/snapshots/raw_mode__traffic_with_host_names.snap index e55d125..fa34c0f 100644 --- a/src/tests/cases/snapshots/raw_mode__traffic_with_host_names.snap +++ b/src/tests/cases/snapshots/raw_mode__traffic_with_host_names.snap @@ -2,12 +2,18 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- +Refreshing: + + +Refreshing: process: "1" up/down Bps: 28/30 connections: 1 process: "5" up/down Bps: 17/18 connections: 1 connection: :443 => one.one.one.one:12345 (tcp) up/down Bps: 28/30 process: "1" connection: :4435 => three.three.three.three:1337 (tcp) up/down Bps: 17/18 process: "5" remote_address: one.one.one.one up/down Bps: 28/30 connections: 1 remote_address: three.three.three.three up/down Bps: 17/18 connections: 1 + +Refreshing: process: "1" up/down Bps: 31/32 connections: 1 process: "5" up/down Bps: 22/27 connections: 1 connection: :443 => one.one.one.one:12345 (tcp) up/down Bps: 31/32 process: "1" @@ -15,3 +21,4 @@ connection: :4435 => three.three.three.three remote_address: one.one.one.one up/down Bps: 31/32 connections: 1 remote_address: three.three.three.three up/down Bps: 22/27 connections: 1 + -- cgit v1.2.3