fix: rename timeout/deadline to linger/timeout

This commit is contained in:
lohhiiccc 2026-04-23 13:14:33 +02:00
parent 606069df82
commit 7a76ff8d2a
11 changed files with 34 additions and 21 deletions

View file

@ -79,17 +79,17 @@ enum {
) \
X( \
'W', \
"timeout", \
"linger", \
required_argument, \
cli_handle_timeout, \
cli_handle_linger, \
OPT_ARG_SECONDS, \
"Timeout for replies in seconds" \
) \
X( \
'w', \
"deadline", \
"timeout", \
required_argument, \
cli_handle_deadline, \
cli_handle_timeout, \
OPT_ARG_SECONDS, \
"Exit after N seconds regardless of packets sent/received" \
) \

View file

@ -9,12 +9,12 @@ int cli_handle_count(const char *arg, void *config);
int cli_handle_preload(const char *arg, void *config);
int cli_handle_pattern(const char *arg, void *config);
int cli_handle_dont_fragment(const char *arg, void *config);
int cli_handle_deadline(const char *arg, void *config);
int cli_handle_flood(const char *arg, void *config);
int cli_handle_help(const char *arg, void *config);
int cli_handle_interval(const char *arg, void *config);
int cli_handle_quiet(const char *arg, void *config);
int cli_handle_size(const char *arg, void *config);
int cli_handle_linger(const char *arg, void *config);
int cli_handle_timeout(const char *arg, void *config);
int cli_handle_ttl(const char *arg, void *config);
int cli_handle_verbose(const char *arg, void *config);

View file

@ -7,7 +7,7 @@
#define DEFAULT_INTERVAL 1.0
#define DEFAULT_TTL 64
#define DEFAULT_PACKET_SIZE 56
#define DEFAULT_TIMEOUT 1.0
#define DEFAULT_LINGER 1.0
/* Maximum values */
#define MAX_PACKET_SIZE 65507

View file

@ -20,8 +20,8 @@ struct ping_config
double interval;
uint8_t ttl;
size_t packet_size;
double linger;
double timeout;
double deadline;
/* Pattern (-p) */
uint8_t pattern[16];

View file

@ -47,7 +47,7 @@ libping_core_la_SOURCES = \
cli/handlers/handle_preload.c \
cli/handlers/handle_pattern.c \
cli/handlers/handle_dont_fragment.c \
cli/handlers/handle_deadline.c \
cli/handlers/handle_linger.c \
cli/handlers/handle_flood.c \
cli/handlers/handle_help.c \
cli/handlers/handle_interval.c \

View file

@ -0,0 +1,14 @@
#include "ping/cli.h"
#include "internal/cli/parse_utils.h"
int
cli_handle_linger(const char *arg, void *config_void)
{
struct ping_config *config = (struct ping_config *)config_void;
float linger;
if (0 != cli_parse_ufloat(arg, &linger))
return CLI_ERROR;
config->linger = linger;
return CLI_SUCCESS;
}

View file

@ -5,11 +5,10 @@ int
cli_handle_timeout(const char *arg, void *config_void)
{
struct ping_config *config = (struct ping_config *)config_void;
float TO;
float timeout;
if (0 != cli_parse_ufloat(arg, &TO))
if (0 != cli_parse_ufloat(arg, &timeout))
return CLI_ERROR;
config->timeout = TO;
config->timeout = timeout;
return CLI_SUCCESS;
}

View file

@ -19,7 +19,7 @@ print_help(void)
const struct option_descriptor *opt = &g_options[i];
const char *argstr = option_arg_type_to_str(opt->arg_type);
printf(" -%c, --%-10s %-8s %s\n",
printf(" -%c, --%-15s %-8s %s\n",
opt->short_opt,
opt->long_opt,
argstr[0] ? argstr : "",

View file

@ -35,5 +35,5 @@ init_config(struct ping_config *config)
config->interval = DEFAULT_INTERVAL;
config->ttl = DEFAULT_TTL;
config->packet_size = DEFAULT_PACKET_SIZE;
config->timeout = DEFAULT_TIMEOUT;
config->linger = DEFAULT_LINGER;
}

View file

@ -7,7 +7,7 @@
#include "internal/ping/scheduler.h"
/* Forward declarations */
static int deadline_expired(const struct ping_state *state);
static int timeout_expired(const struct ping_state *state);
static int linger_expired(const struct ping_state *state);
static int should_stop(const struct ping_state *state);
static int can_send_more(const struct ping_state *state);
@ -28,18 +28,18 @@ ping_loop(struct ping_state *state, size_t payload_len)
}
static int
deadline_expired(const struct ping_state *state)
timeout_expired(const struct ping_state *state)
{
struct timespec now;
double elapsed;
if (0.0 == state->config->deadline)
if (0.0 == state->config->timeout)
return 0;
if (0 != icmp_get_time(&now))
return 0;
elapsed = (double)(now.tv_sec - state->start_time.tv_sec)
+ (double)(now.tv_nsec - state->start_time.tv_nsec) / 1e9;
return elapsed >= state->config->deadline;
return elapsed >= state->config->timeout;
}
static int
@ -54,7 +54,7 @@ linger_expired(const struct ping_state *state)
return 0;
elapsed = (double)(now.tv_sec - state->linger_start.tv_sec)
+ (double)(now.tv_nsec - state->linger_start.tv_nsec) / 1e9;
return elapsed >= state->config->timeout;
return elapsed >= state->config->linger;
}
static int
@ -64,7 +64,7 @@ should_stop(const struct ping_state *state)
if (state->stop_flag)
return 1;
if (deadline_expired(state))
if (timeout_expired(state))
return 1;
if (linger_expired(state))
return 1;

View file

@ -5,5 +5,5 @@ void
ping_scheduler_select_tv(const struct ping_config *config, struct timeval *tv)
{
tv->tv_usec = 0;
tv->tv_sec = (long)config->timeout * !HAS_FLAG(config->flags, FLAG_FLOOD);
tv->tv_sec = (long)config->linger * !HAS_FLAG(config->flags, FLAG_FLOOD);
}