64 lines
1.6 KiB
C
64 lines
1.6 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* waitlist_utils.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2025/05/01 17:38:58 by tomoron #+# #+# */
|
|
/* Updated: 2025/05/02 01:06:21 by tomoron ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "includes/ft_ping.h"
|
|
|
|
void waitlist_add(t_waitlist **waitlist, t_waitlist *elem)
|
|
{
|
|
t_waitlist *cur;
|
|
|
|
cur = *waitlist;
|
|
|
|
while(cur && cur->next)
|
|
cur = cur->next;
|
|
if(cur)
|
|
cur->next = elem;
|
|
else
|
|
*waitlist = elem;
|
|
}
|
|
|
|
void waitlist_free(t_waitlist *lst)
|
|
{
|
|
t_waitlist *tmp;
|
|
|
|
while(lst)
|
|
{
|
|
tmp = lst->next;
|
|
free(lst);
|
|
lst = tmp;
|
|
}
|
|
}
|
|
|
|
void waitlist_remove(t_waitlist **lst, uint16_t seq, t_settings *set, t_stats *stats)
|
|
{
|
|
t_waitlist *prev;
|
|
t_waitlist *cur;
|
|
|
|
prev = 0;
|
|
cur = *lst;
|
|
while(cur && cur->seq != seq)
|
|
{
|
|
printf("%d, %d\n", cur->seq, seq);
|
|
prev = cur;
|
|
cur = cur->next;
|
|
}
|
|
if(!cur)
|
|
return ;
|
|
if(!prev)
|
|
*lst = cur->next;
|
|
else
|
|
prev->next = cur->next;
|
|
show_ping_res_line(cur, set, seq, stats);
|
|
free(cur);
|
|
}
|
|
|