From 4e344d945e4bfc14e7055af0ad3bb1811f4c4664 Mon Sep 17 00:00:00 2001 From: tomoron Date: Sat, 26 Apr 2025 19:53:55 +0200 Subject: [PATCH] move functions --- Makefile | 6 ++- srcs/includes/ft_ping.h | 4 ++ srcs/main.c | 42 ++++++++++++++++++++ srcs/{ft_ping.c => parsing.c} | 75 +++-------------------------------- srcs/utils.c | 45 +++++++++++++++++++++ 5 files changed, 100 insertions(+), 72 deletions(-) create mode 100644 srcs/main.c rename srcs/{ft_ping.c => parsing.c} (69%) create mode 100644 srcs/utils.c diff --git a/Makefile b/Makefile index b52f8de..03a2493 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,10 @@ FLAGS=-Werror -Wextra -Wall -g -Wno-unused-result SRCS_DIR = srcs OBJS_DIR = .objs -SRCS = ft_ping.c\ - icmp.c +SRCS = main.c\ + icmp.c\ + parsing.c\ + utils.c OBJS = $(addprefix $(OBJS_DIR)/,$(SRCS:.c=.o)) diff --git a/srcs/includes/ft_ping.h b/srcs/includes/ft_ping.h index 7fbd037..dab31c1 100644 --- a/srcs/includes/ft_ping.h +++ b/srcs/includes/ft_ping.h @@ -61,5 +61,9 @@ typedef struct s_icmp_echo } t_icmp_echo; t_icmp_echo prepare_icmp_echo(uint16_t sequence, uint16_t identifier); +int add_host(t_settings *res, char *host); +void free_hosts(t_host_list *list); +t_settings parse_args(int argc, char **argv); +void show_help(t_settings *set, char *name); #endif diff --git a/srcs/main.c b/srcs/main.c new file mode 100644 index 0000000..58979c9 --- /dev/null +++ b/srcs/main.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ping.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tomoron +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/24 00:03:56 by tomoron #+# #+# */ +/* Updated: 2025/04/26 17:08:50 by tomoron ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "includes/ft_ping.h" + +void show_help(t_settings *set, char *name) +{ + set->stop = 1; + write(1, "Usage: ", 7); + write(1, name, strlen(name)); + write(1, HELP_MESSAGE, sizeof(HELP_MESSAGE)); +} + + +int main(int argc, char **argv) +{ + t_settings settings; + + settings = parse_args(argc, argv); + if(settings.stop || settings.err) + { + free_hosts(settings.hosts); + return((settings.err != 0) * 64); + } + if(!settings.hosts) + { + fprintf(stderr, "%s: missing host operand\n", argv[0]); + return(64); + } + send_pings(settings); + free_hosts(settings.hosts); + return(0); +} diff --git a/srcs/ft_ping.c b/srcs/parsing.c similarity index 69% rename from srcs/ft_ping.c rename to srcs/parsing.c index a14a4b9..3e39576 100644 --- a/srcs/ft_ping.c +++ b/srcs/parsing.c @@ -1,25 +1,16 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_ping.c :+: :+: :+: */ +/* parsing.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2025/04/24 00:03:56 by tomoron #+# #+# */ -/* Updated: 2025/04/25 23:25:43 by tomoron ### ########.fr */ +/* Created: 2025/04/26 17:01:53 by tomoron #+# #+# */ +/* Updated: 2025/04/26 17:08:01 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ - #include "includes/ft_ping.h" -void show_help(t_settings *set, char *name) -{ - set->stop = 1; - write(1, "Usage: ", 7); - write(1, name, strlen(name)); - write(1, HELP_MESSAGE, sizeof(HELP_MESSAGE)); -} - char *get_value_in_arg(char *arg, int end) { char *res; @@ -85,45 +76,6 @@ void parse_opt(int *i, t_settings *set, int argc, char **argv) } } -int add_host(t_settings *res, char *host) -{ - t_host_list *new; - t_host_list *tmp; - - new = malloc(sizeof(t_host_list)); - if(!new) - return(0); - new->host = host; - new->next = 0; - tmp = res->hosts; - while(tmp && tmp->next) - tmp = tmp->next; - if(tmp) - tmp->next = new; - else - res->hosts = new; - return(1); -} - -void free_hosts(t_host_list *list) -{ - t_host_list *tmp; - - while(list) - { - printf("free : %s\n", list->host); - tmp = list->next; - free(list); - list = tmp; - } -} - -void init_defaults(t_settings *set) -{ - set->count = -1; - set->timeout = -1; -} - int check_values(t_settings *set, char *name) { if(set->setTtl) @@ -149,7 +101,8 @@ t_settings parse_args(int argc, char **argv) i = 1; bzero(&res, sizeof(t_settings)); - init_defaults(&res); + res.count = -1; + res.timeout = -1; while(i < argc) { if(*argv[i] == '-') @@ -168,21 +121,3 @@ t_settings parse_args(int argc, char **argv) return(res); } -int main(int argc, char **argv) -{ - t_settings settings; - - settings = parse_args(argc, argv); - if(settings.stop || settings.err) - { - free_hosts(settings.hosts); - return((settings.err != 0) * 64); - } - if(!settings.hosts) - { - fprintf(stderr, "%s: missing host operand\n", argv[0]); - return(64); - } - free_hosts(settings.hosts); - return(0); -} diff --git a/srcs/utils.c b/srcs/utils.c new file mode 100644 index 0000000..28b0320 --- /dev/null +++ b/srcs/utils.c @@ -0,0 +1,45 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tomoron +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/26 17:03:11 by tomoron #+# #+# */ +/* Updated: 2025/04/26 17:08:08 by tomoron ### ########.fr */ +/* */ +/* ************************************************************************** */ +#include "includes/ft_ping.h" + +int add_host(t_settings *res, char *host) +{ + t_host_list *new; + t_host_list *tmp; + + new = malloc(sizeof(t_host_list)); + if(!new) + return(0); + new->host = host; + new->next = 0; + tmp = res->hosts; + while(tmp && tmp->next) + tmp = tmp->next; + if(tmp) + tmp->next = new; + else + res->hosts = new; + return(1); +} + +void free_hosts(t_host_list *list) +{ + t_host_list *tmp; + + while(list) + { + printf("free : %s\n", list->host); + tmp = list->next; + free(list); + list = tmp; + } +}