Add support for easily formatting IPv6 addresses

This commit is contained in:
Samuel Thibault 2024-01-05 18:40:00 +01:00
parent 01f0062d2d
commit 3186e8aa99
2 changed files with 14 additions and 1 deletions

14
util.c
View file

@ -19,7 +19,7 @@
// to use
char *fmtaddr(in_addr_t addr, int n)
{
static char addrs[4][16];
static char addrs[4][INET_ADDRSTRLEN];
struct in_addr in;
if (n < 0 || n >= 4)
@ -29,6 +29,18 @@ char *fmtaddr(in_addr_t addr, int n)
return strcpy(addrs[n], inet_ntoa(in));
}
// format ipv6 addr; n chooses one of 4 static buffers to use
char *fmtaddr6(struct in6_addr *addr, int n)
{
static char addrs[4][INET6_ADDRSTRLEN];
if (n < 0 || n >= 4)
return "";
inet_ntop(AF_INET6, addr, addrs[n], sizeof(addrs[n]));
return addrs[n];
}
char *fmtMacAddr(uint8_t *pMacAddr)
{
// FF:FF:FF:FF:FF:FF (len(18)= 2*6 + 5 (:) + 1 (zero terminal))

1
util.h
View file

@ -2,6 +2,7 @@
#define __UTIL_H__
char *fmtaddr(in_addr_t addr, int n);
char *fmtaddr6(struct in6_addr *addr, int n);
char *fmtMacAddr(uint8_t *pMacAddr);
void *shared_malloc(unsigned int size);
pid_t fork_and_close(void);