1
0
Fork 0
mirror of https://passt.top/passt synced 2025-05-28 12:25:34 +02:00

util, tcp: Add helper to display socket addresses

When reporting errors, we sometimes want to show a relevant socket address.
Doing so by extracting the various relevant fields can be pretty awkward,
so introduce a sockaddr_ntop() helper to make it simpler.  For now we just
have one user in tcp.c, but I have further upcoming patches which can make
use of it.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
David Gibson 2024-05-21 14:48:03 +10:00 committed by Stefano Brivio
parent 3ff3a8a467
commit 1a20370b36
3 changed files with 79 additions and 14 deletions

14
util.h
View file

@ -180,6 +180,20 @@ static inline const char *af_name(sa_family_t af)
}
}
#define UINT16_STRLEN (sizeof("65535"))
/* inet address (- '\0') + port (u16) (- '\0') + ':' + '\0' */
#define SOCKADDR_INET_STRLEN \
(INET_ADDRSTRLEN-1 + UINT16_STRLEN-1 + sizeof(":"))
/* inet6 address (- '\0') + port (u16) (- '\0') + '[' + ']' + ':' + '\0' */
#define SOCKADDR_INET6_STRLEN \
(INET6_ADDRSTRLEN-1 + UINT16_STRLEN-1 + sizeof("[]:"))
#define SOCKADDR_STRLEN MAX(SOCKADDR_INET_STRLEN, SOCKADDR_INET6_STRLEN)
const char *sockaddr_ntop(const void *sa, char *dst, socklen_t size);
/**
* mod_sub() - Modular arithmetic subtraction
* @a: Minued, unsigned value < @m