From 73431b398d9d0a1b5ce670c1a6b100fb262e3dfc Mon Sep 17 00:00:00 2001 From: Hendrik van Essen Date: Sun, 6 Mar 2022 14:50:31 +0100 Subject: [PATCH] sys/net/sock_util: fix compilation for IPv4-only mode --- sys/net/sock/sock_util.c | 48 ++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/sys/net/sock/sock_util.c b/sys/net/sock/sock_util.c index 0d84db97f90f..1fb496a4eb7e 100644 --- a/sys/net/sock/sock_util.c +++ b/sys/net/sock/sock_util.c @@ -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; }