From 53a9740d1dcbad6be4b4c1a10a5f3fcbb97a5be9 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 25 Feb 2024 17:13:38 -0800 Subject: fixes #1496 Provide NNG_ENABLE_IPV6 option (disabled by default) This also checks if the build system has the definitions for AF_INET6, which might help in some embedded IPv4 only settings. The resolver test is enhanced to include a check for IPv6 enabled in the kernel. IPv6 support is enabled by default, of course. --- src/platform/windows/win_sockaddr.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/platform/windows/win_sockaddr.c') diff --git a/src/platform/windows/win_sockaddr.c b/src/platform/windows/win_sockaddr.c index 818f670b..585096e9 100644 --- a/src/platform/windows/win_sockaddr.c +++ b/src/platform/windows/win_sockaddr.c @@ -1,5 +1,5 @@ // -// Copyright 2020 Staysail Systems, Inc. +// Copyright 2024 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This software is supplied under the terms of the MIT License, a @@ -15,8 +15,10 @@ int nni_win_nn2sockaddr(SOCKADDR_STORAGE *ss, const nni_sockaddr *sa) { - SOCKADDR_IN * sin; + SOCKADDR_IN *sin; +#ifdef NNG_ENABLE_IPV6 SOCKADDR_IN6 *sin6; +#endif if ((ss == NULL) || (sa == NULL)) { return (-1); @@ -30,6 +32,7 @@ nni_win_nn2sockaddr(SOCKADDR_STORAGE *ss, const nni_sockaddr *sa) sin->sin_addr.s_addr = sa->s_in.sa_addr; return (sizeof(*sin)); +#ifdef NNG_ENABLE_IPV6 case NNG_AF_INET6: sin6 = (void *) ss; memset(sin6, 0, sizeof(*sin6)); @@ -38,6 +41,7 @@ nni_win_nn2sockaddr(SOCKADDR_STORAGE *ss, const nni_sockaddr *sa) sin6->sin6_scope_id = sa->s_in6.sa_scope; memcpy(sin6->sin6_addr.s6_addr, sa->s_in6.sa_addr, 16); return (sizeof(*sin6)); +#endif } return (-1); } @@ -45,8 +49,10 @@ nni_win_nn2sockaddr(SOCKADDR_STORAGE *ss, const nni_sockaddr *sa) int nni_win_sockaddr2nn(nni_sockaddr *sa, const SOCKADDR_STORAGE *ss) { - SOCKADDR_IN * sin; + SOCKADDR_IN *sin; +#ifdef NNG_ENABLE_IPV6 SOCKADDR_IN6 *sin6; +#endif if ((ss == NULL) || (sa == NULL)) { return (-1); @@ -59,6 +65,7 @@ nni_win_sockaddr2nn(nni_sockaddr *sa, const SOCKADDR_STORAGE *ss) sa->s_in.sa_addr = sin->sin_addr.s_addr; return (0); +#ifdef NNG_ENABLE_IPV6 case PF_INET6: sin6 = (void *) ss; sa->s_in6.sa_family = NNG_AF_INET6; @@ -66,6 +73,7 @@ nni_win_sockaddr2nn(nni_sockaddr *sa, const SOCKADDR_STORAGE *ss) sa->s_in6.sa_scope = sin6->sin6_scope_id; memcpy(sa->s_in6.sa_addr, sin6->sin6_addr.s6_addr, 16); return (0); +#endif } return (-1); } -- cgit v1.2.3-70-g09d2