feat(cli): add -w/deadline option

This commit is contained in:
lohhiiccc 2026-03-12 16:11:26 +01:00
parent cba820ae7a
commit a4ed2780f2
4 changed files with 24 additions and 0 deletions

View file

@ -17,6 +17,7 @@ typedef struct s_ping_config
uint8_t ttl; uint8_t ttl;
size_t packet_size; size_t packet_size;
double timeout; double timeout;
double deadline;
/* Flags */ /* Flags */
uint8_t flags; uint8_t flags;

View file

@ -36,6 +36,7 @@ int cli_handle_help(const char *arg, t_ping_config *config);
int cli_handle_interval(const char *arg, t_ping_config *config); int cli_handle_interval(const char *arg, t_ping_config *config);
int cli_handle_quiet(const char *arg, t_ping_config *config); int cli_handle_quiet(const char *arg, t_ping_config *config);
int cli_handle_size(const char *arg, t_ping_config *config); int cli_handle_size(const char *arg, t_ping_config *config);
int cli_handle_deadline(const char *arg, t_ping_config *config);
int cli_handle_timeout(const char *arg, t_ping_config *config); int cli_handle_timeout(const char *arg, t_ping_config *config);
int cli_handle_ttl(const char *arg, t_ping_config *config); int cli_handle_ttl(const char *arg, t_ping_config *config);
int cli_handle_version(const char *arg, t_ping_config *config); int cli_handle_version(const char *arg, t_ping_config *config);

View file

@ -76,6 +76,14 @@
OPT_ARG_SECONDS, \ OPT_ARG_SECONDS, \
"Timeout for replies in seconds" \ "Timeout for replies in seconds" \
) \ ) \
X( \
'w', \
"deadline", \
required_argument, \
cli_handle_deadline, \
OPT_ARG_SECONDS, \
"Exit after N seconds regardless of packets sent/received" \
) \
X( \ X( \
'f', \ 'f', \
"flood", \ "flood", \

View file

@ -0,0 +1,14 @@
#include "cli.h"
#include "internal/cli/arg_handler.h"
#include "internal/cli/parse_utils.h"
int
cli_handle_deadline(const char *arg, t_ping_config *config)
{
float deadline;
if (0 != cli_parse_float(arg, &deadline))
return CLI_ERROR;
config->deadline = deadline;
return CLI_SUCCESS;
}