aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs16
-rw-r--r--src/pinger.rs5
-rw-r--r--src/print.rs10
-rw-r--r--src/stats.rs7
4 files changed, 11 insertions, 27 deletions
diff --git a/src/main.rs b/src/main.rs
index e2c179e..5f4f1e0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -75,16 +75,14 @@ async fn main() {
states[id as usize] = State::Received { rtt: rtt, ttl };
}
}
- PingResult::NoPingErr { id: _, ref error } => {
- // FEAT: It should fail if states is empty and print a informative characters on the line otherwise
- eprintln!("Error: {}", error);
- std::process::exit(2);
+ PingResult::NoPingErr { id } => {
+ states[id as usize] = State::SendError;
}
}
}
Err(TryRecvError::Disconnected) => {
- // NOTE: Maybe we should quit, I don't know.
- break;
+ eprintln!("Critical error, pinger thread killed");
+ std::process::exit(2);
}
Err(TryRecvError::Empty) => {
// No more ping to read
@@ -95,7 +93,7 @@ async fn main() {
// Put the cursor back up
if !std::process::Command::new("tput").arg("rc").status().map(|s| s.success()).unwrap_or(false) {
- println!("Process failed too");
+ println!("Process failed too");
std::process::exit(1);
}
@@ -108,12 +106,12 @@ async fn main() {
print_stats(&stats);
}
// Print stats of the last 30 pings
- let firstIndex = if (states.len() as i32) - 30 > 0 {
+ let first_index = if (states.len() as i32) - 30 > 0 {
states.len() - 30
} else {
0
};
- if let Some(stats) = compute_stats(&states[firstIndex..]) {
+ if let Some(stats) = compute_stats(&states[first_index..]) {
print_stats(&stats);
}
}
diff --git a/src/pinger.rs b/src/pinger.rs
index d7d052b..3570ad1 100644
--- a/src/pinger.rs
+++ b/src/pinger.rs
@@ -4,12 +4,11 @@ use tokio::sync::mpsc::Sender;
use tokio::task;
pub enum PingResult {
- NoPingErr { id: u32, error: String },
+ NoPingErr { id: u32 },
Ping { rtt: u64, ttl: u32, id: u32 },
}
pub fn spawn_ping(target: IpAddr, tx: Sender<PingResult>, id: u32) {
- // let _ = tx.try_send(PingResult::NoPingErr { id, error: "Test Ping".to_string() });
task::spawn_blocking(move || {
let result = do_ping(target, id);
let _ = tx.try_send(result);
@@ -30,6 +29,6 @@ fn do_ping(target: IpAddr, id: u32) -> PingResult {
ttl: reply.ttl.unwrap_or(0) as u32,
id,
},
- Err(e) => PingResult::NoPingErr { id, error: format!("Ping failed: {}", e) },
+ Err(_) => PingResult::NoPingErr { id },
}
}
diff --git a/src/print.rs b/src/print.rs
index 14dc80f..28e1b9e 100644
--- a/src/print.rs
+++ b/src/print.rs
@@ -12,11 +12,10 @@ struct SymbolTableElement {
const GREEN_FG :&str = "\x1b[32m";
const ORANGE_FG :&str = "\x1b[38;5;208m";
const RED_FG :&str = "\x1b[31m";
-const BLACK_FG :&str = "\x1b[31m";
+// const BLACK_FG :&str = "\x1b[31m";
const BLACK_BG :&str = "\x1b[40m";
const GREEN_BG :&str = "\x1b[40m";
const ORANGE_BG :&str = "\x1b[48;5;208m";
-const RESET :&str= "\x1b[40m";
const ERASE_LINE_END:&str = "\x1b[0K";
const CHARS_TABLE :[SymbolTableElement; 25] = [
@@ -47,13 +46,6 @@ const CHARS_TABLE :[SymbolTableElement; 25] = [
SymbolTableElement{ fg: RED_FG, bg: BLACK_BG, character: "?"}
];
-pub fn print_info_line() {
- for n in 0..24 {
- let (fg, bg, symbol) = get_symbol_and_colors_for_rrt(n as u64);
- print!("{} {}{}{}\x1b033[0m ", n*10, fg, bg, symbol);
- }
-}
-
pub fn print_legende_line() {
for (index, element) in CHARS_TABLE.iter().enumerate() {
let val = 10 * index as u64;
diff --git a/src/stats.rs b/src/stats.rs
index 0829845..1d2f451 100644
--- a/src/stats.rs
+++ b/src/stats.rs
@@ -15,8 +15,6 @@ pub struct Stats {
pub min_ttl: u32,
pub max_ttl: u32,
pub avg_ttl: f64,
- /// Mean absolute difference (deviation) from the average
- pub mad_ttl: f64,
}
pub fn compute_stats(states: &[crate::state::State]) -> Option<Stats> {
@@ -53,8 +51,6 @@ pub fn compute_stats(states: &[crate::state::State]) -> Option<Stats> {
let sum_ttl: u32 = ttls.iter().sum();
let avg_ttl = sum_ttl as f64 / ttls.len() as f64;
- let mad_ttl: f64 = ttls.iter().map(|&x| (x as f64 - avg_ttl).abs()).sum::<f64>() / ttls.len() as f64;
-
Some(Stats {
received,
lost,
@@ -64,7 +60,6 @@ pub fn compute_stats(states: &[crate::state::State]) -> Option<Stats> {
mad_rtt,
min_ttl,
max_ttl,
- avg_ttl,
- mad_ttl
+ avg_ttl
})
}