mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
added print functions for various sockaddr families
This commit is contained in:
parent
b3268247c2
commit
473739b4e5
1 changed files with 30 additions and 1 deletions
|
@ -49,7 +49,36 @@ void print(enum log_level lvl, const char *fmt, ...)
|
|||
va_end(ap);
|
||||
}
|
||||
|
||||
int resolve_addr(const char *addr, struct sockaddr_in *sa, int flags)
|
||||
int print_addr(struct sockaddr *sa, char *buf, size_t len)
|
||||
{
|
||||
if (!sa)
|
||||
return -1;
|
||||
|
||||
switch (sa->sa_family) {
|
||||
case AF_INET: {
|
||||
struct sockaddr_in *sin = (struct sockaddr_in *) sa;
|
||||
inet_ntop(sa->sa_family, sa, buf, len);
|
||||
snprintf(buf+strlen(buf), len-strlen(buf), ":%hu", ntohs(sin->sin_port))
|
||||
break;
|
||||
}
|
||||
|
||||
case AF_PACKET: {
|
||||
struct sockaddr_ll *sll = (struct sockaddr_ll *) sa;
|
||||
char ifname[IF_NAMESIZE];
|
||||
|
||||
snprintf("%#x:%#x:%#x:%#x:%#x:%#x:%hu (%s)",
|
||||
sll->sll_addr[0], sll->sll_addr[1], sll->sll_addr[2],
|
||||
sll->sll_addr[3], sll->sll_addr[4], sll->sll_addr[5],
|
||||
ntohs(sll->sll_protocol), if_indextoname(sll->sll_ifindex, ifname));
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
error("Unsupported address family");
|
||||
}
|
||||
}
|
||||
|
||||
int parse_addr(const char *addr, struct sockaddr_in *sa, int flags)
|
||||
{
|
||||
/* Split string */
|
||||
char *tmp = strdup(addr);
|
||||
|
|
Loading…
Add table
Reference in a new issue