X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/415c8f3b2abccd8f04b0095551919adf142e6eee..44bbabb570db6e700a31469a0faf2ac27bf3bfe0:/src/src/exim.h diff --git a/src/src/exim.h b/src/src/exim.h index 6721cb609..626d33dae 100644 --- a/src/src/exim.h +++ b/src/src/exim.h @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/exim.h,v 1.15 2005/05/24 10:57:10 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2005 */ +/* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -17,6 +15,11 @@ most of these includes. */ #define HAVE_STATFS +/* Similarly, assume most systems have srandom() unless os.h undefines it. +This call dates back at least as far as SUSv2. */ + +#define HAVE_SRANDOM + /* First of all include the os-specific header, which might set things that are needed by any of the other headers, including system headers. */ @@ -45,6 +48,11 @@ making unique names. */ #define LOCALHOST_MAX 10 #endif +/* If not overriden by os.h, dynamic libraries have filenames ending .so */ +#ifndef DYNLIB_FN_EXT +# define DYNLIB_FN_EXT "so" +#endif + /* ANSI C standard includes */ #include @@ -75,6 +83,14 @@ making unique names. */ #define INT_MAX 2147483647 #endif +#ifndef INT_MIN +#define INT_MIN (-INT_MAX - 1) +#endif + +#ifndef SHRT_MAX +#define SHRT_MAX 32767 +#endif + #ifndef UCHAR_MAX #define UCHAR_MAX 255 #endif @@ -279,6 +295,35 @@ header files. I don't suppose they have T_SRV either. */ #define T_SRV 33 #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. */ + +#ifndef T_A +#define T_A 1 +#endif + +#ifndef T_CNAME +#define T_CNAME 5 +#endif + +#ifndef T_SOA +#define T_SOA 6 +#endif + +#ifndef T_MX +#define T_MX 15 +#endif + +#ifndef T_NS +#define T_NS 2 +#endif + +#ifndef T_PTR +#define T_PTR 12 +#endif + + /* We define a few private types for special DNS lookups: . T_ZNS gets the nameservers of the enclosing zone of a domain @@ -385,12 +430,11 @@ extern int ferror(FILE *); /* The header from the PCRE regex package */ -#include "pcre/pcre.h" +#include /* Exim includes are in several files. Note that local_scan.h #includes -mytypes.h and store.h, so we don't need to mention them explicitly. */ - -#include "config.h" +config.h, mytypes.h, and store.h, so we don't need to mention them explicitly. +*/ #include "local_scan.h" #include "macros.h" @@ -410,8 +454,8 @@ mytypes.h and store.h, so we don't need to mention them explicitly. */ #ifdef EXPERIMENTAL_SRS #include "srs.h" #endif -#ifdef EXPERIMENTAL_DOMAINKEYS -#include "dk.h" +#ifndef DISABLE_DKIM +#include "dkim.h" #endif /* The following stuff must follow the inclusion of config.h because it @@ -421,10 +465,16 @@ requires various things that are set therein. */ #include #endif -#if defined(USE_READLINE) || defined(EXPAND_DLFUNC) +#if defined(USE_READLINE) || defined(EXPAND_DLFUNC) || defined (LOOKUP_MODULE_DIR) #include #endif +#ifdef ENABLE_DISABLE_FSYNC +#define EXIMfsync(f) (disable_fsync? 0 : fsync(f)) +#else +#define EXIMfsync(f) fsync(f) +#endif + /* Backward compatibility; LOOKUP_LSEARCH now includes all three */ #if (!defined LOOKUP_LSEARCH) && (defined LOOKUP_WILDLSEARCH || defined LOOKUP_NWILDLSEARCH) @@ -432,13 +482,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 @@ -486,5 +538,4 @@ default to EDQUOT if it exists, otherwise ENOSPC. */ #endif #endif - /* End of exim.h */