diff --git a/includes/internal/cli/arg_handler.h b/includes/internal/cli/arg_handler.h deleted file mode 100644 index 729dd82..0000000 --- a/includes/internal/cli/arg_handler.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef CLI_INTERNAL_ARG_HANDLER -#define CLI_INTERNAL_ARG_HANDLER - -#include "cli.h" -#include "internal/ping/cli_handlers.h" - -#endif diff --git a/includes/internal/cli/options.h b/includes/internal/cli/options.h index 9720e4a..5fdc8d3 100644 --- a/includes/internal/cli/options.h +++ b/includes/internal/cli/options.h @@ -3,7 +3,7 @@ #include -#define CLI_OPTIONS_LIST \ +#define PING_OPTIONS_LIST \ X( \ 'h', \ "help", \ @@ -103,14 +103,14 @@ #undef X #define X(short_opt, long_opt, has_arg, handler, arg_type, desc) + 1 -enum { CLI_OPT_LEN = (0 CLI_OPTIONS_LIST) }; +enum { PING_OPT_LEN = (0 PING_OPTIONS_LIST) }; #undef X #define X(short_opt, long_opt, has_arg, handler, arg_type, desc) \ + (1 * (has_arg == no_argument) \ + (2 * (has_arg == required_argument) \ + (3 * (has_arg == optional_argument)))) -enum { CLI_OPT_STR_LEN = (1 CLI_OPTIONS_LIST) }; +enum { PING_OPTSTR_LEN = (1 PING_OPTIONS_LIST) }; /* +1 for ':' to disable getopt error messages */ #endif diff --git a/includes/internal/ping/output.h b/includes/internal/ping/output.h index ce0756b..dd7efd1 100644 --- a/includes/internal/ping/output.h +++ b/includes/internal/ping/output.h @@ -4,7 +4,7 @@ #include #include #include "icmp.h" -#include "ping/ft_ping.h" +#include "ping/ping.h" #include "internal/ping/ping_state.h" void ping_output_start(const struct ping_config *config, diff --git a/includes/internal/ping/parse_utils.h b/includes/internal/ping/parse_utils.h index a9ef3f6..d130b25 100644 --- a/includes/internal/ping/parse_utils.h +++ b/includes/internal/ping/parse_utils.h @@ -2,7 +2,7 @@ #define PING_CLI_PARSE_UTILS_H #include -#include "ping/ft_ping.h" +#include "ping/ping.h" int cli_parse_inet_addr(const char *s, struct in_addr *out); int cli_parse_destinations(int argc, char **argv, int first_arg, diff --git a/includes/internal/ping/ping_state.h b/includes/internal/ping/ping_state.h index 8218314..f2725a5 100644 --- a/includes/internal/ping/ping_state.h +++ b/includes/internal/ping/ping_state.h @@ -6,7 +6,7 @@ #include #include #include "icmp.h" -#include "ping/ft_ping.h" +#include "ping/ping.h" #include "internal/ping/stats.h" #include "internal/ping/tracker.h" diff --git a/includes/ping/cli.h b/includes/ping/cli.h index 87be83f..36f4fdb 100644 --- a/includes/ping/cli.h +++ b/includes/ping/cli.h @@ -2,7 +2,7 @@ #define PING_CLI_H #include "../cli.h" -#include "ping/ft_ping.h" +#include "ping/ping.h" enum cli_code cli_parse_arguments(int argc, char **argv, struct ping_config *config); diff --git a/includes/ping/ft_ping.h b/includes/ping/ft_ping.h deleted file mode 100644 index 6b37bed..0000000 --- a/includes/ping/ft_ping.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef FT_PING -#define FT_PING - -#include -#include -#include - -struct ping_config -{ - /* Targets */ - struct in_addr *destinations; - size_t nb_destinations; - - /* Options */ - uint64_t count; - double interval; - uint8_t ttl; - size_t packet_size; - double timeout; - double deadline; - - /* Flags */ - uint8_t flags; -}; - -#endif diff --git a/includes/ping/ping.h b/includes/ping/ping.h index ff9c358..011d7e6 100644 --- a/includes/ping/ping.h +++ b/includes/ping/ping.h @@ -1,7 +1,27 @@ #ifndef PING_H #define PING_H -#include "ping/ft_ping.h" +#include +#include +#include + +struct ping_config +{ + /* Targets */ + struct in_addr *destinations; + size_t nb_destinations; + + /* Options */ + uint64_t count; + double interval; + uint8_t ttl; + size_t packet_size; + double timeout; + double deadline; + + /* Flags */ + uint8_t flags; +}; int ping_run(const struct ping_config *config); diff --git a/src/ping/cli/handlers/option_map.c b/src/ping/cli/handlers/option_map.c index 160f70f..d090efb 100644 --- a/src/ping/cli/handlers/option_map.c +++ b/src/ping/cli/handlers/option_map.c @@ -6,7 +6,7 @@ { short_opt, long_opt, has_arg, handler, arg_type, desc }, const struct option_descriptor g_options[] = { - CLI_OPTIONS_LIST + PING_OPTIONS_LIST {0, NULL, 0, NULL, OPT_ARG_NONE, NULL } }; diff --git a/src/ping/cli/messages/help.c b/src/ping/cli/messages/help.c index fafa29b..cbf5f18 100644 --- a/src/ping/cli/messages/help.c +++ b/src/ping/cli/messages/help.c @@ -14,7 +14,7 @@ print_help(void) printf("Usage: ft_ping [options] \n\n"); printf("Options:\n"); - for (size_t i = 0; i < CLI_OPT_LEN; ++i) + for (size_t i = 0; i < PING_OPT_LEN; ++i) { const struct option_descriptor *opt = &g_options[i]; const char *argstr = option_arg_type_to_str(opt->arg_type); diff --git a/src/ping/cli/parse.c b/src/ping/cli/parse.c index 16618f8..62cb08c 100644 --- a/src/ping/cli/parse.c +++ b/src/ping/cli/parse.c @@ -1,6 +1,7 @@ #include #include +#include "cli.h" #include "ping/cli.h" #include "ping/ft_ping_const.h" #include "internal/ping/cli_handlers.h" @@ -14,14 +15,14 @@ static void init_config(struct ping_config *config); enum cli_code cli_parse_arguments(int argc, char **argv, struct ping_config *config) { - char opt_str[CLI_OPT_STR_LEN]; - struct option long_opts[CLI_OPT_LEN + 1]; + char opt_str[PING_OPTSTR_LEN]; + struct option long_opts[PING_OPT_LEN + 1]; enum cli_code ret; init_config(config); - ret = cli_parse(argc, argv, config, g_options, CLI_OPT_LEN, + ret = cli_parse(argc, argv, config, g_options, PING_OPT_LEN, opt_str, long_opts); - if (CLI_SUCCESS != ret) + if (CLI_ERROR == ret) return ret; return cli_parse_destinations(argc, argv, optind, config); } diff --git a/src/ping/scheduler/scheduler.c b/src/ping/scheduler/scheduler.c index 030cd71..5858c42 100644 --- a/src/ping/scheduler/scheduler.c +++ b/src/ping/scheduler/scheduler.c @@ -2,7 +2,6 @@ #include #include "compiler.h" - #include "ping/ft_ping_flags.h" #include "internal/ping/scheduler.h"