refactor: do_send
This commit is contained in:
parent
f9b84f709c
commit
3136b10395
4 changed files with 17 additions and 26 deletions
|
|
@ -4,6 +4,6 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include "internal/ping/ping_state.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
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
#include "ping/ft_ping_flags.h"
|
#include "ping/ft_ping_flags.h"
|
||||||
#include "internal/ping/send.h"
|
#include "internal/ping/send.h"
|
||||||
#include "internal/ping/callback.h"
|
#include "internal/ping/callback.h"
|
||||||
#include "internal/ping/output.h"
|
|
||||||
#include "internal/ping/scheduler.h"
|
#include "internal/ping/scheduler.h"
|
||||||
|
|
||||||
/* Forward declarations */
|
/* 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 linger_expired(const struct ping_state *state);
|
||||||
static int should_stop(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 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 try_recv(struct ping_state *state);
|
||||||
static void handle_send_trigger(struct ping_state *state, size_t payload_len);
|
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;
|
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
|
static void
|
||||||
try_recv(struct ping_state *state)
|
try_recv(struct ping_state *state)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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,
|
static void ping_init_state(struct ping_state *state, struct ping_stats *stats,
|
||||||
struct ping_tracker *tracker, const struct ping_config *config,
|
struct ping_tracker *tracker, const struct ping_config *config,
|
||||||
struct in_addr dest, icmp_handle_t *handle);
|
struct in_addr dest, icmp_handle_t *handle);
|
||||||
static void ping_first_send(struct ping_state *state, size_t payload_len);
|
|
||||||
/* -------------------- */
|
/* -------------------- */
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -64,7 +63,7 @@ ping_one(const struct ping_config *config, struct destinations *dest,
|
||||||
payload_len = config->packet_size;
|
payload_len = config->packet_size;
|
||||||
ping_scheduler_init(&state);
|
ping_scheduler_init(&state);
|
||||||
ping_output_start(config, dest, payload_len);
|
ping_output_start(config, dest, payload_len);
|
||||||
ping_first_send(&state, payload_len);
|
do_send(&state, payload_len);
|
||||||
ping_loop(&state, payload_len);
|
ping_loop(&state, payload_len);
|
||||||
ping_output_summary(&state, dest);
|
ping_output_summary(&state, dest);
|
||||||
return tracker.nb_recv <= state.nb_errors;
|
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;
|
state->handle = handle;
|
||||||
icmp_get_time(&state->start_time);
|
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);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,26 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
|
#include "internal/ping/output.h"
|
||||||
|
#include "internal/ping/scheduler.h"
|
||||||
#include "ping/ft_ping_const.h"
|
#include "ping/ft_ping_const.h"
|
||||||
#include "internal/ping/send.h"
|
#include "ping/ft_ping_flags.h"
|
||||||
|
|
||||||
/* Forward declarations */
|
/* Forward declarations */
|
||||||
static inline void fill_payload(uint8_t *payload, size_t payload_len);
|
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)
|
ping_send_one(struct ping_state *state, size_t payload_len)
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue