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