aboutgitcodebugslistschat
path: root/icmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'icmp.c')
-rw-r--r--icmp.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/icmp.c b/icmp.c
index cc8c7ee..220dcd1 100644
--- a/icmp.c
+++ b/icmp.c
@@ -62,7 +62,6 @@ void icmp_sock_handler(const struct ctx *c, sa_family_t af, union epoll_ref ref)
{
struct icmp_ping_flow *pingf = af == AF_INET
? icmp_id_map[V4][ref.icmp.id] : icmp_id_map[V6][ref.icmp.id];
- const char *const pname = af == AF_INET ? "ICMP" : "ICMPv6";
union sockaddr_inany sr;
socklen_t sl = sizeof(sr);
char buf[USHRT_MAX];
@@ -76,8 +75,7 @@ void icmp_sock_handler(const struct ctx *c, sa_family_t af, union epoll_ref ref)
n = recvfrom(ref.fd, buf, sizeof(buf), 0, &sr.sa, &sl);
if (n < 0) {
- warn("%s: recvfrom() error on ping socket: %s",
- pname, strerror(errno));
+ flow_err(pingf, "recvfrom() error: %s", strerror(errno));
return;
}
if (sr.sa_family != af)
@@ -114,8 +112,9 @@ void icmp_sock_handler(const struct ctx *c, sa_family_t af, union epoll_ref ref)
pingf->seq = seq;
}
- debug("%s: echo reply to tap, ID: %"PRIu16", seq: %"PRIu16, pname,
- ref.icmp.id, seq);
+ flow_dbg(pingf, "echo reply to tap, ID: %"PRIu16", seq: %"PRIu16,
+ ref.icmp.id, seq);
+
if (af == AF_INET)
tap_icmp4_send(c, sr.sa4.sin_addr, tap_ip4_daddr(c), buf, n);
else if (af == AF_INET6)
@@ -124,7 +123,7 @@ void icmp_sock_handler(const struct ctx *c, sa_family_t af, union epoll_ref ref)
return;
unexpected:
- warn("%s: Unexpected packet on ping socket", pname);
+ flow_err(pingf, "Unexpected packet on ping socket");
}
/**
@@ -159,7 +158,6 @@ static struct icmp_ping_flow *icmp_ping_new(const struct ctx *c,
struct icmp_ping_flow **id_sock,
sa_family_t af, uint16_t id)
{
- const char *const pname = af == AF_INET ? "ICMP" : "ICMPv6";
uint8_t flowtype = af == AF_INET ? FLOW_PING4 : FLOW_PING6;
union icmp_epoll_ref iref = { .id = id };
union flow *flow = flow_alloc();
@@ -196,9 +194,9 @@ static struct icmp_ping_flow *icmp_ping_new(const struct ctx *c,
if (pingf->sock > FD_REF_MAX)
goto cancel;
- *id_sock = pingf;
+ flow_dbg(pingf, "new socket %i for echo ID %"PRIu16, pingf->sock, id);
- debug("%s: new socket %i for echo ID %"PRIu16, pname, pingf->sock, id);
+ *id_sock = pingf;
return pingf;
@@ -223,7 +221,6 @@ int icmp_tap_handler(const struct ctx *c, uint8_t pif, sa_family_t af,
const void *saddr, const void *daddr,
const struct pool *p, const struct timespec *now)
{
- const char *const pname = af == AF_INET ? "ICMP" : "ICMPv6";
union sockaddr_inany sa = { .sa_family = af };
const socklen_t sl = af == AF_INET ? sizeof(sa.sa4) : sizeof(sa.sa6);
struct icmp_ping_flow *pingf, **id_sock;
@@ -278,11 +275,12 @@ int icmp_tap_handler(const struct ctx *c, uint8_t pif, sa_family_t af,
pingf->ts = now->tv_sec;
if (sendto(pingf->sock, pkt, plen, MSG_NOSIGNAL, &sa.sa, sl) < 0) {
- debug("%s: failed to relay request to socket: %s",
- pname, strerror(errno));
+ flow_dbg(pingf, "failed to relay request to socket: %s",
+ strerror(errno));
} else {
- debug("%s: echo request to socket, ID: %"PRIu16", seq: %"PRIu16,
- pname, id, seq);
+ flow_dbg(pingf,
+ "echo request to socket, ID: %"PRIu16", seq: %"PRIu16,
+ id, seq);
}
return 1;