From 71be209ee62236dfb484ed6ca339c525bc46ace3 Mon Sep 17 00:00:00 2001 From: Namonay Date: Thu, 12 Sep 2024 22:51:47 +0200 Subject: [PATCH] socket is now RAW, ft_ping now check the received packet --- main.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index b1b5833..491c204 100644 --- a/main.c +++ b/main.c @@ -30,7 +30,6 @@ int ft_ping(struct t_socket sock, int *seq) sock.fd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); if (sock.fd < 0) { - printf(strerror(errno)); fprintf(stderr, "ERROR : socket() failed\n"); return (0); } @@ -63,6 +62,16 @@ int ft_ping(struct t_socket sock, int *seq) fprintf(stderr, "ERROR : invalid packet received (code)\n"); return (0); } + if (icmp_recv_header->un.echo.id != icmp_header->un.echo.id) + { + fprintf(stderr, "ERROR : invalid packet received (id is not matching)\n"); + return (0); + } + if (icmp_recv_header->un.echo.sequence != icmp_header->un.echo.sequence) + { + fprintf(stderr, "ERROR : invalid packet received (sequence is not matching)\n"); + return (0); + } printf("success"); close(sock.fd); return (1);