X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/9614a79a3fa1dde3f72c92c7638b590457e84240..dd9ac646fe6c458b02f19e58981a1344fe2a5c19:/src/OS/unsupported/os.h-Darwin diff --git a/src/OS/unsupported/os.h-Darwin b/src/OS/unsupported/os.h-Darwin new file mode 100644 index 000000000..a85e92f05 --- /dev/null +++ b/src/OS/unsupported/os.h-Darwin @@ -0,0 +1,64 @@ +/* Exim: OS-specific C header file for Darwin (Mac OS X) */ + +/* #define CRYPT_H */ /* Apparently this isn't needed */ + +#define HAVE_MMAP +#define HAVE_SYS_MOUNT_H +#define PAM_H_IN_PAM +#define SIOCGIFCONF_GIVES_ADDR +#define EXIM_HAVE_OPENAT + + +#define F_FREESP O_TRUNC +typedef struct flock flock_t; + +#define BASE_62 36 /* HFS+ aliases lower and upper cases in filenames. + Consider reducing MAX_LOCALHOST_NUMBER */ + +#ifndef _BSD_SOCKLEN_T_ +# define _BSD_SOCKLEN_T_ int32_t /* socklen_t (duh) */ +#endif + +/* Settings for handling IP options. There's no netinet/ip_var.h. The IP +option handling is in the style of the later GLIBCs but the GLIBC macros +aren't set, so we invent a new one. */ + +#define NO_IP_VAR_H +#define DARWIN_IP_OPTIONS + +/* Need this for the DNS lookup code. Remember to remove if we get round to +updating Exim to use the newer interface. */ + +#define BIND_8_COMPAT + +/* It's not .so for dynamic libraries on Darwin. */ +#define DYNLIB_FN_EXT "dylib" + +/* We currently need some assistance getting OFF_T_FMT correct on MacOS */ +#ifdef OFF_T_FMT +# undef OFF_T_FMT +#endif +#define OFF_T_FMT "%lld" +#define LONGLONG_T long int + +/* default is non-const */ +#define ICONV_ARG2_TYPE const char ** + +/* seems arpa/nameser.h does not define this */ +#define NS_MAXMSG 65535 + +/* There may be very many supplementary groups for the user. See notes +in "man 2 getgroups". */ +#define _DARWIN_UNLIMITED_GETGROUPS +#define EXIM_GROUPLIST_SIZE 64 + +/* TCP Fast Open: Darwin uses a connectx() call +rather than a modified sendto() */ +#define EXIM_TFO_CONNECTX + +/* MacOS, at least on the buildfarm animal, does not seem to push out +the SMTP response to QUIT with our usual handling which is trying to get +the client to FIN first so that the server does not get the TIME_WAIT */ +#define SERVERSIDE_CLOSE_NOWAIT + +/* End */