diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-02-25 17:13:38 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-02-25 18:39:56 -0800 |
| commit | 53a9740d1dcbad6be4b4c1a10a5f3fcbb97a5be9 (patch) | |
| tree | 00c49f3cd56f5797ec0d3f31dab689c6573fc6e6 /src/platform/windows/win_sockaddr.c | |
| parent | 8e62028a0db24364ea218007811e58ea11d0b64f (diff) | |
| download | nng-53a9740d1dcbad6be4b4c1a10a5f3fcbb97a5be9.tar.gz nng-53a9740d1dcbad6be4b4c1a10a5f3fcbb97a5be9.tar.bz2 nng-53a9740d1dcbad6be4b4c1a10a5f3fcbb97a5be9.zip | |
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.
Diffstat (limited to 'src/platform/windows/win_sockaddr.c')
| -rw-r--r-- | src/platform/windows/win_sockaddr.c | 14 |
1 files changed, 11 insertions, 3 deletions
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. <info@staysail.tech> +// Copyright 2024 Staysail Systems, Inc. <info@staysail.tech> // Copyright 2018 Capitar IT Group BV <info@capitar.com> // // 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); } |
