X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/f2ed27cf5f913cc437401c7e005c2886b7dc1a55..1a2e76e1676bf405a464a233950a95012533c227:/src/src/macro_predef.c diff --git a/src/src/macro_predef.c b/src/src/macro_predef.c index 6b3157fbe..e96fef938 100644 --- a/src/src/macro_predef.c +++ b/src/src/macro_predef.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) Jeremy Harris 2017 */ +/* Copyright (c) Jeremy Harris 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* Create a static data structure with the predefined macros, to be @@ -21,7 +21,7 @@ uschar * syslog_facility_str; /******************************************************************************/ void -builtin_macro_create(const uschar * name) +builtin_macro_create_var(const uschar * name, const uschar * val) { printf ("static macro_item p%d = { ", mp_index); if (mp_index == 0) @@ -29,12 +29,21 @@ if (mp_index == 0) else printf(".next=&p%d,", mp_index-1); -printf(" .command_line=FALSE, .namelen=%d, .replen=1," - " .name=US\"%s\", .replacement=US\"y\" };\n", - Ustrlen(name), CS name); +printf(" .command_line=FALSE, .namelen=%d, .replen=%d," + " .name=US\"%s\", .replacement=US\"%s\" };\n", + Ustrlen(name), Ustrlen(val), CS name, CS val); mp_index++; } + +void +builtin_macro_create(const uschar * name) +{ +builtin_macro_create_var(name, US"y"); +} + + +/* restricted snprintf */ void spf(uschar * buf, int len, const uschar * fmt, ...) { @@ -61,7 +70,6 @@ void options_from_list(optionlist * opts, unsigned nopt, const uschar * section, uschar * group) { -int i; const uschar * s; uschar buf[64]; @@ -72,7 +80,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); @@ -118,7 +126,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"); @@ -138,6 +146,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 @@ -150,6 +161,9 @@ due to conflicts with other common macros. */ #ifndef DISABLE_OCSP builtin_macro_create(US"_HAVE_OCSP"); #endif +#ifdef SUPPORT_PIPE_CONNECT + builtin_macro_create(US"_HAVE_PIPE_CONNECT"); +#endif #ifndef DISABLE_PRDR builtin_macro_create(US"_HAVE_PRDR"); #endif @@ -165,27 +179,30 @@ due to conflicts with other common macros. */ #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 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 +#ifdef EXPERIMENTAL_TLS_RESUME + builtin_macro_create(US"_HAVE_TLS_RESUME"); +#endif #ifdef LOOKUP_LSEARCH builtin_macro_create(US"_HAVE_LOOKUP_LSEARCH"); @@ -205,6 +222,9 @@ due to conflicts with other common macros. */ #ifdef LOOKUP_IBASE builtin_macro_create(US"_HAVE_LOOKUP_IBASE"); #endif +#ifdef LOOKUP_LDAP + builtin_macro_create(US"_HAVE_LOOKUP_JSON"); +#endif #ifdef LOOKUP_LDAP builtin_macro_create(US"_HAVE_LOOKUP_LDAP"); #endif @@ -253,6 +273,12 @@ due to conflicts with other common macros. */ builtin_macro_create(US"_HAVE_TRANSPORT_APPEND_MBX"); # endif #endif + +#ifdef WITH_CONTENT_SCAN +features_malware(); +#endif + +features_crypto(); } @@ -263,6 +289,18 @@ options_main(); options_routers(); options_transports(); options_auths(); +options_logging(); +#ifndef DISABLE_TLS +options_tls(); +#endif +} + +static void +params(void) +{ +#ifndef DISABLE_DKIM +params_dkim(); +#endif } @@ -272,6 +310,7 @@ main(void) printf("#include \"exim.h\"\n"); features(); options(); +params(); printf("macro_item * macros = &p%d;\n", mp_index-1); printf("macro_item * mlast = &p0;\n");