summaryrefslogtreecommitdiffstats
path: root/e_os.h
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-08-26 15:15:15 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-08-26 15:15:15 +0000
commita6dab873d9b90165cbbe8845592fec963c154eb9 (patch)
tree89844e530221da13dc4e02f38b03efb3e025ece1 /e_os.h
parent480b9e5d29235d0dcfdfae415dc26814a7da511d (diff)
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)