summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Laurie <ben@openssl.org>2012-05-30 09:34:44 +0000
committerBen Laurie <ben@openssl.org>2012-05-30 09:34:44 +0000
commit03c1d9f99d95e19d4940aae8587808924cab486a (patch)
treeabdf3aedbb960b92bd046ae83ff6c2236cff7908
parentf889bb03841c69330d1e14a873c9982d3702f2d0 (diff)
Build on FreeBSD with gcc 4.6.
-rw-r--r--crypto/bio/bss_dgram.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/crypto/bio/bss_dgram.c b/crypto/bio/bss_dgram.c
index 1b1e4bec81..46cbe8a407 100644
--- a/crypto/bio/bss_dgram.c
+++ b/crypto/bio/bss_dgram.c
@@ -81,6 +81,16 @@
#define IP_MTU 14 /* linux is lame */
#endif
+#ifdef __FreeBSD__
+/* Standard definition causes type-punning problems. */
+#undef IN6_IS_ADDR_V4MAPPED
+#define s6_addr32 __u6_addr.__u6_addr32
+#define IN6_IS_ADDR_V4MAPPED(a) \
+ (((a)->s6_addr32[0] == 0) && \
+ ((a)->s6_addr32[1] == 0) && \
+ ((a)->s6_addr32[2] == htonl(0x0000ffff)))
+#endif
+
#ifdef WATT32
#define sock_write SockWrite /* Watt-32 uses same names */
#define sock_read SockRead