1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-24 14:03:55 +01:00

sys/net/sock_util: fix compilation for IPv4-only mode

This commit is contained in:
Hendrik van Essen 2022-03-06 14:50:31 +01:00
parent f31fdfd12d
commit 73431b398d

View File

@ -42,13 +42,18 @@ int sock_tl_ep_fmt(const struct _sock_tl_ep *endpoint,
const void *addr_ptr;
*addr_str = '\0';
if (IS_ACTIVE(SOCK_HAS_IPV4) && (endpoint->family == AF_INET)) {
switch (endpoint->family) {
#ifdef SOCK_HAS_IPV4
case AF_INET:
addr_ptr = &endpoint->addr.ipv4;
}
else if (IS_ACTIVE(SOCK_HAS_IPV6) && (endpoint->family == AF_INET6)) {
break;
#endif
#ifdef SOCK_HAS_IPV6
case AF_INET6:
addr_ptr = &endpoint->addr.ipv6;
}
else {
break;
#endif
default:
return -ENOTSUP;
}
@ -56,8 +61,7 @@ int sock_tl_ep_fmt(const struct _sock_tl_ep *endpoint,
return 0;
}
if (IS_ACTIVE(SOCK_HAS_IPV6) && (endpoint->family == AF_INET6) &&
endpoint->netif) {
if (IS_ACTIVE(SOCK_HAS_IPV6) && (endpoint->family == AF_INET6) && endpoint->netif) {
#ifdef MODULE_FMT
char *tmp = addr_str + strlen(addr_str);
*tmp++ = '%';
@ -231,19 +235,21 @@ int sock_tl_str2ep(struct _sock_tl_ep *ep_out, const char *str)
hostbuf[hostlen] = '\0';
if (!brackets_flag && IS_ACTIVE(SOCK_HAS_IPV4)) {
if (!brackets_flag) {
#ifdef SOCK_HAS_IPV4
if (inet_pton(AF_INET, hostbuf, &ep_out->addr.ipv4) == 1) {
ep_out->family = AF_INET;
return 0;
}
#endif
}
if (IS_ACTIVE(SOCK_HAS_IPV6)) {
if (inet_pton(AF_INET6, hostbuf, ep_out->addr.ipv6) == 1) {
ep_out->family = AF_INET6;
return 0;
}
#ifdef SOCK_HAS_IPV6
if (inet_pton(AF_INET6, hostbuf, ep_out->addr.ipv6) == 1) {
ep_out->family = AF_INET6;
return 0;
}
#endif
return -EINVAL;
}
@ -259,12 +265,16 @@ bool sock_tl_ep_equal(const struct _sock_tl_ep *a,
}
/* compare addresses */
if (IS_ACTIVE(SOCK_HAS_IPV4) && (a->family == AF_INET)) {
return memcmp(a->addr.ipv4, b->addr.ipv6, 4) == 0;
}
else if (IS_ACTIVE(SOCK_HAS_IPV6) && (a->family == AF_INET6)) {
switch (a->family) {
#ifdef SOCK_HAS_IPV4
case AF_INET:
return memcmp(a->addr.ipv4, b->addr.ipv4, 4) == 0;
#endif
#ifdef SOCK_HAS_IPV6
case AF_INET6:
return memcmp(a->addr.ipv6, b->addr.ipv6, 16) == 0;
#endif
default:
return false;
}
return false;
}