feat(core): add domaine name in start message

This commit is contained in:
lohhiiccc 2026-03-16 11:27:58 -05:00
parent cdc4df4f85
commit cde8ada0a3
7 changed files with 24 additions and 17 deletions

View file

@ -8,7 +8,7 @@
#include "internal/ping/ping_state.h"
void ping_output_start(const struct ping_config *config,
struct in_addr dest, size_t payload_bytes);
struct destinations *dest, size_t payload_bytes);
void ping_output_packet(const icmp_reply_t *reply, uint16_t seq,
int64_t rtt_ns, size_t payload_bytes, const struct ping_config *config);
void ping_output_error(const icmp_reply_t *reply,

View file

@ -4,7 +4,7 @@
#include <netinet/in.h>
#include "ping/ping.h"
int cli_parse_inet_addr(const char *s, struct in_addr *out);
int cli_parse_inet_addr(const char *s, struct destinations *out);
int cli_parse_destinations(int argc, char **argv, int first_arg,
struct ping_config *config);

View file

@ -8,7 +8,10 @@
struct ping_config
{
/* Targets */
struct in_addr *destinations;
struct destinations {
const char *dom;
struct in_addr ip;
} *destinations;
size_t nb_destinations;
/* Options */

View file

@ -3,6 +3,7 @@
#include "ping/cli.h"
#include "internal/cli/messages.h"
#include "internal/ping/parse_utils.h"
#include "ping/ping.h"
int
cli_parse_destinations(int argc, char **argv, int first_arg,
@ -13,7 +14,7 @@ cli_parse_destinations(int argc, char **argv, int first_arg,
config->nb_destinations = (size_t)(argc - first_arg);
config->destinations = malloc(config->nb_destinations
* sizeof(struct in_addr));
* sizeof(struct destinations));
if (NULL == config->destinations)
return CLI_ERROR;

View file

@ -1,9 +1,10 @@
#include "ping/ping.h"
#include <netdb.h>
#include <netinet/in.h>
#include <string.h>
int
cli_parse_inet_addr(const char *s, struct in_addr *out)
cli_parse_inet_addr(const char *s, struct destinations *out)
{
struct addrinfo hints;
struct addrinfo *res;
@ -18,6 +19,7 @@ cli_parse_inet_addr(const char *s, struct in_addr *out)
memcpy(&sin, res->ai_addr, sizeof(sin));
freeaddrinfo(res);
*out = sin.sin_addr;
out->ip = sin.sin_addr;
out->dom = s;
return 0;
}

View file

@ -13,11 +13,11 @@
#include "internal/ping/loop.h"
/* Forward declarations */
static int ping_one(const struct ping_config *config, struct in_addr dest,
icmp_handle_t *handle);
static int ping_one(const struct ping_config *config,
struct destinations *dest, icmp_handle_t *handle);
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);
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);
/* -------------------- */
@ -42,7 +42,7 @@ ping_run(const struct ping_config *config)
while (i < config->nb_destinations)
{
if (0 != ping_one(config, config->destinations[i], handle))
if (0 != ping_one(config, &config->destinations[i], handle))
ret = 1;
i++;
}
@ -52,7 +52,7 @@ cleanup:
}
static int
ping_one(const struct ping_config *config, struct in_addr dest,
ping_one(const struct ping_config *config, struct destinations *dest,
icmp_handle_t *handle)
{
struct ping_state state;
@ -60,13 +60,13 @@ ping_one(const struct ping_config *config, struct in_addr dest,
struct ping_tracker tracker;
size_t payload_len;
ping_init_state(&state, &stats, &tracker, config, dest, handle);
ping_init_state(&state, &stats, &tracker, config, dest->ip, handle);
payload_len = config->packet_size;
ping_scheduler_init(&state);
ping_output_start(config, dest, payload_len);
ping_first_send(&state, payload_len);
ping_loop(&state, payload_len);
ping_output_summary(&state, dest);
ping_output_summary(&state, dest->ip);
return tracker.nb_recv <= state.nb_errors;
}

View file

@ -4,15 +4,16 @@
#include "ping/ft_ping_flags.h"
#include "internal/ping/output.h"
#include "ping/ping.h"
void
ping_output_start(const struct ping_config *config,
struct in_addr dest, size_t payload_bytes)
struct destinations *dest, size_t payload_bytes)
{
char dest_str[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &dest, dest_str, sizeof(dest_str));
printf("PING %s (%s): %zu data bytes", dest_str, dest_str, payload_bytes);
inet_ntop(AF_INET, &dest->ip, dest_str, sizeof(dest_str));
printf("PING %s (%s): %zu data bytes", dest->dom, dest_str, payload_bytes);
if (HAS_FLAG(config->flags, FLAG_VERBOSE))
{
unsigned int id;