aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Raad <Marcel.Raad@teamviewer.com>2019-11-30 15:49:32 +0100
committerMarcel Raad <Marcel.Raad@teamviewer.com>2019-12-03 21:37:41 +0100
commit226bf217028017e408eadef66e60a1ea5762c961 (patch)
tree69b8c686419ebab6f3f39c2df5544b8861612b32
parent67a08dca27a6a07b36c7f97252e284ca957ff1a5 (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-xconfigure.ac24
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 ************************************************************