From 057fb25cf7b9b2317e96746a4633c4fc21d3f3fd Mon Sep 17 00:00:00 2001 From: adjoly Date: Fri, 15 Aug 2025 18:19:22 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip:?= =?UTF-8?q?=20wut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/utils.h | 14 +++++++++++++- src/ping/send_ping.c | 3 ++- src/utils.c | 35 +++++++++++++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/includes/utils.h b/includes/utils.h index f640d62..3e0ff6a 100644 --- a/includes/utils.h +++ b/includes/utils.h @@ -1,3 +1,15 @@ #pragma once -void append_time(double time); +void append_time(double time); + +/** + * @brief Can be used to get the avarage rtt + */ +double get_avg_rtt(void); +/** + * @brief Can be used to get the + */ +double get_min_rtt(void); +double get_max_rtt(void); +double get_stddev_rtt(void); + diff --git a/src/ping/send_ping.c b/src/ping/send_ping.c index c0ae910..31cfff0 100644 --- a/src/ping/send_ping.c +++ b/src/ping/send_ping.c @@ -1,6 +1,7 @@ #include "help.h" #include #include +#include #include #include @@ -18,7 +19,7 @@ void sigint(int sig) { printf("--- %s ping statistics ---", address); printf("%d packets transmitted, %d packets received, %f%% packet loss", tx_count, rx_count, (tx_count - rx_count / 2.0) * 100); - printf("round-trip min/avg/max/stddev = %d/%d/%d/%d"); + printf("round-trip min/avg/max/stddev = %f/%f/%f/%f", get_min_rtt(), get_avg_rtt(), get_max_rtt(), get_stddev_rtt()); } options_t init_opt(args_t *args) { diff --git a/src/utils.c b/src/utils.c index 829e10f..ab1013b 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,8 +1,8 @@ #include -#include #include +#include -void append_time(double time) { +void append_time(double time) { if (times == NULL) { times = malloc(sizeof(double)); times[0] = time; @@ -12,3 +12,34 @@ void append_time(double time) { } } +double get_max_rtt(void) { + double max = 0; + for (int i = 0; i < rx_count; i++) { + if (times[i] > max) + max = times[i]; + } + return max; +} + +double get_min_rtt(void) { + double min = 0; + for (int i = 0; i < rx_count; i++) { + if (times[i] < min) + min = times[i]; + } + return min; +} + +double get_avg_rtt(void) { + double avg = 0; + for (int i = 0; i < rx_count; i++) { + avg += times[i]; + } + avg = avg / rx_count; + return avg; +} + +double get_stddev_rtt(void) { + double stddev = 0; + return stddev; +}