1 /* Exim: OS-specific C header file for Darwin (Mac OS X) */
3 /* #define CRYPT_H */ /* Apparently this isn't needed */
6 #define HAVE_SYS_MOUNT_H
8 #define SIOCGIFCONF_GIVES_ADDR
9 #define EXIM_HAVE_OPENAT
12 #define F_FREESP O_TRUNC
13 typedef struct flock flock_t;
15 #define BASE_62 36 /* HFS+ aliases lower and upper cases in filenames.
16 Consider reducing MAX_LOCALHOST_NUMBER */
18 #ifndef _BSD_SOCKLEN_T_
19 # define _BSD_SOCKLEN_T_ int32_t /* socklen_t (duh) */
22 /* Settings for handling IP options. There's no netinet/ip_var.h. The IP
23 option handling is in the style of the later GLIBCs but the GLIBC macros
24 aren't set, so we invent a new one. */
27 #define DARWIN_IP_OPTIONS
29 /* Need this for the DNS lookup code. Remember to remove if we get round to
30 updating Exim to use the newer interface. */
34 /* It's not .so for dynamic libraries on Darwin. */
35 #define DYNLIB_FN_EXT "dylib"
37 /* We currently need some assistance getting OFF_T_FMT correct on MacOS */
41 #define OFF_T_FMT "%lld"
42 #define LONGLONG_T long int
44 /* default is non-const */
45 #define ICONV_ARG2_TYPE const char **
47 /* seems arpa/nameser.h does not define this */
48 #define NS_MAXMSG 65535
50 /* There may be very many supplementary groups for the user. See notes
51 in "man 2 getgroups". */
52 #define _DARWIN_UNLIMITED_GETGROUPS
53 #define EXIM_GROUPLIST_SIZE 64
55 /* TCP Fast Open: Darwin uses a connectx() call
56 rather than a modified sendto() */
57 #define EXIM_TFO_CONNECTX
59 /* MacOS, at least on the buildfarm animal, does not seem to push out
60 the SMTP response to QUIT with our usual handling which is trying to get
61 the client to FIN first so that the server does not get the TIME_WAIT */
62 #define SERVERSIDE_CLOSE_NOWAIT