TK/09
[exim.git] / src / src / exim.h
index e44cad788f2e671aaca289f0ea1aef5bd31b1eb6..6721cb6096f0ac1c7803a802644bfc7ac466244b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim.h,v 1.11 2005/04/27 10:00:18 ph10 Exp $ */
+/* $Cambridge: exim/src/src/exim.h,v 1.15 2005/05/24 10:57:10 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -49,6 +49,7 @@ making unique names. */
 
 #include <ctype.h>
 #include <locale.h>
+#include <math.h>
 #include <signal.h>
 #include <stdarg.h>
 #include <stddef.h>
@@ -92,7 +93,9 @@ making unique names. */
 #include <sys/file.h>
 #include <dirent.h>
 #include <netdb.h>
+#ifndef NO_POLL_H
 #include <poll.h>
+#endif
 #include <pwd.h>
 #include <grp.h>
 #include <syslog.h>
@@ -218,23 +221,19 @@ or a macro with entries f_frsize and f_bsize. */
 #include <fcntl.h>
 
 /* There's a shambles in IRIX6 - it defines EX_OK in unistd.h which conflicts
-with the definition in sysexits.h. Arrange to preserve it, even though at
-present Exim doesn't actually use it. */
+with the definition in sysexits.h. Exim does not actually use this macro, so we
+just undefine it. It would be nice to be able to re-instate the definition from
+sysexits.h if there is no definition in unistd.h, but I do not think there is a
+way to do this in C because macro definitions are not scanned for other macros
+at definition time. [The code here used to assume they were, until I was
+disabused of the notion. Luckily, since EX_OK is not used, it didn't matter.] */
 
 #ifdef EX_OK
-#define SAVE_EX_OK EX_OK
 #undef EX_OK
 #endif
 
 #include <unistd.h>
 
-#ifdef SAVE_EX_OK
-#ifdef EX_OK
-#undef EX_OK
-#endif
-#define EX_OK SAVE_EX_OK
-#endif
-
 #include <utime.h>
 #ifndef NO_NET_IF_H
 #include <net/if.h>
@@ -280,12 +279,19 @@ header files. I don't suppose they have T_SRV either. */
 #define T_SRV 33
 #endif
 
-/* We use the private type T_ZNS for retrieving the nameservers for the
-enclosing zone of a domain, and the private type T_MXH for retrieving
-the MX hostnames only (without their priorities). */
+/* We define a few private types for special DNS lookups:
+
+ . T_ZNS gets the nameservers of the enclosing zone of a domain
+
+ . T_MXH gets the MX hostnames only (without their priorities)
+
+ . T_CSA gets the domain's Client SMTP Authorization SRV record
+
+*/
 
 #define T_ZNS (-1)
 #define T_MXH (-2)
+#define T_CSA (-3)
 
 /* The resolv.h header defines __P(x) on some Solaris 2.5.1 systems (without
 checking that it is already defined, in fact). This conflicts with other