diff options
author | Marcel Raad <Marcel.Raad@teamviewer.com> | 2019-11-30 15:49:32 +0100 |
---|---|---|
committer | Marcel Raad <Marcel.Raad@teamviewer.com> | 2019-12-03 21:37:41 +0100 |
commit | 226bf217028017e408eadef66e60a1ea5762c961 (patch) | |
tree | 69b8c686419ebab6f3f39c2df5544b8861612b32 | |
parent | 67a08dca27a6a07b36c7f97252e284ca957ff1a5 (diff) |
configure: enable IPv6 support without `getaddrinfo`
This makes it possible to recognize and connect to literal IPv6
addresses when `getaddrinfo` is not available, which is already the
case for the CMake build. This affects e.g. classic MinGW because it
still targets Windows 2000 by default, where `getaddrinfo` is not
available, but general IPv6 support is.
Instead of checking for `getaddrinfo`, check for `sockaddr_in6` as the
CMake build does.
Closes https://github.com/curl/curl/pull/4662
-rwxr-xr-x | configure.ac | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/configure.ac b/configure.ac index 1b5a7fb4a..3e156bcae 100755 --- a/configure.ac +++ b/configure.ac @@ -1203,16 +1203,23 @@ AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]), ;; esac ], - AC_TRY_RUN([ /* is AF_INET6 available? */ + AC_TRY_RUN([ /* are AF_INET6 and sockaddr_in6 available? */ #include <sys/types.h> #ifdef HAVE_WINSOCK2_H #include <winsock2.h> +#include <ws2tcpip.h> #else #include <sys/socket.h> +#include <netinet/in.h> +#if defined (__TANDEM) +# include <netinet/in6.h> +#endif #endif #include <stdlib.h> /* for exit() */ main() { + struct sockaddr_in6 s; + (void)s; if (socket(AF_INET6, SOCK_STREAM, 0) < 0) exit(1); else @@ -1227,8 +1234,12 @@ main() ipv6=yes )) -# Check if struct sockaddr_in6 have sin6_scope_id member if test "$ipv6" = yes; then + curl_ipv6_msg="enabled" + AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support]) + IPV6_ENABLED=1 + AC_SUBST(IPV6_ENABLED) + AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member]) AC_TRY_COMPILE([ #include <sys/types.h> @@ -4052,15 +4063,6 @@ AC_CHECK_FUNCS([fnmatch \ fi ]) -if test "$ipv6" = "yes"; then - if test "$curl_cv_func_getaddrinfo" = "yes"; then - AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support]) - IPV6_ENABLED=1 - AC_SUBST(IPV6_ENABLED) - curl_ipv6_msg="enabled" - fi -fi - CURL_CHECK_NONBLOCKING_SOCKET dnl ************************************************************ |