Reduce delivery process startup time
[exim.git] / src / src / expand.c
index 205ac33f09838674f9b215bdda5712dd25be388c..8be10c14f4bc4645693ffbddeaa59ba87c1d6bee 100644 (file)
@@ -530,7 +530,7 @@ static var_entry var_table[] = {
   { "dkim_verify_reason",  vtype_stringptr,   &dkim_verify_reason },
   { "dkim_verify_status",  vtype_stringptr,   &dkim_verify_status },
 #endif
-#ifdef EXPERIMENTAL_DMARC
+#ifdef SUPPORT_DMARC
   { "dmarc_domain_policy", vtype_stringptr,   &dmarc_domain_policy },
   { "dmarc_status",        vtype_stringptr,   &dmarc_status },
   { "dmarc_status_text",   vtype_stringptr,   &dmarc_status_text },
@@ -4390,7 +4390,7 @@ while (*s != 0)
 #ifndef DISABLE_DKIM
       yield = authres_dkim(yield);
 #endif
-#ifdef EXPERIMENTAL_DMARC
+#ifdef SUPPORT_DMARC
       yield = authres_dmarc(yield);
 #endif
 #ifdef EXPERIMENTAL_ARC
@@ -5200,7 +5200,7 @@ while (*s != 0)
 #endif
 
        /* Allow sequencing of test actions */
-       if (f.running_in_test_harness) millisleep(100);
+       testharness_pause_ms(100);
 
         /* Write the request string, if not empty or already done */
 
@@ -5228,7 +5228,7 @@ while (*s != 0)
        if (!do_tls && do_shutdown) shutdown(cctx.sock, SHUT_WR);
 #endif
 
-       if (f.running_in_test_harness) millisleep(100);
+       testharness_pause_ms(100);
 
         /* Now we need to read from the socket, under a timeout. The function
         that reads a file can be used. */
@@ -7206,11 +7206,12 @@ while (*s != 0)
         uschar * t = parse_extract_address(sub, &error, &start, &end, &domain,
           FALSE);
         if (t)
-         yield = c == EOP_DOMAIN
-           ? string_cat(yield, t + domain)
-           : c == EOP_LOCAL_PART && domain > 0
-           ? string_catn(yield, t, domain - 1 )
-           : string_cat(yield, t);
+         if (c != EOP_DOMAIN)
+           yield = c == EOP_LOCAL_PART && domain > 0
+             ? string_catn(yield, t, domain - 1)
+             : string_cat(yield, t);
+         else if (domain > 0)
+           yield = string_cat(yield, t + domain);
         continue;
         }