Pull strict-aliasing fix for sockaddr_46.
[exim.git] / src / src / exim.h
index b9b2ab0eba65fe431dbbd3d66693e87fe804a3e4..e979175d178dfc50af2a8908f1444edb747a02f1 100644 (file)
@@ -1,5 +1,3 @@
-/* $Cambridge: exim/src/src/exim.h,v 1.27 2009/11/16 19:50:36 nm4 Exp $ */
-
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
@@ -479,13 +477,15 @@ requires various things that are set therein. */
 #endif
 
 /* Define a union to hold either an IPv4 or an IPv6 sockaddr structure; this
-simplifies some of the coding. */
+simplifies some of the coding.  We include the sockaddr to reduce type-punning
+issues in C99. */
 
 union sockaddr_46 {
   struct sockaddr_in v4;
   #if HAVE_IPV6
   struct sockaddr_in6 v6;
   #endif
+  struct sockaddr v0;
 };
 
 /* If SUPPORT_TLS is not defined, ensure that USE_GNUTLS is also not defined
@@ -533,5 +533,12 @@ default to EDQUOT if it exists, otherwise ENOSPC. */
   #endif
 #endif
 
+/* These are for reporting version information from various componenents, to
+figure out what's actually happening. They need to be available to the main
+function, so we declare them here. Unfortunate. */
+
+#ifdef AUTH_CYRUS_SASL
+extern void auth_cyrus_sasl_version_report(FILE *);
+#endif
 
 /* End of exim.h */