refactor: do_send

This commit is contained in:
lohhiiccc 2026-03-23 10:21:58 -05:00
parent f9b84f709c
commit 3136b10395
4 changed files with 17 additions and 26 deletions

View file

@ -4,6 +4,6 @@
#include <stddef.h>
#include "internal/ping/ping_state.h"
int ping_send_one(struct ping_state *state, size_t payload_len);
void do_send(struct ping_state *state, size_t payload_len);
#endif

View file

@ -3,7 +3,6 @@
#include "ping/ft_ping_flags.h"
#include "internal/ping/send.h"
#include "internal/ping/callback.h"
#include "internal/ping/output.h"
#include "internal/ping/scheduler.h"
/* Forward declarations */
@ -11,7 +10,6 @@ static int deadline_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);
static void do_send(struct ping_state *state, size_t payload_len);
static void try_recv(struct ping_state *state);
static void handle_send_trigger(struct ping_state *state, size_t payload_len);
/* -------------------- */
@ -82,16 +80,6 @@ can_send_more(const struct ping_state *state)
return 0 == count || state->tracker->nb_sent < count;
}
static void
do_send(struct ping_state *state, size_t payload_len)
{
state->send_flag = 0;
ping_send_one(state, payload_len);
if (HAS_FLAG(state->config->flags, FLAG_FLOOD))
ping_output_flood_dot();
ping_scheduler_arm(state->config);
}
static void
try_recv(struct ping_state *state)
{

View file

@ -14,7 +14,6 @@ static int ping_one(const struct ping_config *config,
static void ping_init_state(struct ping_state *state, struct ping_stats *stats,
struct ping_tracker *tracker, const struct ping_config *config,
struct in_addr dest, icmp_handle_t *handle);
static void ping_first_send(struct ping_state *state, size_t payload_len);
/* -------------------- */
int
@ -64,7 +63,7 @@ ping_one(const struct ping_config *config, struct destinations *dest,
payload_len = config->packet_size;
ping_scheduler_init(&state);
ping_output_start(config, dest, payload_len);
ping_first_send(&state, payload_len);
do_send(&state, payload_len);
ping_loop(&state, payload_len);
ping_output_summary(&state, dest);
return tracker.nb_recv <= state.nb_errors;
@ -86,12 +85,3 @@ ping_init_state(struct ping_state *state, struct ping_stats *stats,
state->handle = handle;
icmp_get_time(&state->start_time);
}
static void
ping_first_send(struct ping_state *state, size_t payload_len)
{
ping_send_one(state, payload_len);
if (HAS_FLAG(state->config->flags, FLAG_FLOOD))
ping_output_flood_dot();
ping_scheduler_arm(state->config);
}

View file

@ -1,13 +1,26 @@
#include <stddef.h>
#include "internal/ping/output.h"
#include "internal/ping/scheduler.h"
#include "ping/ft_ping_const.h"
#include "internal/ping/send.h"
#include "ping/ft_ping_flags.h"
/* Forward declarations */
static inline void fill_payload(uint8_t *payload, size_t payload_len);
static int ping_send_one(struct ping_state *state, size_t payload_len);
/* -------------------- */
int
void
do_send(struct ping_state *state, size_t payload_len)
{
state->send_flag = 0;
ping_send_one(state, payload_len);
if (HAS_FLAG(state->config->flags, FLAG_FLOOD))
ping_output_flood_dot();
ping_scheduler_arm(state->config);
}
static int
ping_send_one(struct ping_state *state, size_t payload_len)
{
struct timespec ts;