summaryrefslogtreecommitdiffstats
path: root/package/openssl
diff options
context:
space:
mode:
Diffstat (limited to 'package/openssl')
-rw-r--r--package/openssl/openssl-optional-ipv6.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/package/openssl/openssl-optional-ipv6.patch b/package/openssl/openssl-optional-ipv6.patch
new file mode 100644
index 000000000..2876058bd
--- /dev/null
+++ b/package/openssl/openssl-optional-ipv6.patch
@@ -0,0 +1,55 @@
+[PATCH] openssl: fix build without IPv6 support
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ crypto/bio/bss_dgram.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+Index: openssl-0.9.8n/crypto/bio/bss_dgram.c
+===================================================================
+--- openssl-0.9.8n.orig/crypto/bio/bss_dgram.c
++++ openssl-0.9.8n/crypto/bio/bss_dgram.c
+@@ -61,6 +61,12 @@
+
+ #include <stdio.h>
+ #include <errno.h>
++#include <features.h>
++
++#if defined(__UCLIBC__) && !defined (__UCLIBC_HAS_IPV6__)
++#define NO_IPV6
++#endif
++
+ #define USE_SOCKETS
+ #include "cryptlib.h"
+
+@@ -429,12 +435,14 @@ static long dgram_ctrl(BIO *b, int cmd,
+ &sockopt_val, sizeof(sockopt_val))) < 0)
+ perror("setsockopt");
+ break;
++#ifndef NO_IPV6
+ case AF_INET6:
+ sockopt_val = IPV6_PMTUDISC_DO;
+ if ((ret = setsockopt(b->num, IPPROTO_IPV6, IPV6_MTU_DISCOVER,
+ &sockopt_val, sizeof(sockopt_val))) < 0)
+ perror("setsockopt");
+ break;
++#endif
+ default:
+ ret = -1;
+ break;
+@@ -470,6 +478,7 @@ static long dgram_ctrl(BIO *b, int cmd,
+ ret = data->mtu;
+ }
+ break;
++#ifndef NO_IPV6
+ case AF_INET6:
+ if ((ret = getsockopt(b->num, IPPROTO_IPV6, IPV6_MTU, (void *)&sockopt_val,
+ &sockopt_len)) < 0 || sockopt_val < 0)
+@@ -485,6 +494,7 @@ static long dgram_ctrl(BIO *b, int cmd,
+ ret = data->mtu;
+ }
+ break;
++#endif
+ default:
+ ret = 0;
+ break;