diff --git a/srcs/ft_ping.c b/srcs/ft_ping.c index 70ce209..7195c29 100644 --- a/srcs/ft_ping.c +++ b/srcs/ft_ping.c @@ -6,7 +6,7 @@ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/26 19:54:25 by tomoron #+# #+# */ -/* Updated: 2025/05/22 23:01:33 by tomoron ### ########.fr */ +/* Updated: 2025/06/01 22:09:27 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,7 +40,10 @@ struct addrinfo *resolve_ip(char *host, t_settings *settings) void ping_start_print(t_settings *set, char *host) { - printf("PING %s (%s): 56 data bytes\n", host, set->current_ip); + printf("PING %s (%s): 56 data bytes", host, set->current_ip); + if(set->verbose) + printf(", id 0x%04x = %d", set->id, set->id); + printf("\n"); } void ping_end_print(t_settings *set, char *host, t_stats *stats) @@ -100,6 +103,8 @@ void send_pings(t_settings *set) t_host_list *cur; cur = set->hosts; + if(set->setTtl) + setsockopt(set->socket, IPPROTO_IP, IP_TTL, &set->ttl, sizeof(set->ttl)); while(cur) { if(!ping_host(set, cur->host)) diff --git a/srcs/includes/ft_ping.h b/srcs/includes/ft_ping.h index 34ed678..8f24fc0 100644 --- a/srcs/includes/ft_ping.h +++ b/srcs/includes/ft_ping.h @@ -56,6 +56,7 @@ typedef struct s_settings int linger; //-W (--linger) int ttl; // --ttl short setTtl; // is ttl set + short verbose; // -v (--verbose) int socket; uint16_t id; diff --git a/srcs/parsing.c b/srcs/parsing.c index b00777a..71b7df9 100644 --- a/srcs/parsing.c +++ b/srcs/parsing.c @@ -6,7 +6,7 @@ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/26 17:01:53 by tomoron #+# #+# */ -/* Updated: 2025/05/22 23:01:05 by tomoron ### ########.fr */ +/* Updated: 2025/06/01 21:37:16 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ #include "includes/ft_ping.h" @@ -96,6 +96,8 @@ void parse_opt(int *i, t_settings *set, int argc, char **argv) show_help(set, *argv); else if(!strcmp(argv[*i], "-c") || !strncmp(argv[*i], "--count", 7)) set->count = get_set_int(i, argc, argv, 7, set); + else if(!strcmp(argv[*i], "-v") || !strncmp(argv[*i], "--verbose", 7)) + set->verbose = 1; else if(!strcmp(argv[*i], "-w") || !strncmp(argv[*i], "--timeout", 9)) set->timeout = get_set_int(i, argc, argv, 9, set); else if(!strcmp(argv[*i], "-W") || !strncmp(argv[*i], "--linger", 8)) @@ -166,4 +168,3 @@ t_settings parse_args(int argc, char **argv) res.err = !check_values(&res, argv[0]); return(res); } -