From cc3cfa3d03f689b9bb0e4a5418fec510fad9ef08 Mon Sep 17 00:00:00 2001 From: tomoron Date: Sun, 25 May 2025 15:27:08 +0200 Subject: [PATCH] add error when sendto fails --- Makefile | 2 +- srcs/ft_ping.c | 2 ++ srcs/icmp.c | 9 ++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index bce7a97..b287e21 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ NAME = ft_ping -CC=cc +CC=clang FLAGS=-Werror -Wextra -Wall -g -Wno-unused-result -Qunused-arguments SRCS_DIR = srcs diff --git a/srcs/ft_ping.c b/srcs/ft_ping.c index 3bc1f87..70ce209 100644 --- a/srcs/ft_ping.c +++ b/srcs/ft_ping.c @@ -48,6 +48,8 @@ void ping_end_print(t_settings *set, char *host, t_stats *stats) int percent; double stddev; + if(set->err) + return; (void)set; stddev = sqrt(stats->sqr_diff / (stats->received - 1)); if(isnan(stddev) || isinf(stddev)) diff --git a/srcs/icmp.c b/srcs/icmp.c index 159214b..463db30 100644 --- a/srcs/icmp.c +++ b/srcs/icmp.c @@ -67,11 +67,18 @@ t_waitlist *send_icmp(t_settings *set, struct addrinfo *host, uint16_t *seq, str { t_icmp_echo packet; t_waitlist *ret; + size_t len; if(timediff(last) < set->interval) return (0); packet = prepare_icmp_echo(*seq, set->id); - sendto(set->socket, &packet, sizeof(t_icmp_echo), 0, host->ai_addr, host->ai_addrlen); + len = sendto(set->socket, &packet, sizeof(t_icmp_echo), 0, host->ai_addr, host->ai_addrlen); + if(len == (size_t)-1) + { + perror(set->name); + set->err = 1; + g_stop = 1; + } gettimeofday(last, 0); ret = malloc(sizeof(t_waitlist)); if(!ret)