X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fmacro_predef.c;h=757b375630b9a8125dc8006ad18d915d8849b9a0;hb=780ea2a5cc313ee12c0ad7823b03feae17c3b08b;hp=ba1934885b4d6cdefcb105a1c6be68a3d24c08c1;hpb=215e8e5fd8ac4478650cedde8d00dd529081938f;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/macro_predef.c b/src/src/macro_predef.c index ba1934885..757b37563 100644 --- a/src/src/macro_predef.c +++ b/src/src/macro_predef.c @@ -2,7 +2,8 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) Jeremy Harris 2017 */ +/* Copyright (c) Jeremy Harris 1995 - 2018 */ +/* Copyright (c) The Exim Maintainers 2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* Create a static data structure with the predefined macros, to be @@ -43,6 +44,7 @@ builtin_macro_create_var(name, US"y"); } +/* restricted snprintf */ void spf(uschar * buf, int len, const uschar * fmt, ...) { @@ -69,9 +71,8 @@ void options_from_list(optionlist * opts, unsigned nopt, const uschar * section, uschar * group) { -int i; const uschar * s; -uschar buf[64]; +uschar buf[EXIM_DRIVERNAME_MAX]; /* The 'previously-defined-substring' rule for macros in config file lines is done thus for these builtin macros: we know that the table @@ -80,7 +81,7 @@ of the macros list is in reverse-alpha (we prepend them) - so longer macros that have substrings are always discovered first during expansion. */ -for (i = 0; i < nopt; i++) if (*(s = US opts[i].name) && *s != '*') +for (int i = 0; i < nopt; i++) if (*(s = US opts[i].name) && *s != '*') { if (group) spf(buf, sizeof(buf), CUS"_OPT_%T_%T_%T", section, group, s); @@ -126,7 +127,7 @@ due to conflicts with other common macros. */ #ifdef USE_TCP_WRAPPERS builtin_macro_create(US"_HAVE_TCPWRAPPERS"); #endif -#ifdef SUPPORT_TLS +#ifndef DISABLE_TLS builtin_macro_create(US"_HAVE_TLS"); # ifdef USE_GNUTLS builtin_macro_create(US"_HAVE_GNUTLS"); @@ -146,6 +147,9 @@ due to conflicts with other common macros. */ #ifndef DISABLE_DKIM builtin_macro_create(US"_HAVE_DKIM"); #endif +#ifdef SUPPORT_DMARC + builtin_macro_create(US"_HAVE_DMARC"); +#endif #ifndef DISABLE_DNSSEC builtin_macro_create(US"_HAVE_DNSSEC"); #endif @@ -158,6 +162,9 @@ due to conflicts with other common macros. */ #ifndef DISABLE_OCSP builtin_macro_create(US"_HAVE_OCSP"); #endif +#ifndef DISABLE_PIPE_CONNECT + builtin_macro_create(US"_HAVE_PIPE_CONNECT"); +#endif #ifndef DISABLE_PRDR builtin_macro_create(US"_HAVE_PRDR"); #endif @@ -167,33 +174,36 @@ due to conflicts with other common macros. */ #ifdef SUPPORT_SOCKS builtin_macro_create(US"_HAVE_SOCKS"); #endif +#if defined(SUPPORT_SRS) + builtin_macro_create(US"_HAVE_NATIVE_SRS"); /* beware clash with _HAVE_SRS */ +#endif #ifdef TCP_FASTOPEN builtin_macro_create(US"_HAVE_TCP_FASTOPEN"); #endif -#ifdef EXPERIMENTAL_LMDB - builtin_macro_create(US"_HAVE_LMDB"); -#endif -#ifdef EXPERIMENTAL_SPF +#ifdef SUPPORT_SPF builtin_macro_create(US"_HAVE_SPF"); #endif -#ifdef EXPERIMENTAL_SRS +#if defined(EXPERIMENTAL_SRS_ALT) || defined(SUPPORT_SRS) builtin_macro_create(US"_HAVE_SRS"); #endif +#ifdef EXPERIMENTAL_ARC + builtin_macro_create(US"_HAVE_ARC"); +#endif #ifdef EXPERIMENTAL_BRIGHTMAIL builtin_macro_create(US"_HAVE_BRIGHTMAIL"); #endif -#ifdef EXPERIMENTAL_DANE +#ifdef SUPPORT_DANE builtin_macro_create(US"_HAVE_DANE"); #endif #ifdef EXPERIMENTAL_DCC builtin_macro_create(US"_HAVE_DCC"); #endif -#ifdef EXPERIMENTAL_DMARC - builtin_macro_create(US"_HAVE_DMARC"); -#endif #ifdef EXPERIMENTAL_DSN_INFO builtin_macro_create(US"_HAVE_DSN_INFO"); #endif +#ifndef DISABLE_TLS_RESUME + builtin_macro_create(US"_HAVE_TLS_RESUME"); +#endif #ifdef LOOKUP_LSEARCH builtin_macro_create(US"_HAVE_LOOKUP_LSEARCH"); @@ -213,6 +223,13 @@ due to conflicts with other common macros. */ #ifdef LOOKUP_IBASE builtin_macro_create(US"_HAVE_LOOKUP_IBASE"); #endif +#ifdef LOOKUP_LMDB + builtin_macro_create(US"_HAVE_LMDB"); + builtin_macro_create(US"_HAVE_LOOKUP_LMDB"); +#endif +#ifdef LOOKUP_LDAP + builtin_macro_create(US"_HAVE_LOOKUP_JSON"); +#endif #ifdef LOOKUP_LDAP builtin_macro_create(US"_HAVE_LOOKUP_LDAP"); #endif @@ -261,6 +278,39 @@ due to conflicts with other common macros. */ builtin_macro_create(US"_HAVE_TRANSPORT_APPEND_MBX"); # endif #endif + +features_acl(); +features_crypto(); + +#ifdef WITH_CONTENT_SCAN +features_malware(); +#endif +} + +static void +exp_features(void) +{ +#ifdef EXPERIMENTAL_ARC + builtin_macro_create(US"_EXP_ARC"); +#endif +#ifdef EXPERIMENTAL_BRIGHTMAIL + builtin_macro_create(US"_EXP_BMI"); +#endif +#ifdef EXPERIMENTAL_DCC + builtin_macro_create(US"_EXP_DCC"); +#endif +#ifdef EXPERIMENTAL_DSN_INFO + builtin_macro_create(US"_EXP_DSNI"); +#endif +#ifdef EXPERIMENTAL_ESMTP_LIMITS + builtin_macro_create(US"_EXP_LIMITS"); +#endif +#ifdef EXPERIMENTAL_QUEUEFILE + builtin_macro_create(US"_EXP_QUEUEFILE"); +#endif +#if defined(EXPERIMENTAL_SRS_ALT) + builtin_macro_create(US"_EXP_SRS"); +#endif } @@ -271,13 +321,17 @@ options_main(); options_routers(); options_transports(); options_auths(); +options_logging(); +#ifndef DISABLE_TLS +options_tls(); +#endif } static void params(void) { #ifndef DISABLE_DKIM -dkim_params(); +params_dkim(); #endif } @@ -287,6 +341,7 @@ main(void) { printf("#include \"exim.h\"\n"); features(); +exp_features(); options(); params();