remove forbidden function fcntl, add early stop for errors during parsing, remove debug print

This commit is contained in:
2025-08-08 22:33:12 +02:00
parent 0eb1e9055d
commit 43e47f89aa
3 changed files with 8 additions and 7 deletions

View File

@ -6,7 +6,7 @@
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/24 22:49:22 by tomoron #+# #+# */ /* Created: 2025/04/24 22:49:22 by tomoron #+# #+# */
/* Updated: 2025/06/03 00:40:54 by tomoron ### ########.fr */ /* Updated: 2025/08/08 22:19:52 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "includes/ft_ping.h" #include "includes/ft_ping.h"
@ -72,7 +72,7 @@ t_waitlist *send_icmp(t_settings *set, struct addrinfo *host, uint16_t *seq, str
if(timediff(last) < set->interval) if(timediff(last) < set->interval)
return (0); return (0);
packet = prepare_icmp_echo(*seq, set->id); packet = prepare_icmp_echo(*seq, set->id);
len = sendto(set->socket, &packet, sizeof(t_icmp_echo), 0, host->ai_addr, host->ai_addrlen); len = sendto(set->socket, &packet, sizeof(t_icmp_echo), MSG_DONTWAIT, host->ai_addr, host->ai_addrlen);
if(len == (size_t)-1) if(len == (size_t)-1)
{ {
perror(set->name); perror(set->name);
@ -137,7 +137,7 @@ void receive_icmp(t_settings *set, t_waitlist **wl, t_stats *stats)
uint16_t checksum; uint16_t checksum;
t_waitlist *elem; t_waitlist *elem;
len = recvfrom(set->socket, &buffer, 1024, 0, 0, 0); len = recv(set->socket, &buffer, 1024, MSG_DONTWAIT);
res = (void *)buffer; res = (void *)buffer;
if(len == (size_t)-1 ) if(len == (size_t)-1 )

View File

@ -6,7 +6,7 @@
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/04/24 00:03:56 by tomoron #+# #+# */ /* Created: 2025/04/24 00:03:56 by tomoron #+# #+# */
/* Updated: 2025/05/02 00:51:39 by tomoron ### ########.fr */ /* Updated: 2025/08/08 22:30:18 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -33,7 +33,6 @@ int init_socket(char *name)
fprintf(stderr, "%s: can't initialize socket\n", name); fprintf(stderr, "%s: can't initialize socket\n", name);
return(-1); return(-1);
} }
fcntl(res, F_SETFL, O_NONBLOCK);
return(res); return(res);
} }
@ -60,12 +59,15 @@ int main(int argc, char **argv)
t_settings settings; t_settings settings;
settings = parse_args(argc, argv); settings = parse_args(argc, argv);
if(settings.stop)
goto early_stop;
settings.socket = init_socket(argv[0]); settings.socket = init_socket(argv[0]);
settings.id = get_id(); settings.id = get_id();
settings.name = argv[0]; settings.name = argv[0];
signal(SIGINT, signal_handler); signal(SIGINT, signal_handler);
if(settings.stop || settings.err || settings.socket == -1) if(settings.stop || settings.err || settings.socket == -1)
{ {
early_stop:
free_hosts(settings.hosts); free_hosts(settings.hosts);
return((settings.err != 0) * 64); return((settings.err != 0) * 64);
} }

View File

@ -6,7 +6,7 @@
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2025/05/01 17:38:58 by tomoron #+# #+# */ /* Created: 2025/05/01 17:38:58 by tomoron #+# #+# */
/* Updated: 2025/06/03 00:27:30 by tomoron ### ########.fr */ /* Updated: 2025/08/08 22:24:42 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -50,7 +50,6 @@ t_waitlist *waitlist_remove(t_waitlist **lst, t_icmp_ip_reply *res, int is_ttl_e
res->icmp.sequence = htons(res->icmp.sequence); res->icmp.sequence = htons(res->icmp.sequence);
while(cur && cur->seq != res->icmp.sequence) while(cur && cur->seq != res->icmp.sequence)
{ {
printf("%d, %d\n", cur->seq, res->icmp.sequence);
prev = cur; prev = cur;
cur = cur->next; cur = cur->next;
} }