aboutsummaryrefslogtreecommitdiffstats
path: root/e_os.h
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-08-26 15:13:43 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-08-26 15:13:43 +0000
commitb8dc932c05d9e0a937e9b25ef8c5458e067b660a (patch)
treefca3fb320eb82ad7af6e7a7c525663ef420132ce /e_os.h
parent17f8d8db61f31b2d8098497a25092e6cee1d89fa (diff)
downloadopenssl-b8dc932c05d9e0a937e9b25ef8c5458e067b660a.tar.gz
PR: 2005
Submitted by: steve@openssl.org Some systems have broken IPv6 headers and/or implementations. If OPENSSL_USE_IPV6 is set to 0 IPv6 is not used, if it is set to 1 it is used and if undefined an attempt is made to detect at compile time by checking if AF_INET6 is set and excluding known problem platforms.
Diffstat (limited to 'e_os.h')
-rw-r--r--e_os.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/e_os.h b/e_os.h
index 3fbfe8e0ba..0f4b7994f5 100644
--- a/e_os.h
+++ b/e_os.h
@@ -624,6 +624,18 @@ static unsigned int _strlen31(const char *str)
# define INVALID_SOCKET (-1)
# endif /* INVALID_SOCKET */
# endif
+
+/* Some IPv6 implementations are broken, disable them in known bad
+ * versions.
+ */
+# if !defined(OPENSSL_USE_IPV6)
+# if defined(AF_INET6) && !defined(OPENSSL_SYS_BEOS_BONE) && !defined(NETWARE_CLIB)
+# define OPENSSL_USE_IPV6 1
+# else
+# define OPENSSL_USE_IPV6 0
+# endif
+# endif
+
#endif
#if defined(__ultrix)