refactor(cli): use named constants for return codes and implement flag handlers
This commit is contained in:
parent
52338017a6
commit
cff77eef9d
13 changed files with 31 additions and 14 deletions
|
|
@ -3,6 +3,11 @@
|
||||||
|
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
|
||||||
|
#define CLI_SUCCESS 0
|
||||||
|
#define CLI_ERROR 1
|
||||||
|
#define CLI_EXIT_SUCCESS -1
|
||||||
|
|
||||||
|
|
||||||
typedef int (*t_option_handler)(const char *arg, t_ping_config *config);
|
typedef int (*t_option_handler)(const char *arg, t_ping_config *config);
|
||||||
|
|
||||||
typedef enum e_option_arg_type
|
typedef enum e_option_arg_type
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -5,5 +6,5 @@ cli_handle_count(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
(void)config;
|
(void)config;
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
#include "ft_ping_flags.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
cli_handle_flood(const char *arg, t_ping_config *config)
|
cli_handle_flood(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
(void)config;
|
SET_FLAG(config->flags, FLAG_FLOOD);
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ cli_handle_help(const char *arg, t_ping_config *config)
|
||||||
opt->description
|
opt->description
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return -1;
|
return CLI_EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -5,5 +6,5 @@ cli_handle_interval(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
(void)config;
|
(void)config;
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping_flags.h"
|
#include "ft_ping_flags.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -6,5 +7,5 @@ cli_handle_quiet(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
SET_FLAG(config->flags, FLAG_QUIET);
|
SET_FLAG(config->flags, FLAG_QUIET);
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -5,5 +6,5 @@ cli_handle_size(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
(void)config;
|
(void)config;
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -5,5 +6,5 @@ cli_handle_timeout(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
(void)config;
|
(void)config;
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -5,5 +6,5 @@ cli_handle_ttl(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
(void)config;
|
(void)config;
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
#include "version_gen.h"
|
#include "version_gen.h"
|
||||||
|
|
||||||
|
|
@ -18,5 +19,5 @@ cli_handle_version(const char *arg, t_ping_config *config)
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("Build: %s (commit %s)\n", PING_BUILD_DATE, PING_GIT_COMMIT);
|
printf("Build: %s (commit %s)\n", PING_BUILD_DATE, PING_GIT_COMMIT);
|
||||||
|
|
||||||
return -1;
|
return CLI_EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
|
#include "ft_ping_flags.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
cli_handle_verbose(const char *arg, t_ping_config *config)
|
cli_handle_verbose(const char *arg, t_ping_config *config)
|
||||||
{
|
{
|
||||||
(void)arg;
|
(void)arg;
|
||||||
(void)config;
|
SET_FLAG(config->flags, FLAG_VERBOSE);
|
||||||
return 0;
|
return CLI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ hanlde_one_option(int opt, char *optarg, t_ping_config *config)
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
if ('?' == opt)
|
if ('?' == opt)
|
||||||
return 1;
|
return CLI_ERROR;
|
||||||
if (NULL != desc)
|
if (NULL != desc)
|
||||||
{
|
{
|
||||||
res = desc->handler(optarg, config);
|
res = desc->handler(optarg, config);
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "cli.h"
|
||||||
#include "ft_ping.h"
|
#include "ft_ping.h"
|
||||||
#include "version_gen.h"
|
#include "version_gen.h"
|
||||||
|
|
||||||
|
|
@ -20,7 +21,7 @@ main(int argc, char **argv)
|
||||||
if (0 != init_prog_name(argv[0]))
|
if (0 != init_prog_name(argv[0]))
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
ret = cli_parse_arguments(argc, argv, &config);
|
ret = cli_parse_arguments(argc, argv, &config);
|
||||||
if (ret != 0)
|
if (ret != CLI_SUCCESS)
|
||||||
return (ret > 0) ? EXIT_FAILURE : EXIT_SUCCESS;
|
return (ret > 0) ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||||
|
|
||||||
printf("PING: Not yet implemented\n");
|
printf("PING: Not yet implemented\n");
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue