CVE-2020-28025: Heap out-of-bounds read in pdkim_finish_bodyhash()
[exim.git] / src / OS / os.h-Darwin
1 /* Exim: OS-specific C header file for Darwin (Mac OS X) */
2
3 /* #define CRYPT_H */  /* Apparently this isn't needed */
4
5 #define HAVE_MMAP
6 #define HAVE_SYS_MOUNT_H
7 #define PAM_H_IN_PAM
8 #define SIOCGIFCONF_GIVES_ADDR
9 #define EXIM_HAVE_OPENAT
10
11
12 #define F_FREESP     O_TRUNC
13 typedef struct flock flock_t;
14
15 #define BASE_62 36  /* HFS+ aliases lower and upper cases in filenames.
16                                Consider reducing MAX_LOCALHOST_NUMBER */
17
18 #ifndef        _BSD_SOCKLEN_T_
19 # define _BSD_SOCKLEN_T_ int32_t                 /* socklen_t (duh) */
20 #endif
21
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. */
25
26 #define NO_IP_VAR_H
27 #define DARWIN_IP_OPTIONS
28
29 /* Need this for the DNS lookup code. Remember to remove if we get round to
30 updating Exim to use the newer interface. */
31
32 #define BIND_8_COMPAT
33
34 /* It's not .so for dynamic libraries on Darwin. */
35 #define DYNLIB_FN_EXT "dylib"
36
37 /* We currently need some assistance getting OFF_T_FMT correct on MacOS */
38 #ifdef OFF_T_FMT
39 # undef OFF_T_FMT
40 #endif
41 #define OFF_T_FMT "%lld"
42 #define LONGLONG_T long int
43
44 /* default is non-const */
45 #define ICONV_ARG2_TYPE const char **
46
47 /* seems arpa/nameser.h does not define this */
48 #define NS_MAXMSG 65535
49
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
54
55 /* TCP Fast Open: Darwin uses a connectx() call
56 rather than a modified sendto() */
57 #define EXIM_TFO_CONNECTX
58
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
63
64 /* End */