Testsuite: fix munging for ipv6 dns
[exim.git] / src / src / macro_predef.c
index 84a33282dd0521b1b2d819cc025229cc71b6e3c5..9b354d345f57e34d81654548775f5775407d3b01 100644 (file)
@@ -2,8 +2,10 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
+/* Copyright (c) The Exim Maintainers 2020 - 2023 */
 /* Copyright (c) Jeremy Harris 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
 
 /* Create a static data structure with the predefined macros, to be
 included in the main Exim build */
@@ -71,7 +73,7 @@ options_from_list(optionlist * opts, unsigned nopt,
   const uschar * section, uschar * group)
 {
 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
@@ -117,6 +119,12 @@ due to conflicts with other common macros. */
 #ifdef SUPPORT_PAM
   builtin_macro_create(US"_HAVE_PAM");
 #endif
+#ifdef RADIUS_CONFIG_FILE
+  builtin_macro_create(US"_HAVE_RADIUS");
+#endif
+#ifdef CYRUS_PWCHECK_SOCKET
+  builtin_macro_create(US"_HAVE_PWCHECK");
+#endif
 #ifdef EXIM_PERL
   builtin_macro_create(US"_HAVE_PERL");
 #endif
@@ -126,7 +134,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,9 +154,15 @@ 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
+#ifndef DISABLE_ESMTP_LIMITS
+  builtin_macro_create(US"_HAVE_ESMTP_LIMITS");
+#endif
 #ifndef DISABLE_EVENT
   builtin_macro_create(US"_HAVE_EVENT");
 #endif
@@ -158,6 +172,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,16 +184,16 @@ 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 SUPPORT_SPF
   builtin_macro_create(US"_HAVE_SPF");
 #endif
-#ifdef EXPERIMENTAL_SRS
+#ifdef SUPPORT_SRS
   builtin_macro_create(US"_HAVE_SRS");
 #endif
 #ifdef EXPERIMENTAL_ARC
@@ -191,17 +208,14 @@ due to conflicts with other common macros. */
 #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_REQUIRETLS
-  builtin_macro_create(US"_HAVE_REQTLS");
+#ifndef DISABLE_TLS_RESUME
+  builtin_macro_create(US"_HAVE_TLS_RESUME");
 #endif
-#ifdef EXPERIMENTAL_PIPE_CONNECT
-  builtin_macro_create(US"_HAVE_PIPE_CONNECT");
+#ifdef EXPERIMENTAL_XCLIENT
+  builtin_macro_create(US"_HAVE_XCLIENT");
 #endif
 
 #ifdef LOOKUP_LSEARCH
@@ -222,11 +236,15 @@ 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_LDAP");
+  builtin_macro_create(US"_HAVE_LOOKUP_JSON");
 #endif
-#ifdef EXPERIMENTAL_LMDB
-  builtin_macro_create(US"_HAVE_LOOKUP_LMDB");
+#ifdef LOOKUP_LDAP
+  builtin_macro_create(US"_HAVE_LOOKUP_LDAP");
 #endif
 #ifdef LOOKUP_MYSQL
   builtin_macro_create(US"_HAVE_LOOKUP_MYSQL");
@@ -271,11 +289,32 @@ due to conflicts with other common macros. */
 # endif
 #endif
 
+features_acl();
+features_crypto();
+
 #ifdef WITH_CONTENT_SCAN
 features_malware();
 #endif
+}
 
-features_crypto();
+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_QUEUEFILE
+  builtin_macro_create(US"_EXP_QUEUEFILE");
+#endif
 }
 
 
@@ -287,7 +326,7 @@ options_routers();
 options_transports();
 options_auths();
 options_logging();
-#if defined(SUPPORT_TLS) && !defined(USE_GNUTLS)
+#ifndef DISABLE_TLS
 options_tls();
 #endif
 }
@@ -306,7 +345,9 @@ main(void)
 {
 printf("#include \"exim.h\"\n");
 features();
+exp_features();
 options();
+expansions();
 params();
 
 printf("macro_item * macros = &p%d;\n", mp_index-1);