X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/44bbabb570db6e700a31469a0faf2ac27bf3bfe0..4789da3a20432b8ce9cdccfb0713c027f91447c9:/src/src/exim.h diff --git a/src/src/exim.h b/src/src/exim.h index 626d33dae..32871660d 100644 --- a/src/src/exim.h +++ b/src/src/exim.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2009 */ +/* Copyright (c) University of Cambridge 1995 - 2012 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -20,6 +20,13 @@ This call dates back at least as far as SUSv2. */ #define HAVE_SRANDOM +/* This is primarily for the Gnu C library; we define it before os.h so that +os.h has a chance to hurriedly undef it, Just In Case. We need C99 for some +64-bit math support, and defining _ISOC99_SOURCE breaks and friends. +*/ + +#define _GNU_SOURCE 1 + /* First of all include the os-specific header, which might set things that are needed by any of the other headers, including system headers. */ @@ -48,7 +55,7 @@ making unique names. */ #define LOCALHOST_MAX 10 #endif -/* If not overriden by os.h, dynamic libraries have filenames ending .so */ +/* If not overridden by os.h, dynamic libraries have filenames ending .so */ #ifndef DYNLIB_FN_EXT # define DYNLIB_FN_EXT "so" #endif @@ -77,6 +84,10 @@ making unique names. */ #include #endif +/* C99 integer types, figure out how to undo this if needed for older systems */ + +#include + /* Just in case some aged system doesn't define them... */ #ifndef INT_MAX @@ -295,6 +306,12 @@ header files. I don't suppose they have T_SRV either. */ #define T_SRV 33 #endif +/* Many systems do not have T_SPF. */ + +#ifndef T_SPF +#define T_SPF 99 +#endif + /* It seems that some versions of arpa/nameser.h don't define *any* of the T_xxx macros, which seem to be non-standard nowadays. Just to be on the safe side, put in definitions for all the ones that Exim uses. */ @@ -353,6 +370,17 @@ to undefine it if resolv.h defines it. */ #undef __P #endif +/* If not defined by os.h, we do nothing special to push DNS resolver state +back to be available by the classic resolver routines. Also, provide +prototype for our get routine, unless defined away. */ + +#ifndef os_put_dns_resolver_res +# define os_put_dns_resolver_res(R) do {/**/} while(0) +#endif +#ifndef os_get_dns_resolver_res +res_state os_get_dns_resolver_res(void); +#endif + /* These three are to support the IP option logging code. Linux is different to everyone else and there are also other systems which don't have netinet/ip_var.h, so there's a general macro to control its inclusion. */