[exim-cvs] Debug: fix showing option name for list (vs. list…

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Exim Git Commits Mailing List
Datum:  
To: exim-cvs
Betreff: [exim-cvs] Debug: fix showing option name for list (vs. list content)
Gitweb: https://git.exim.org/exim.git/commitdiff/1d2868b2d90c230dd4ae42e6f3c7e4958ed75de5
Commit:     1d2868b2d90c230dd4ae42e6f3c7e4958ed75de5
Parent:     954e7967ad54af3b638d608873833e1fb5b6ea90
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Wed May 8 11:31:52 2024 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Thu May 9 11:40:57 2024 +0100

    Debug: fix showing option name for list (vs. list content)
    
    It's done in a hacky way (always was) and is fragile.
    Turns out, too fragile to be good.
    - some lists, we cannot match up to an option name
      eg. stderr/0002
    - some, we're falling back to comparing the list content; this gets duplicates
      and thus gives incorrect info, which is worse than no info
      (we could scan for dups, I guess?)
      Why do we get dups when we're comparing the addrs of the string?
      - mmm, do we Really get dups?
        - Yes: same option across two routers. Must be a static init for a default.
          In which case, does it being a dup matter?
          - OK, we can check router_name / transport_name
    
    Resulting testsuite sterr changes only partial, here.
    
    There's a double check on local_parts in routers (always was).  Why?
    
    One buildfarm animal (groundhog) is missing a "list element" line
    possibly associated with dnssec_request_domains.  Why?
---
 src/src/deliver.c         |    4 +-
 src/src/functions.h       |    2 +-
 src/src/macros.h          |    3 +-
 src/src/match.c           |   74 +-
 src/src/readconf.c        |  108 +-
 src/src/smtp_out.c        |    6 +-
 src/src/transports/smtp.c |    6 +-
 test/log/0630             |    2 +-
 test/paniclog/0630        |    2 +-
 test/runtest              |    2 +-
 test/stderr/0002          |    4 +
 test/stderr/0003          |   27 +-
 test/stderr/0004          |  162 ++-
 test/stderr/0020          |    2 +
 test/stderr/0021          |   12 +-
 test/stderr/0022          |   12 +-
 test/stderr/0023          |  284 +++---
 test/stderr/0037          |    8 +
 test/stderr/0041          |    8 +-
 test/stderr/0042          |   65 +-
 test/stderr/0043          |  130 ++-
 test/stderr/0044          |    4 +-
 test/stderr/0056          |   47 +-
 test/stderr/0057          |   67 +-
 test/stderr/0058          |   31 +-
 test/stderr/0059          |   35 +-
 test/stderr/0060          |  332 +++---
 test/stderr/0061          |   70 +-
 test/stderr/0062          |  119 ++-
 test/stderr/0063          |   75 +-
 test/stderr/0064          |   75 +-
 test/stderr/0065          |  288 +++---
 test/stderr/0066          |  339 ++++---
 test/stderr/0067          |  168 ++--
 test/stderr/0069          |    2 +
 test/stderr/0070          |    8 +
 test/stderr/0077          |   28 +-
 test/stderr/0078          |   11 +
 test/stderr/0085          |  122 +--
 test/stderr/0087          |  105 +-
 test/stderr/0089          |   72 +-
 test/stderr/0091          |   59 +-
 test/stderr/0092          |   24 +-
 test/stderr/0094          |   38 +-
 test/stderr/0121          |  217 ++--
 test/stderr/0124          |   27 +-
 test/stderr/0130          |   14 +-
 test/stderr/0138          |   17 +-
 test/stderr/0139          |   54 +-
 test/stderr/0143          |    5 +-
 test/stderr/0145          |   15 +-
 test/stderr/0149          |   16 +
 test/stderr/0157          |   74 +-
 test/stderr/0161          |   30 +
 test/stderr/0175          |   83 +-
 test/stderr/0183          |  350 ++++---
 test/stderr/0217          |    6 +-
 test/stderr/0218          |   36 +-
 test/stderr/0227          |   70 +-
 test/stderr/0234          |   26 +-
 test/stderr/0243          |   17 +-
 test/stderr/0249          |   17 +
 test/stderr/0251          |   54 +-
 test/stderr/0264          |    9 +
 test/stderr/0275          |   94 +-
 test/stderr/0276          |   12 +-
 test/stderr/0278          |   55 +-
 test/stderr/0279          |   22 +-
 test/stderr/0283          |    3 +
 test/stderr/0294          |    6 +
 test/stderr/0303          |    4 +
 test/stderr/0305          |   14 +-
 test/stderr/0306          |   48 +-
 test/stderr/0308          |    2 +
 test/stderr/0315          |    2 +
 test/stderr/0325          |   24 +-
 test/stderr/0332          |    2 +-
 test/stderr/0333          |    2 +-
 test/stderr/0342          |   10 +-
 test/stderr/0357          |    6 +-
 test/stderr/0358          |    4 +-
 test/stderr/0360          |    2 +
 test/stderr/0361          |   34 +-
 test/stderr/0362          |    8 +-
 test/stderr/0364          |    9 +
 test/stderr/0368          |    2 +
 test/stderr/0374          |   28 +-
 test/stderr/0375          |  105 +-
 test/stderr/0376          |  257 ++++-
 test/stderr/0377          |   55 +
 test/stderr/0378          |   13 +
 test/stderr/0379          |    5 +
 test/stderr/0380          |    1 +
 test/stderr/0381          |    4 +
 test/stderr/0382          |    2 +
 test/stderr/0388          |   22 +-
 test/stderr/0398          |   29 +-
 test/stderr/0402          |   60 +-
 test/stderr/0403          |   20 +-
 test/stderr/0404          | 2436 ++++++++++++++++++++++-----------------------
 test/stderr/0408          |    8 +-
 test/stderr/0414          |   20 +-
 test/stderr/0419          |   11 +-
 test/stderr/0426          |    4 +-
 test/stderr/0432          |   19 +-
 test/stderr/0443          |    5 +-
 test/stderr/0450          |    6 +-
 test/stderr/0462          |   12 +-
 test/stderr/0463          |   18 +-
 test/stderr/0464          |   16 +-
 test/stderr/0467          |    3 +-
 test/stderr/0469          |    5 +-
 test/stderr/0473          |    8 +-
 test/stderr/0475          |    2 +-
 test/stderr/0476          |    6 +-
 test/stderr/0483          |    1 +
 test/stderr/0499          |    4 +-
 test/stderr/0512          |   22 +-
 test/stderr/0513          |    5 +-
 test/stderr/0525          |    3 +-
 test/stderr/0543          |    2 +-
 test/stderr/0544          |    4 +
 test/stderr/0545          |   15 +-
 test/stderr/0554          |    4 +-
 test/stderr/0563          |    8 +-
 test/stderr/0578          |  257 ++++-
 test/stderr/0584          |   12 +-
 test/stderr/0588          |   10 +-
 test/stderr/0609          |    2 +
 test/stderr/0623          |   12 +-
 test/stderr/0630          |    4 +-
 test/stderr/0632          |    4 +
 test/stderr/0909          |   20 +-
 test/stderr/1000          |    2 +
 test/stderr/1006          |    3 +
 test/stderr/1150          |    9 +-
 test/stderr/1157          |   16 +-
 test/stderr/1160          |    9 +-
 test/stderr/2135          |    4 +-
 test/stderr/2201          |   33 +-
 test/stderr/2202          |    2 +
 test/stderr/2600          |   12 +-
 test/stderr/2610          |    8 +-
 test/stderr/2620          |   16 +-
 test/stderr/3208          |  120 ++-
 test/stderr/3210          |    6 +-
 test/stderr/3211          |   16 +-
 test/stderr/3400          |  240 +++--
 test/stderr/3404          |    9 +-
 test/stderr/3408          |   13 +-
 test/stderr/3500          |   48 +-
 test/stderr/4052          |    5 +-
 test/stderr/4510          |    3 +-
 test/stderr/4530          |    4 +-
 test/stderr/5204          |   53 +-
 test/stderr/5403          |   27 +-
 test/stderr/5410          |   60 +-
 test/stderr/5840          |   12 +-
 158 files changed, 5413 insertions(+), 3430 deletions(-)

diff --git a/src/src/deliver.c b/src/src/deliver.c
index 43ac7fd41..f3c9203e4 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -903,6 +903,7 @@ const uschar * save_domain = deliver_domain;
 const uschar * save_local =  deliver_localpart;
 const uschar * save_host = deliver_host;
 const uschar * save_address = deliver_host_address;
+uschar * save_rn = router_name, * save_tn = transport_name;
 const int      save_port =   deliver_host_port;
 
 router_name =    addr->router ? addr->router->name : NULL;
@@ -939,7 +940,8 @@ deliver_host_address = save_address;
 deliver_host =      save_host;
 deliver_localpart = save_local;
 deliver_domain =    save_domain;
-router_name = transport_name = NULL;
+router_name = save_rn;
+router_name = save_tn;
 }
 #endif    /*DISABLE_EVENT*/
 
diff --git a/src/src/functions.h b/src/src/functions.h
index 9407b44df..08fa24f3d 100644
--- a/src/src/functions.h
+++ b/src/src/functions.h
@@ -427,7 +427,7 @@ extern int     rda_is_filter(const uschar *);
 extern BOOL    readconf_depends(driver_instance *, uschar *);
 extern void    readconf_driver_init(uschar *, driver_instance **,
                  driver_info *, int, void *, int, optionlist *, int);
-extern uschar *readconf_find_option(void *);
+extern const uschar *readconf_find_option(void *);
 extern void    readconf_main(BOOL);
 extern void    readconf_options_from_list(optionlist *, unsigned, const uschar *, uschar *);
 extern BOOL    readconf_print(const uschar *, const uschar *, BOOL);
diff --git a/src/src/macros.h b/src/src/macros.h
index 3341f5f41..2938b2523 100644
--- a/src/src/macros.h
+++ b/src/src/macros.h
@@ -1195,7 +1195,8 @@ When doing en extended loop of matching, release store periodically. */
 
 #define    REGEX_LOOPCOUNT_STORE_RESET    1000
 
-/* Debug an option access. Use for non-list ones about to be expanded. */
+/* Debug an option access. Use for non-list ones about to be expanded
+(lists have their own debugging, under D_list). */
 #define GET_OPTION(name) \
   DEBUG(D_expand) debug_printf("try option " name "\n");
 
diff --git a/src/src/match.c b/src/src/match.c
index 2cb499359..4b128a609 100644
--- a/src/src/match.c
+++ b/src/src/match.c
@@ -437,18 +437,19 @@ BOOL textonly_re;
 
 /* Save time by not scanning for the option name when we don't need it. */
 
-HDEBUG(D_any)
+HDEBUG(D_any)    /* always give the query.  Give results only for D_lists */
   {
-  uschar * listname = readconf_find_option(listptr);
+  const uschar * listname = readconf_find_option(listptr);
   if (*listname) ot = string_sprintf("%s in %s?", name, listname);
   }
 
-/* If the list is empty, the answer is no. Skip the debugging output for
-an unnamed list. */
+/* If the list is empty, the answer is no. */
 
 if (!*listptr)
   {
-  HDEBUG(D_lists) if (ot) debug_printf_indent("%s no (option unset)\n", ot);
+  HDEBUG(D_lists)
+    if (ot) debug_printf_indent("%s no (option unset)\n", ot);
+    else    debug_printf_indent("%s not in empty list (option unset? cannot trace name)\n", name);
   return FAIL;
   }
 
@@ -505,7 +506,7 @@ if (textonly_re) switch (type)
 #define LIST_LIMIT_PR 2048
 
 HDEBUG(D_any) if (!ot)
-  {
+  {    /* We failed to identify an option name, so give the list text */
   int n, m;
   gstring * g = string_fmt_append(NULL, "%s in \"%n%.*s%n\"",
     name, &n, LIST_LIMIT_PR, list, &m);
@@ -527,7 +528,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
   {
   uschar * ss = sss;
 
-  HDEBUG(D_lists) debug_printf_indent("list element: %s\n", ss);
+  HDEBUG(D_lists) debug_printf_indent("list element: %W\n", ss);
 
   /* Address lists may contain +caseful, to restore caseful matching of the
   local part. We have to know the layout of the control block, unfortunately.
@@ -618,7 +619,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
       namedlist_block * nb;
       tree_node * t;
 
-      DEBUG(D_lists)
+      HDEBUG(D_lists)
     { debug_printf_indent(" start sublist %s\n", ss+1); expand_level += 2; }
 
       if (!(t = tree_search(*anchorptr, ss+1)))
@@ -655,7 +656,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
         {
         int res = match_check_list(&(nb->string), 0, anchorptr, &use_cache_bits,
                 func, arg, type, name, valueptr);
-    DEBUG(D_lists)
+    HDEBUG(D_lists)
       { expand_level -= 2; debug_printf_indent(" end sublist %s\n", ss+1); }
 
         switch (res)
@@ -695,7 +696,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
             p->next = nb->cache_data;
             nb->cache_data = p;
             if (*valueptr)
-              DEBUG(D_lists) debug_printf_indent("data from lookup saved for "
+              HDEBUG(D_lists) debug_printf_indent("data from lookup saved for "
                 "cache for %s: key '%s' value '%s'\n", ss, p->key, *valueptr);
             }
           }
@@ -707,7 +708,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
 
       else
         {
-        DEBUG(D_lists)
+        HDEBUG(D_lists)
       {
       expand_level -= 2;
       debug_printf_indent("cached %s match for %s\n",
@@ -725,7 +726,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
               *valueptr = p->data;
               break;
               }
-          DEBUG(D_lists) debug_printf_indent("cached lookup data = %s\n", *valueptr);
+          HDEBUG(D_lists) debug_printf_indent("cached lookup data = %s\n", *valueptr);
           }
         }
 
@@ -749,7 +750,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
         {
         case OK:
       HDEBUG(D_lists) debug_printf_indent("%s %s (matched \"%s\")\n", ot,
-        (yield == OK)? "yes" : "no", sss);
+        yield == OK ? "yes" : "no", sss);
       goto YIELD_RETURN;
 
         case DEFER:
@@ -757,8 +758,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
         error = string_sprintf("DNS lookup of \"%s\" deferred", ss);
       if (ignore_defer)
         {
-        HDEBUG(D_lists) debug_printf_indent("%s: item ignored by +ignore_defer\n",
-          error);
+        HDEBUG(D_lists)
+          debug_printf_indent("%s: item ignored by +ignore_defer\n", error);
         break;
         }
       if (include_defer)
@@ -777,8 +778,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
         case ERROR:
       if (ignore_unknown)
         {
-        HDEBUG(D_lists) debug_printf_indent("%s: item ignored by +ignore_unknown\n",
-          error);
+        HDEBUG(D_lists) debug_printf_indent(
+          "%s: item ignored by +ignore_unknown\n", error);
         }
       else
         {
@@ -812,8 +813,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
 
     if (!f)
       {
-      uschar * listname = readconf_find_option(listptr);
-      if (listname[0] == 0)
+      const uschar * listname = readconf_find_option(listptr);
+      if (!*listname)
         listname = string_sprintf("\"%s\"", *listptr);
       log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s",
         string_open_failed("%s when checking %s", sss, listname));
@@ -859,8 +860,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
         {
         case OK:
       (void)fclose(f);
-      HDEBUG(D_lists) debug_printf_indent("%s %s (matched \"%s\" in %s)\n", ot,
-        yield == OK ? "yes" : "no", sss, filename);
+      HDEBUG(D_lists) debug_printf_indent("%s %s (matched \"%s\" in %s)\n",
+        ot, yield == OK ? "yes" : "no", sss, filename);
 
       /* The "pattern" being matched came from the file; we use a stack-local.
       Copy it to allocated memory now we know it matched. */
@@ -874,8 +875,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
         error = string_sprintf("DNS lookup of %s deferred", ss);
       if (ignore_defer)
         {
-        HDEBUG(D_lists) debug_printf_indent("%s: item ignored by +ignore_defer\n",
-          error);
+        HDEBUG(D_lists)
+          debug_printf_indent("%s: item ignored by +ignore_defer\n", error);
         break;
         }
       (void)fclose(f);
@@ -892,13 +893,13 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
         case ERROR:
       if (ignore_unknown)
         {
-        HDEBUG(D_lists) debug_printf_indent("%s: item ignored by +ignore_unknown\n",
-          error);
+        HDEBUG(D_lists) debug_printf_indent(
+          "%s: item ignored by +ignore_unknown\n", error);
         }
       else
         {
         HDEBUG(D_lists) debug_printf_indent("%s %s (%s)\n", ot,
-          include_unknown? "yes":"no", error);
+          include_unknown ? "yes":"no", error);
         (void)fclose(f);
         if (!include_unknown)
           {
@@ -922,20 +923,19 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
 
 /* End of list reached: if the last item was negated yield OK, else FAIL. */
 
-HDEBUG(D_lists)
-  HDEBUG(D_lists)
-    {
-    expand_level--;
-    debug_printf_indent("%s %s (end of list)\n", ot, yield == OK ? "no":"yes");
-    }
-  return yield == OK ? FAIL : OK;
-
+HDEBUG(D_any)
+  {
+  HDEBUG(D_lists) expand_level--;
+  debug_printf_indent("%s %s (end of list)\n", ot, yield == OK ? "no":"yes");
+  }
+return yield == OK ? FAIL : OK;
+ 
 /* Something deferred */
 
 DEFER_RETURN:
-  HDEBUG(D_lists)
+  HDEBUG(D_any)
     {
-    expand_level--;
+    HDEBUG(D_lists) expand_level--;
     debug_printf_indent("%s list match deferred for %s\n", ot, sss);
     }
   return DEFER;
@@ -1390,3 +1390,5 @@ return match_address_list(address, TRUE, TRUE, listptr, NULL, -1, sep, NULL);
 }
 
 /* End of match.c */
+/* vi: aw ai sw=2
+*/
diff --git a/src/src/readconf.c b/src/src/readconf.c
index 3db3bdd69..d87a56f3d 100644
--- a/src/src/readconf.c
+++ b/src/src/readconf.c
@@ -592,46 +592,104 @@ static int syslog_list_size = sizeof(syslog_list)/sizeof(syslog_fac_item);
 pointer variables in the options table or in option tables for various drivers.
 For debugging output, it is useful to be able to find the name of the option
 which is currently being processed. This function finds it, if it exists, by
-searching the table(s).
+searching the table(s) for a value with the given content.
 
 Arguments:   a value that is presumed to be in the table above
 Returns:     the option name, or an empty string
 */
 
-uschar *
-readconf_find_option(void *p)
+const uschar *
+readconf_find_option(void * listptr)
 {
-for (int i = 0; i < nelem(optionlist_config); i++)
-  if (p == optionlist_config[i].v.value) return US optionlist_config[i].name;
+uschar * list = * USS listptr;
+const uschar * name = NULL, * drname = NULL;
+
+for (optionlist * o = optionlist_config;           /* main-config options */
+     o < optionlist_config + optionlist_config_size; o++)
+  if (listptr == o->v.value)
+    return US o->name;
 
 for (router_instance * r = routers; r; r = r->next)
+  if (router_name && Ustrcmp(r->name, router_name) == 0)
   {
-  router_info *ri = r->info;
-  for (int i = 0; i < *ri->options_count; i++)
-    {
-    if ((ri->options[i].type & opt_mask) != opt_stringptr) continue;
-    if (p == CS (r->options_block) + ri->options[i].v.offset)
-      return US ri->options[i].name;
-    }
+  const router_info * ri = r->info;
+
+  /* Check for a listptr match first */
+
+  for (optionlist * o = optionlist_routers;        /* generic options */
+      o < optionlist_routers + optionlist_routers_size; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && listptr == CS r + o->v.offset)
+      return US o->name;
+
+  for (optionlist * o = ri->options;            /* private options */
+      o < ri->options + *ri->options_count; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && listptr == CS (r->options_block) + o->v.offset)
+      return US o->name;
+
+  /* Check for a list addr match, unless null */
+
+  if (!list) continue;
+
+  for (optionlist * o = optionlist_routers;        /* generic options */
+      o < optionlist_routers + optionlist_routers_size; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && list == * USS(CS r + o->v.offset))
+      if (name) return string_sprintf("DUP: %s %s vs. %s %s",
+    drname, name, r->name, o->name);
+      else { name = US o->name; drname = r->name; }
+
+  for (optionlist * o = ri->options;            /* private options */
+      o < ri->options + *ri->options_count; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && list == * USS(CS (r->options_block) + o->v.offset))
+      if (name) return string_sprintf("DUP: %s %s vs. %s %s",
+    drname, name, r->name, o->name);
+      else { name = US o->name; drname = r->name; }
   }
 
 for (transport_instance * t = transports; t; t = t->next)
+  if (transport_name && Ustrcmp(t->name, transport_name) == 0)
   {
-  transport_info *ti = t->info;
-  for (int i = 0; i < *ti->options_count; i++)
-    {
-    optionlist * op = &ti->options[i];
-    if ((op->type & opt_mask) != opt_stringptr) continue;
-    if (p == (  op->type & opt_public
-         ? CS t
-         : CS t->options_block
-         )
-         + op->v.offset)
-    return US op->name;
-    }
+  const transport_info * ti = t->info;
+
+  /* Check for a listptr match first */
+
+  for (optionlist * o = optionlist_transports;        /* generic options */
+      o < optionlist_transports + optionlist_transports_size; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && listptr == CS t + o->v.offset)
+      return US o->name;
+
+  for (optionlist * o = ti->options;            /* private options */
+      o < ti->options + *ti->options_count; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && listptr == CS t->options_block + o->v.offset)
+      return US o->name;
+
+  /* Check for a list addr match, unless null */
+
+  if (!list) continue;
+
+  for (optionlist * o = optionlist_transports;        /* generic options */
+      o < optionlist_transports + optionlist_transports_size; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && list == * USS(CS t + o->v.offset))
+      if (name) return string_sprintf("DUP: %s %s vs. %s %s",
+    drname, name, t->name, o->name);
+      else { name = US o->name; drname = t->name; }
+
+  for (optionlist * o = ti->options;            /* private options */
+      o < ti->options + *ti->options_count; o++)
+    if (  (o->type & opt_mask) == opt_stringptr
+       && list == * USS(CS t->options_block + o->v.offset))
+      if (name) return string_sprintf("DUP: %s %s vs. %s %s",
+    drname, name, t->name, o->name);
+      else { name = US o->name; drname = t->name; }
   }
 
-return US"";
+return name ? name : US"";
 }
 
 
diff --git a/src/src/smtp_out.c b/src/src/smtp_out.c
index a78b15fbd..81042003f 100644
--- a/src/src/smtp_out.c
+++ b/src/src/smtp_out.c
@@ -365,6 +365,7 @@ if (!save_errno)
   {
 #ifdef TCP_FASTOPEN
   /* See if TCP Fast Open usable.  Default is a traditional 3WHS connect */
+  expand_level++;
   if (verify_check_given_host(CUSS &ob->hosts_try_fastopen, sc->host) == OK)
     {
     if (!early_data)
@@ -380,6 +381,7 @@ if (!save_errno)
       }
 # endif
     }
+  expand_level--;
 #endif
 
   if (ip_connect(sock, sc->host_af, sc->host->address, sc->host->port, timeout, fastopen_blob) < 0)
@@ -412,7 +414,7 @@ if (!save_errno)
 
   /* Both bind() and connect() succeeded, and any early-data */
 
-  HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" connected\n");
+  HDEBUG(D_transport|D_acl|D_v) debug_printf_indent("connected\n");
   if (getsockname(sock, (struct sockaddr *)(&interface_sock), &size) == 0)
     sending_ip_address = host_ntoa(-1, &interface_sock, NULL, &sending_port);
   else
@@ -496,7 +498,7 @@ HDEBUG(D_transport|D_acl|D_v)
 #ifdef SUPPORT_SOCKS
   if (ob->socks_proxy) s = string_sprintf("%svia proxy ", s);
 #endif
-  debug_printf_indent("Connecting to %s %s%s... ", sc->host->name, callout_address, s);
+  debug_printf_indent("Connecting to %s %s%s...\n", sc->host->name, callout_address, s);
   }
 
 /* Create and connect the socket */
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index ddd6ad7e1..0338d6301 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -668,12 +668,15 @@ deferred_event_raise(address_item * addr, host_item * host, uschar * evstr)
 {
 uschar * action = addr->transport->event_action;
 const uschar * save_domain, * save_local;
+uschar * save_rn, * save_tn;
 
 if (!action)
   return;
 
 save_domain = deliver_domain;
 save_local = deliver_localpart;
+save_rn = router_name;
+save_tn = transport_name;
 
 /*XXX would ip & port already be set up? */
 deliver_host_address = string_copy(host->address);
@@ -697,7 +700,8 @@ deliver_localpart = addr->local_part;
 
 deliver_localpart = save_local;
 deliver_domain =    save_domain;
-router_name = transport_name = NULL;
+router_name = save_rn;
+router_name = save_tn;
 }
 #endif
 
diff --git a/test/log/0630 b/test/log/0630
index 23bcced31..44f3872e7 100644
--- a/test/log/0630
+++ b/test/log/0630
@@ -3,4 +3,4 @@
 1999-03-02 09:44:33 exim x.yz daemon started: pid=p1234, no queue runs, listening for SMTP on port PORT_D
 1999-03-02 09:44:33 10HmaX-000000005vi-0000 <= test_3@paniclogrouter H=(test.ex) [127.0.0.1] P=esmtp S=sss
 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Tainted filename '/dest3'
-1999-03-02 09:44:33 10HmaX-000000005vi-0000 failed to open /dest3 when checking "/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
+1999-03-02 09:44:33 10HmaX-000000005vi-0000 failed to open /dest3 when checking local_parts: Permission denied (euid=uuuu egid=EXIM_GID)
diff --git a/test/paniclog/0630 b/test/paniclog/0630
index cbfef06c1..f12f82e61 100644
--- a/test/paniclog/0630
+++ b/test/paniclog/0630
@@ -1,4 +1,4 @@
 
 ******** SERVER ********
 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Tainted filename '/dest3'
-1999-03-02 09:44:33 10HmaX-000000005vi-0000 failed to open /dest3 when checking "/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
+1999-03-02 09:44:33 10HmaX-000000005vi-0000 failed to open /dest3 when checking local_parts: Permission denied (euid=uuuu egid=EXIM_GID)
diff --git a/test/runtest b/test/runtest
index 6951536f7..cb77ab8d7 100755
--- a/test/runtest
+++ b/test/runtest
@@ -1496,7 +1496,7 @@ RESET_AFTER_EXTRA_LINE_READ:
       s/Network(?: is)? unreachable/Network Error/;
       }
     next if /^(ppppp |\d+ )?setsockopt FASTOPEN: Protocol not available$/;
-    s/^(Connecting to .* \.\.\. sending) \d+ (nonTFO early-data)$/$1 dd $2/;
+    s/^( sending) \d+ (nonTFO early-data)$/$1 dd $2/;
 
     if (/^([0-9: ]*                        # possible timestamp
     Connecting\ to\ [^ ]+\ [^ ]+(\ from\ [^ ]+)?)\ \.\.\.
diff --git a/test/stderr/0002 b/test/stderr/0002
index 593731a8d..aaa21e281 100644
--- a/test/stderr/0002
+++ b/test/stderr/0002
@@ -126,6 +126,7 @@ try option unknown_login
   ╰─────result: a.b.c
 LOG: MAIN PANIC
   no @ found in the subject of an address list match: subject="a.b.c" pattern="a.b.c"
+ a.b.c in "a.b.c"? no (end of list)
  ├──condition: match_address{a.b.c}{a.b.c}
  ├─────result: false
   ╭───scanning: yes}{no}}
@@ -278,6 +279,7 @@ try option unknown_login
   \_____result: a.b.c
 LOG: MAIN PANIC
   no @ found in the subject of an address list match: subject="a.b.c" pattern="a.b.c"
+ a.b.c in "a.b.c"? no (end of list)
  |--condition: match_address{a.b.c}{a.b.c}
  |-----result: false
   /---scanning: yes}{no}}
@@ -545,6 +547,8 @@ looking up host name for V4NET.0.0.1
 DNS lookup of 1.0.0.V4NET.in-addr.arpa (PTR) using fakens
 DNS lookup of 1.0.0.V4NET.in-addr.arpa (PTR) succeeded
 IP address lookup yielded "ten-1.test.ex"
+ ten-1.test.ex not in empty list (option unset? cannot trace name)
+ ten-1.test.ex not in empty list (option unset? cannot trace name)
 DNS lookup of ten-1.test.ex (A) using fakens
 DNS lookup of ten-1.test.ex (A) succeeded
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
diff --git a/test/stderr/0003 b/test/stderr/0003
index e8f65c376..e39281b37 100644
--- a/test/stderr/0003
+++ b/test/stderr/0003
@@ -253,9 +253,12 @@ LOG: H=(test) [1.1.1.1] F=<bY@???> rejected RCPT <x@???>

>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -281,9 +284,12 @@ LOG: H=(test) [1.1.1.1] F=<bY@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -423,9 +429,12 @@ LOG: H=(test) [1.1.1.1] F=<CC@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0004 b/test/stderr/0004
index 8da1bf2e4..d53e345cd 100644
--- a/test/stderr/0004
+++ b/test/stderr/0004
@@ -74,9 +74,12 @@ LOG: H=(test) [1.1.1.1] F=<a@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -103,9 +106,12 @@ LOG: H=(test) [1.1.1.1] F=<a@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -132,9 +138,12 @@ LOG: H=(test) [1.1.1.1] F=<a@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -161,9 +170,12 @@ LOG: H=(test) [1.1.1.1] F=<a@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -193,9 +205,12 @@ LOG: H=(test) [1.1.1.1] F=<a@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -225,9 +240,12 @@ LOG: H=(test) [1.1.1.1] F=<a@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -272,9 +290,12 @@ LOG: H=(test) [1.1.1.1] F=<ax@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -301,9 +322,12 @@ LOG: H=(test) [1.1.1.1] F=<ax@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -330,9 +354,12 @@ LOG: H=(test) [1.1.1.1] F=<ax@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -359,9 +386,12 @@ LOG: H=(test) [1.1.1.1] F=<ax@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -388,9 +418,12 @@ LOG: H=(test) [1.1.1.1] F=<ax@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -537,9 +570,12 @@ LOG: H=(test) [1.1.1.1] F=<CC@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -666,9 +702,12 @@ LOG: H=(test) [1.1.1.1] F=<Pp@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -695,9 +734,12 @@ LOG: H=(test) [1.1.1.1] F=<Pp@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -766,9 +808,12 @@ LOG: H=(test) [1.1.1.1] F=<ax@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -795,9 +840,12 @@ LOG: H=(test) [1.1.1.1] F=<ax@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -845,9 +893,12 @@ LOG: H=(test) [1.1.1.1] F=<BY@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -874,9 +925,12 @@ LOG: H=(test) [1.1.1.1] F=<BY@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0020 b/test/stderr/0020
index 5e9e4259f..4ce65efa0 100644
--- a/test/stderr/0020
+++ b/test/stderr/0020
@@ -4,6 +4,8 @@
>>> host in host_lookup? yes (matched "10.250.104.0/21")
>>> looking up host name for 10.250.104.42
>>> IP address lookup yielded "manyhome.test.ex"

+>>> manyhome.test.ex not in empty list (option unset? cannot trace name)
+>>> manyhome.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for manyhome.test.ex
>>> 10.250.107.163
>>> 10.250.109.49

diff --git a/test/stderr/0021 b/test/stderr/0021
index 59251c0b6..0799ce33f 100644
--- a/test/stderr/0021
+++ b/test/stderr/0021
@@ -83,9 +83,9 @@ ok@test1 in "ok@test1 : ok@test3"?
test1 in "test1"? yes (matched "test1")
ok@test1 in "ok@test1 : ok@test3"? yes (matched "ok@test1")
check verify = sender
-ok in "!bad"?
+ok in local_parts?
list element: !bad
-ok in "!bad"? yes (end of list)
+ok in local_parts? yes (end of list)
----------- end verify ------------
sender ok@test1 verified ok
check logwrite = :main,reject: mail accepted "$smtp_command" "$smtp_command_argument"
@@ -222,9 +222,9 @@ ok@test3 in "ok@test1 : ok@test3"?
test3 in "test3"? yes (matched "test3")
ok@test3 in "ok@test1 : ok@test3"? yes (matched "ok@test3")
check verify = sender
-ok in "!bad"?
+ok in local_parts?
list element: !bad
-ok in "!bad"? yes (end of list)
+ok in local_parts? yes (end of list)
----------- end verify ------------
sender ok@test3 verified ok
check logwrite = :main,reject: mail accepted "$smtp_command" "$smtp_command_argument"
@@ -286,9 +286,9 @@ configuration file is TESTSUITE/test-config
trusted user
admin user
dropping to exim gid; retaining priv uid
-x in "!bad"?
+x in local_parts?
list element: !bad
-x in "!bad"? yes (end of list)
+x in local_parts? yes (end of list)
LOG: MAIN
=> x <x@y> R=accept T=appendfile
LOG: MAIN
diff --git a/test/stderr/0022 b/test/stderr/0022
index ae03e7317..4592afa4d 100644
--- a/test/stderr/0022
+++ b/test/stderr/0022
@@ -379,9 +379,12 @@ LOG: H=(test) [V4NET.9.8.7] F=<x@y> rejected RCPT <host_check@y>: host data >A h
>>> check hosts = +some_hosts
>>> host in "+some_hosts"?
>>> list element: +some_hosts

->>>  host in "net-lsearch;TESTSUITE/aux-var/0022.hosts"?
->>>   list element: net-lsearch;TESTSUITE/aux-var/0022.hosts
->>>   host in "net-lsearch;TESTSUITE/aux-var/0022.hosts"? yes (matched "net-lsearch;TESTSUITE/aux-var/0022.hosts")
+>>>   start sublist some_hosts
+>>>    host in "net-lsearch;TESTSUITE/aux-var/0022.hosts"?
+>>>    ╎list element: net-lsearch;TESTSUITE/aux-var/0022.hosts
+>>>    ╎host in "net-lsearch;TESTSUITE/aux-var/0022.hosts"? yes (matched "net-lsearch;TESTSUITE/aux-var/0022.hosts")
+>>>   end sublist some_hosts
+>>>  data from lookup saved for cache for +some_hosts: key 'V4NET.9.8.7' value 'A host-specific message'

>>> host in "+some_hosts"? yes (matched "+some_hosts")
>>> deny: condition test succeeded in ACL "host_check2"
>>> end of ACL "host_check2": DENY

@@ -392,6 +395,9 @@ LOG: H=(test) [V4NET.9.8.7] F=<x@y> rejected RCPT <host_check2@y>: host data >A
>>> check hosts = +some_hosts
>>> host in "+some_hosts"?
>>> list element: +some_hosts

+>>> start sublist some_hosts
+>>> cached yes match for +some_hosts
+>>> cached lookup data = A host-specific message
>>> host in "+some_hosts"? yes (matched "+some_hosts" - cached)
>>> deny: condition test succeeded in ACL "host_check2"
>>> end of ACL "host_check2": DENY

diff --git a/test/stderr/0023 b/test/stderr/0023
index 4645a98a9..a93be3b62 100644
--- a/test/stderr/0023
+++ b/test/stderr/0023
@@ -37,9 +37,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> message: $domain gets refused
>>> check domains = !refuse.test.ex

@@ -75,25 +78,32 @@
>>> check domains = +local_domains
>>> z in "+local_domains"?
>>> list element: +local_domains

->>>  z in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>  z in "test.ex : *.test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    z in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    z in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> z in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "acl_1_2_3"
>>> processing "accept" (TESTSUITE/test-config 60)
>>> check domains = +relay_domains
>>> z in "+relay_domains"?
>>> list element: +relay_domains

->>>  z in "relay.test.ex"?
->>>   list element: relay.test.ex
->>>  z in "relay.test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    z in "relay.test.ex"?
+>>>    ╎list element: relay.test.ex
+>>>    z in "relay.test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> z in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "acl_1_2_3"
>>> processing "accept" (TESTSUITE/test-config 61)
>>> check domains = +relay_domains
>>> z in "+relay_domains"?
>>> list element: +relay_domains

+>>> start sublist relay_domains
+>>> cached no match for +relay_domains
+>>> cached lookup data = NULL
>>> z in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "acl_1_2_3"
>>> end of ACL "acl_1_2_3": implicit DENY

@@ -125,9 +135,12 @@ LOG: H=(test) [1.2.3.4] F=<x@y> rejected RCPT <z@z>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> message: $domain gets refused
>>> check domains = !refuse.test.ex

@@ -163,9 +176,12 @@ LOG: H=(test) [1.2.3.4] F=<x@y> rejected RCPT <z@z>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> message: $domain gets refused
>>> check domains = !refuse.test.ex

@@ -201,10 +217,13 @@ LOG: H=(test) [1.2.3.4] F=<x@y> rejected RCPT <z@z>
>>> check domains = +local_domains
>>> relay.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  relay.test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>   relay.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   start sublist local_domains
+>>>    relay.test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    ╎relay.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'relay.test.ex' value '*.test.ex'

>>> relay.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> message: $domain gets refused
>>> check domains = !refuse.test.ex

@@ -265,10 +284,13 @@ LOG: H=(test) [1.2.3.4] F=<x@y> rejected RCPT <x@???>: DOMAIN EXPLICITL
>>> check domains = +local_domains
>>> refuse.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  refuse.test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>   refuse.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   start sublist local_domains
+>>>    refuse.test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    ╎refuse.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'refuse.test.ex' value '*.test.ex'

>>> refuse.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> message: $domain gets refused
>>> check domains = !refuse.test.ex

@@ -380,9 +402,11 @@ LOG: H=(test) [5.6.7.8] F=<x@y> rejected RCPT <x@???>
>>> check hosts = +ok9_hosts
>>> host in "+ok9_hosts"?
>>> list element: +ok9_hosts

->>>  host in "9.9.9.9"?
->>>   list element: 9.9.9.9
->>>   host in "9.9.9.9"? yes (matched "9.9.9.9")
+>>>   start sublist ok9_hosts
+>>>    host in "9.9.9.9"?
+>>>    ╎list element: 9.9.9.9
+>>>    ╎host in "9.9.9.9"? yes (matched "9.9.9.9")
+>>>   end sublist ok9_hosts

>>> host in "+ok9_hosts"? yes (matched "+ok9_hosts")
>>> accept: condition test succeeded in ACL "acl_9_9_9"
>>> end of ACL "acl_9_9_9": ACCEPT

@@ -391,6 +415,9 @@ LOG: H=(test) [5.6.7.8] F=<x@y> rejected RCPT <x@???>
>>> check hosts = +ok9_hosts
>>> host in "+ok9_hosts"?
>>> list element: +ok9_hosts

+>>> start sublist ok9_hosts
+>>> cached yes match for +ok9_hosts
+>>> cached lookup data = NULL
>>> host in "+ok9_hosts"? yes (matched "+ok9_hosts" - cached)
>>> accept: condition test succeeded in ACL "acl_9_9_9"
>>> end of ACL "acl_9_9_9": ACCEPT

@@ -411,9 +438,11 @@ LOG: H=(test) [5.6.7.8] F=<x@y> rejected RCPT <x@???>
>>> check hosts = +ok9_hosts
>>> host in "+ok9_hosts"?
>>> list element: +ok9_hosts

->>>  host in "9.9.9.9"?
->>>   list element: 9.9.9.9
->>>  host in "9.9.9.9"? no (end of list)
+>>>   start sublist ok9_hosts
+>>>    host in "9.9.9.9"?
+>>>    ╎list element: 9.9.9.9
+>>>    host in "9.9.9.9"? no (end of list)
+>>>   end sublist ok9_hosts

>>> host in "+ok9_hosts"? no (end of list)
>>> accept: condition test failed in ACL "acl_9_9_9"
>>> processing "deny" (TESTSUITE/test-config 92)

@@ -430,6 +459,9 @@ LOG: H=(test) [9.9.9.8] F=<x@y> rejected RCPT <x@y>: don't like this host
>>> check hosts = +ok9_hosts
>>> host in "+ok9_hosts"?
>>> list element: +ok9_hosts

+>>> start sublist ok9_hosts
+>>> cached no match for +ok9_hosts
+>>> cached lookup data = NULL
>>> host in "+ok9_hosts"? no (end of list)
>>> accept: condition test failed in ACL "acl_9_9_9"
>>> processing "deny" (TESTSUITE/test-config 92)

@@ -458,9 +490,11 @@ LOG: H=(test) [9.9.9.8] F=<x@y> rejected RCPT <a@b>: don't like this host
>>> check hosts = +ok9_hosts
>>> host in "+ok9_hosts"?
>>> list element: +ok9_hosts

->>>  host in "9.9.9.9"?
->>>   list element: 9.9.9.9
->>>  host in "9.9.9.9"? no (end of list)
+>>>   start sublist ok9_hosts
+>>>    host in "9.9.9.9"?
+>>>    ╎list element: 9.9.9.9
+>>>    host in "9.9.9.9"? no (end of list)
+>>>   end sublist ok9_hosts

>>> host in "+ok9_hosts"? no (end of list)
>>> accept: condition test failed in ACL "acl_9_9_9"
>>> processing "deny" (TESTSUITE/test-config 92)

@@ -482,6 +516,9 @@ LOG: H=(test) [9.9.9.8] F=<x@y> rejected RCPT <a@b>: don't like this host
>>> check hosts = +ok9_hosts
>>> host in "+ok9_hosts"?
>>> list element: +ok9_hosts

+>>> start sublist ok9_hosts
+>>> cached no match for +ok9_hosts
+>>> cached lookup data = NULL
>>> host in "+ok9_hosts"? no (end of list)
>>> accept: condition test failed in ACL "acl_9_9_9"
>>> processing "deny" (TESTSUITE/test-config 92)

@@ -520,9 +557,11 @@ LOG: H=(test) [9.9.9.8] F=<x@y> rejected RCPT <a@b>: don't like this host
>>> list element: domain2
>>> y in "domain2"? no (end of list)
>>> list element: +ok_senders

->>>  x@y in "ok@???"?
->>>   list element: ok@???
->>>  x@y in "ok@???"? no (end of list)
+>>>   start sublist ok_senders
+>>>    x@y in "ok@???"?
+>>>    ╎list element: ok@???
+>>>    x@y in "ok@???"? no (end of list)
+>>>   end sublist ok_senders

>>> x@y in "user1@domain1 : domain2 : +ok_senders"? no (end of list)
>>> accept: condition test failed in ACL "acl_5_6_8"
>>> end of ACL "acl_5_6_8": implicit DENY

@@ -537,6 +576,9 @@ LOG: H=(test) [5.6.8.1] F=<x@y> rejected RCPT <x@y>
>>> list element: domain2
>>> y in "domain2"? no (end of list)
>>> list element: +ok_senders

+>>> start sublist ok_senders
+>>> cached no match for +ok_senders
+>>> cached lookup data = NULL
>>> x@y in "user1@domain1 : domain2 : +ok_senders"? no (end of list)
>>> accept: condition test failed in ACL "acl_5_6_8"
>>> end of ACL "acl_5_6_8": implicit DENY

@@ -565,9 +607,11 @@ LOG: H=(test) [5.6.8.1] F=<x@y> rejected RCPT <y@x>
>>> list element: domain2
>>> domain1 in "domain2"? no (end of list)
>>> list element: +ok_senders

->>>  user2@domain1 in "ok@???"?
->>>   list element: ok@???
->>>  user2@domain1 in "ok@???"? no (end of list)
+>>>   start sublist ok_senders
+>>>    user2@domain1 in "ok@???"?
+>>>    ╎list element: ok@???
+>>>    user2@domain1 in "ok@???"? no (end of list)
+>>>   end sublist ok_senders

>>> user2@domain1 in "user1@domain1 : domain2 : +ok_senders"? no (end of list)
>>> accept: condition test failed in ACL "acl_5_6_8"
>>> end of ACL "acl_5_6_8": implicit DENY

@@ -597,12 +641,15 @@ LOG: H=(test) [5.6.8.1] F=<user2@domain1> rejected RCPT <x@y>
>>> list element: domain2
>>> ok.ok in "domain2"? no (end of list)
>>> list element: +ok_senders

->>>  ok@??? in "ok@???"?
->>>   list element: ok@???
->>>   ok.ok in "ok.ok"?
->>>    list element: ok.ok
->>>    ok.ok in "ok.ok"? yes (matched "ok.ok")
->>>   ok@??? in "ok@???"? yes (matched "ok@???")
+>>>   start sublist ok_senders
+>>>    ok@??? in "ok@???"?
+>>>    ╎list element: ok@???
+>>>    ╎ok.ok in "ok.ok"?
+>>>    ╎ list element: ok.ok
+>>>    ╎ ok.ok in "ok.ok"? yes (matched "ok.ok")
+>>>    ╎ok@??? in "ok@???"? yes (matched "ok@???")
+>>>   end sublist ok_senders
+>>>  data from lookup saved for cache for +ok_senders: key 'ok@???' value 'ok@???'

>>> ok@??? in "user1@domain1 : domain2 : +ok_senders"? yes (matched "+ok_senders")
>>> accept: condition test succeeded in ACL "acl_5_6_8"
>>> end of ACL "acl_5_6_8": ACCEPT

@@ -616,6 +663,9 @@ LOG: H=(test) [5.6.8.1] F=<user2@domain1> rejected RCPT <x@y>
>>> list element: domain2
>>> ok.ok in "domain2"? no (end of list)
>>> list element: +ok_senders

+>>> start sublist ok_senders
+>>> cached yes match for +ok_senders
+>>> cached lookup data = ok@???
>>> ok@??? in "user1@domain1 : domain2 : +ok_senders"? yes (matched "+ok_senders" - cached)
>>> accept: condition test succeeded in ACL "acl_5_6_8"
>>> end of ACL "acl_5_6_8": ACCEPT

@@ -990,16 +1040,16 @@ LOG: H=(test) [V4NET.11.12.13] F=<x@y> rejected RCPT <x1@y>: DNSLIST (rbl.test.e
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@y

->>> x in "^ok"?
+>>> x in local_parts?
>>> list element: ^ok

->>> x in "^ok"? no (end of list)
->>> x in "^userx : ^cond-"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> x in "^userx : ^cond-"? no (end of list)
->>> x in "fail"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: fail

->>> x in "fail"? no (end of list)
+>>> x in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> accept: condition test failed in ACL "acl_20_20_20"

@@ -1032,12 +1082,12 @@ LOG: H=(test) [20.20.20.20] F=<x@y> rejected RCPT <x2@y>: Sender verify failed
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@y

->>> userx in "^ok"?
+>>> userx in local_parts?
>>> list element: ^ok

->>> userx in "^ok"? no (end of list)
->>> userx in "^userx : ^cond-"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: ^userx

->>> userx in "^userx : ^cond-"? yes (matched "^userx")
+>>> userx in local_parts? yes (matched "^userx")
>>> calling r1 router
>>> routed by r1 router
>>> ----------- end verify ------------

@@ -1045,16 +1095,16 @@ LOG: H=(test) [20.20.20.20] F=<x@y> rejected RCPT <x2@y>: Sender verify failed
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x1@y

->>> x1 in "^ok"?
+>>> x1 in local_parts?
>>> list element: ^ok

->>> x1 in "^ok"? no (end of list)
->>> x1 in "^userx : ^cond-"?
+>>> x1 in local_parts? no (end of list)
+>>> x1 in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> x1 in "^userx : ^cond-"? no (end of list)
->>> x1 in "fail"?
+>>> x1 in local_parts? no (end of list)
+>>> x1 in local_parts?
>>> list element: fail

->>> x1 in "fail"? no (end of list)
+>>> x1 in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> accept: condition test failed in ACL "acl_20_20_20"

@@ -1069,12 +1119,12 @@ LOG: H=(test) [20.20.20.20] F=<userx@y> rejected RCPT <x1@y>: Unrouteable addres
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@y

->>> userx in "^ok"?
+>>> userx in local_parts?
>>> list element: ^ok

->>> userx in "^ok"? no (end of list)
->>> userx in "^userx : ^cond-"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: ^userx

->>> userx in "^userx : ^cond-"? yes (matched "^userx")
+>>> userx in local_parts? yes (matched "^userx")
>>> calling r1 router
>>> routed by r1 router
>>> ----------- end verify ------------

@@ -1097,28 +1147,28 @@ LOG: H=(test) [20.20.20.20] F=<userx@y> rejected RCPT <x1@y>: Unrouteable addres
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@y

->>> userx in "^ok"?
+>>> userx in local_parts?
>>> list element: ^ok

->>> userx in "^ok"? no (end of list)
->>> userx in "^userx : ^cond-"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: ^userx

->>> userx in "^userx : ^cond-"? yes (matched "^userx")
+>>> userx in local_parts? yes (matched "^userx")
>>> calling r1 router
>>> routed by r1 router
>>> ----------- end verify ------------
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x1@y

->>> x1 in "^ok"?
+>>> x1 in local_parts?
>>> list element: ^ok

->>> x1 in "^ok"? no (end of list)
->>> x1 in "^userx : ^cond-"?
+>>> x1 in local_parts? no (end of list)
+>>> x1 in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> x1 in "^userx : ^cond-"? no (end of list)
->>> x1 in "fail"?
+>>> x1 in local_parts? no (end of list)
+>>> x1 in local_parts?
>>> list element: fail

->>> x1 in "fail"? no (end of list)
+>>> x1 in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> accept: condition test failed in ACL "acl_21_21_21"

@@ -1131,12 +1181,12 @@ LOG: H=(test) [21.21.21.21] F=<userx@y> rejected RCPT <x1@y>: Unrouteable addres
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@y

->>> userx in "^ok"?
+>>> userx in local_parts?
>>> list element: ^ok

->>> userx in "^ok"? no (end of list)
->>> userx in "^userx : ^cond-"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: ^userx

->>> userx in "^userx : ^cond-"? yes (matched "^userx")
+>>> userx in local_parts? yes (matched "^userx")
>>> calling r1 router
>>> routed by r1 router
>>> ----------- end verify ------------

@@ -1149,16 +1199,16 @@ LOG: H=(test) [21.21.21.21] F=<userx@y> rejected RCPT <x1@y>: Unrouteable addres
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing fail@y

->>> fail in "^ok"?
+>>> fail in local_parts?
>>> list element: ^ok

->>> fail in "^ok"? no (end of list)
->>> fail in "^userx : ^cond-"?
+>>> fail in local_parts? no (end of list)
+>>> fail in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> fail in "^userx : ^cond-"? no (end of list)
->>> fail in "fail"?
+>>> fail in local_parts? no (end of list)
+>>> fail in local_parts?
>>> list element: fail

->>> fail in "fail"? yes (matched "fail")
+>>> fail in local_parts? yes (matched "fail")
>>> calling r2 router
>>> r2 router forced address failure
>>> ----------- end verify ------------

@@ -1170,16 +1220,16 @@ LOG: H=(test) [21.21.21.21] F=<userx@y> rejected RCPT <fail@y>: here is a fail m
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@y

->>> x in "^ok"?
+>>> x in local_parts?
>>> list element: ^ok

->>> x in "^ok"? no (end of list)
->>> x in "^userx : ^cond-"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> x in "^userx : ^cond-"? no (end of list)
->>> x in "fail"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: fail

->>> x in "fail"? no (end of list)
+>>> x in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> accept: condition test failed in ACL "acl_21_21_21"

@@ -1201,16 +1251,16 @@ LOG: H=(test) [21.21.21.21] F=<x@y> rejected RCPT <x2@y>: Sender verify failed
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing fail@y

->>> fail in "^ok"?
+>>> fail in local_parts?
>>> list element: ^ok

->>> fail in "^ok"? no (end of list)
->>> fail in "^userx : ^cond-"?
+>>> fail in local_parts? no (end of list)
+>>> fail in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> fail in "^userx : ^cond-"? no (end of list)
->>> fail in "fail"?
+>>> fail in local_parts? no (end of list)
+>>> fail in local_parts?
>>> list element: fail

->>> fail in "fail"? yes (matched "fail")
+>>> fail in local_parts? yes (matched "fail")
>>> calling r2 router
>>> r2 router forced address failure
>>> ----------- end verify ------------

@@ -1272,16 +1322,16 @@ LOG: H=(test) [22.22.22.22] F=<userx@y> rejected RCPT <userx@y>
>>> check !verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@y

->>> x in "^ok"?
+>>> x in local_parts?
>>> list element: ^ok

->>> x in "^ok"? no (end of list)
->>> x in "^userx : ^cond-"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> x in "^userx : ^cond-"? no (end of list)
->>> x in "fail"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: fail

->>> x in "fail"? no (end of list)
+>>> x in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> deny: condition test succeeded in ACL "acl_23_23_23"

@@ -1298,12 +1348,12 @@ LOG: H=(test) [23.23.23.0] F=<x@y> rejected RCPT <userx@y>: Sender verify failed
>>> check !verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@y

->>> userx in "^ok"?
+>>> userx in local_parts?
>>> list element: ^ok

->>> userx in "^ok"? no (end of list)
->>> userx in "^userx : ^cond-"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: ^userx

->>> userx in "^userx : ^cond-"? yes (matched "^userx")
+>>> userx in local_parts? yes (matched "^userx")
>>> calling r1 router
>>> routed by r1 router
>>> ----------- end verify ------------

@@ -1504,8 +1554,12 @@ LOG: H=(test) [28.28.28.28] F=<a@baddomain> rejected RCPT <x@y>
>>> looking up host name for V4NET.0.0.3
>>> IP address lookup yielded "ten-3.test.ex"
>>> alias "ten-3-alias.test.ex"

+>>> ten-3.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-3.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-3.test.ex
>>> V4NET.0.0.3 OK

+>>> ten-3-alias.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-3-alias.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-3-alias.test.ex
>>> V4NET.0.0.3 OK
>>> require: condition test succeeded in ACL "acl_V4NET_0_0"

@@ -1557,6 +1611,8 @@ LOG: H=(test) [V4NET.0.0.97] F=<> rejected RCPT <x@y>: host lookup failed for re
>>> looking up host name to force name/address consistency check
>>> looking up host name for V4NET.99.99.96
>>> IP address lookup yielded "x.test.again.dns"

+>>> x.test.again.dns not in empty list (option unset? cannot trace name)
+>>> x.test.again.dns not in empty list (option unset? cannot trace name)
>>> x.test.again.dns in dns_again_means_nonexist? no (option unset)
>>> temporary error for host name lookup
>>> accept: condition test deferred in ACL "acl_V4NET_99_99"

@@ -1583,6 +1639,8 @@ LOG: H=(test) [V4NET.99.99.96] F=<> temporarily rejected RCPT <x@y>: host lookup
>>> looking up host name to force name/address consistency check
>>> looking up host name for V4NET.99.99.96
>>> IP address lookup yielded "x.test.again.dns"

+>>> x.test.again.dns not in empty list (option unset? cannot trace name)
+>>> x.test.again.dns not in empty list (option unset? cannot trace name)
>>> x.test.again.dns in dns_again_means_nonexist? no (option unset)
>>> temporary error for host name lookup
>>> accept: condition test succeeded in ACL "acl_V4NET_99_99"

@@ -1720,16 +1778,16 @@ LOG: dnslist query is too long (ignored): y+extra+extra+extra+extra+extra+extra+
>>> check verify = sender/no_details
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@y

->>> x in "^ok"?
+>>> x in local_parts?
>>> list element: ^ok

->>> x in "^ok"? no (end of list)
->>> x in "^userx : ^cond-"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: ^userx
>>> list element: ^cond-

->>> x in "^userx : ^cond-"? no (end of list)
->>> x in "fail"?
+>>> x in local_parts? no (end of list)
+>>> x in local_parts?
>>> list element: fail

->>> x in "fail"? no (end of list)
+>>> x in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> accept: condition test failed in ACL "acl_33_33_33"

diff --git a/test/stderr/0037 b/test/stderr/0037
index 1f91e3d18..03b6c3474 100644
--- a/test/stderr/0037
+++ b/test/stderr/0037
@@ -25,14 +25,17 @@ routing filter-userx@???
--------> check_vars router <--------
local_part=filter-userx domain=test.ex
checking local_parts
+filter-userx in local_parts? no (end of list)
check_vars router skipped: local_parts mismatch
--------> fail_read_filter router <--------
local_part=filter-userx domain=test.ex
checking local_parts
+filter-userx in local_parts? no (end of list)
fail_read_filter router skipped: local_parts mismatch
--------> prepend_filter router <--------
local_part=filter-userx domain=test.ex
checking local_parts
+filter-userx in local_parts? no (end of list)
prepend_filter router skipped: local_parts mismatch
--------> userfilter router <--------
local_part=filter-userx domain=test.ex
@@ -63,22 +66,27 @@ routing userx@???
--------> check_vars router <--------
local_part=userx domain=test.ex
checking local_parts
+userx in local_parts? no (end of list)
check_vars router skipped: local_parts mismatch
--------> fail_read_filter router <--------
local_part=userx domain=test.ex
checking local_parts
+userx in local_parts? no (end of list)
fail_read_filter router skipped: local_parts mismatch
--------> prepend_filter router <--------
local_part=userx domain=test.ex
checking local_parts
+userx in local_parts? no (end of list)
prepend_filter router skipped: local_parts mismatch
--------> userfilter router <--------
local_part=userx domain=test.ex
checking local_parts
+userx in local_parts? no (end of list)
userfilter router skipped: local_parts mismatch
--------> user_accept1 router <--------
local_part=userx domain=test.ex
checking local_parts
+userx in local_parts? no (end of list)
user_accept1 router skipped: local_parts mismatch
--------> user_accept2 router <--------
local_part=userx domain=test.ex
diff --git a/test/stderr/0041 b/test/stderr/0041
index c25d0597e..8ffd7dbb1 100644
--- a/test/stderr/0041
+++ b/test/stderr/0041
@@ -70,10 +70,10 @@ LOG: H=[1.1.1.1] rejected VRFY hardfail@???: 599 custom reject
>>> routing ok_with_dom@???
>>> calling system_aliases router
>>> system_aliases router declined for ok_with_dom@???

->>> ok_with_dom in "userx : ok_with_dom : acceptable"?
+>>> ok_with_dom in local_parts?
>>> list element: userx
>>> list element: ok_with_dom

->>> ok_with_dom in "userx : ok_with_dom : acceptable"? yes (matched "ok_with_dom")
+>>> ok_with_dom in local_parts? yes (matched "ok_with_dom")
>>> calling localuser router
>>> routed by localuser router
>>> using ACL "check_expn"

@@ -116,11 +116,11 @@ LOG: H=[1.1.1.1] rejected EXPN postmaster
>>> routing acceptable@???
>>> calling system_aliases router
>>> system_aliases router declined for acceptable@???

->>> acceptable in "userx : ok_with_dom : acceptable"?
+>>> acceptable in local_parts?
>>> list element: userx
>>> list element: ok_with_dom
>>> list element: acceptable

->>> acceptable in "userx : ok_with_dom : acceptable"? yes (matched "acceptable")
+>>> acceptable in local_parts? yes (matched "acceptable")
>>> calling localuser router
>>> routed by localuser router
>>> host in hosts_connection_nolog? no (option unset)

diff --git a/test/stderr/0042 b/test/stderr/0042
index e12a18566..cb999fb99 100644
--- a/test/stderr/0042
+++ b/test/stderr/0042
@@ -14,18 +14,21 @@
>>> end of inline ACL: ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "expan"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?

>>> list element: expan

->>> userx in "expan"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> processing "accept" (TESTSUITE/test-config 47)

@@ -33,18 +36,21 @@
>>> end of inline ACL: ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing junkjunk@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> junkjunk in "expan"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> junkjunk in local_parts?

>>> list element: expan

->>> junkjunk in "expan"? no (end of list)
->>> junkjunk in "userx"?
+>>> junkjunk in local_parts? no (end of list)
+>>> junkjunk in local_parts?
>>> list element: userx

->>> junkjunk in "userx"? no (end of list)
+>>> junkjunk in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for junkjunk@??? H=[1.1.1.1]
>>> processing "accept" (TESTSUITE/test-config 47)

@@ -52,15 +58,18 @@ LOG: VRFY failed for junkjunk@??? H=[1.1.1.1]
>>> end of inline ACL: ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing expan@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> expan in "expan"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> expan in local_parts?

>>> list element: expan

->>> expan in "expan"? yes (matched "expan")
+>>> expan in local_parts? yes (matched "expan")
>>> calling fail_expansion router
>>> fail_expansion router: defer for expan@???
>>> message: failed to expand "${if with syntax error": unknown condition "with"

diff --git a/test/stderr/0043 b/test/stderr/0043
index 083e26088..381e84917 100644
--- a/test/stderr/0043
+++ b/test/stderr/0043
@@ -29,17 +29,20 @@
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing junkjunk@???

->>> exim.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>>  exim.test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> exim.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'
+>>>  exim.test.ex in domains? no (matched "! +local_domains")

>>> calling system_aliases router
>>> system_aliases router declined for junkjunk@???

->>> junkjunk in "userx"?
+>>> junkjunk in local_parts?
>>> list element: userx

->>> junkjunk in "userx"? no (end of list)
+>>> junkjunk in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> require: condition test failed in ACL "check_recipient"

@@ -58,27 +61,33 @@ LOG: H=(exim.test.ex) [V4NET.0.0.97] incomplete transaction (RSET) from <junkjun
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing postmaster@???

->>> exim.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>>  exim.test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> exim.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'
+>>>  exim.test.ex in domains? no (matched "! +local_domains")

>>> calling system_aliases router
>>> routed by system_aliases router
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> exim.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>>  exim.test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> exim.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'
+>>>  exim.test.ex in domains? no (matched "! +local_domains")

>>> calling system_aliases router
>>> system_aliases router declined for userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -88,27 +97,33 @@ LOG: H=(exim.test.ex) [V4NET.0.0.97] incomplete transaction (RSET) from <junkjun
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing postmaster@???

->>> exim.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>>  exim.test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> exim.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'
+>>>  exim.test.ex in domains? no (matched "! +local_domains")

>>> calling system_aliases router
>>> routed by system_aliases router
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> exim.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>>  exim.test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> exim.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'
+>>>  exim.test.ex in domains? no (matched "! +local_domains")

>>> calling system_aliases router
>>> system_aliases router declined for userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -117,9 +132,12 @@ LOG: H=(exim.test.ex) [V4NET.0.0.97] incomplete transaction (RSET) from <junkjun
>>> check domains = +local_domains
>>> exim.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'

>>> exim.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -139,17 +157,20 @@ LOG: H=(exim.test.ex) [V4NET.0.0.97] incomplete transaction (RSET) from <junkjun
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing junkjunk@???

->>> exim.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>>  exim.test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> exim.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'
+>>>  exim.test.ex in domains? no (matched "! +local_domains")

>>> calling system_aliases router
>>> system_aliases router declined for junkjunk@???

->>> junkjunk in "userx"?
+>>> junkjunk in local_parts?
>>> list element: userx

->>> junkjunk in "userx"? no (end of list)
+>>> junkjunk in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> deny: condition test succeeded in ACL "check_recipient"

@@ -171,12 +192,15 @@ LOG: H=(exim.test.ex) [V4NET.0.0.97] F=<postmaster@???> rejected RCPT j
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing fail@???

->>> exim.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>>  exim.test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> exim.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'
+>>>  exim.test.ex in domains? no (matched "! +local_domains")

>>> calling system_aliases router
>>> system_aliases router forced address failure
>>> ----------- end verify ------------

diff --git a/test/stderr/0044 b/test/stderr/0044
index 47eb91f23..9fa3c568e 100644
--- a/test/stderr/0044
+++ b/test/stderr/0044
@@ -319,9 +319,9 @@ routing postmaster@???
--------> localuser router <--------
local_part=postmaster domain=exim.test.ex
checking local_parts
-postmaster in "userx"?
+postmaster in local_parts?
list element: userx
-postmaster in "userx"? no (end of list)
+postmaster in local_parts? no (end of list)
localuser router skipped: local_parts mismatch
no more routers
----------- end verify ------------
diff --git a/test/stderr/0056 b/test/stderr/0056
index 687b05ec9..ea8614cc2 100644
--- a/test/stderr/0056
+++ b/test/stderr/0056
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,19 +29,24 @@
>>> check domains = +local_domains
>>> otherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  otherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  otherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    otherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    otherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> otherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> otherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  otherhost.example.com in "*"?
->>>   list element: *
->>>   otherhost.example.com in "*"? yes (matched "*")
+>>>   start sublist relay_domains
+>>>    otherhost.example.com in "*"?
+>>>    ╎list element: *
+>>>    ╎otherhost.example.com in "*"? yes (matched "*")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key 'otherhost.example.com' value '*'

>>> otherhost.example.com in "+relay_domains"? yes (matched "+relay_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -47,19 +55,24 @@
>>> check domains = +local_domains
>>> 3rdhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  3rdhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  3rdhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    3rdhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    3rdhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> 3rdhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> 3rdhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  3rdhost.example.com in "*"?
->>>   list element: *
->>>   3rdhost.example.com in "*"? yes (matched "*")
+>>>   start sublist relay_domains
+>>>    3rdhost.example.com in "*"?
+>>>    ╎list element: *
+>>>    ╎3rdhost.example.com in "*"? yes (matched "*")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key '3rdhost.example.com' value '*'

>>> 3rdhost.example.com in "+relay_domains"? yes (matched "+relay_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0057 b/test/stderr/0057
index 341a5dbdf..693ccfdd1 100644
--- a/test/stderr/0057
+++ b/test/stderr/0057
@@ -11,10 +11,10 @@
>>> list element: @[]
>>> test in helo_lookup_domains? no (end of list)
>>> test.ex in percent_hack_domains?

->>> list element: ! a.test.ex
+>>> list element: !░a.test.ex
>>> list element: !b.test.ex
>>> list element: !TESTSUITE/aux-fixed/0057.d1

->>> list element: ! TESTSUITE/aux-fixed/0057.d2
+>>> list element: !░TESTSUITE/aux-fixed/0057.d2
>>> list element: *.test.ex
>>> test.ex in percent_hack_domains? no (end of list)
>>> using ACL "check_recipient"

@@ -22,17 +22,20 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT
>>> anotherhost.example.com in percent_hack_domains?

->>> list element: ! a.test.ex
+>>> list element: !░a.test.ex
>>> list element: !b.test.ex
>>> list element: !TESTSUITE/aux-fixed/0057.d1

->>> list element: ! TESTSUITE/aux-fixed/0057.d2
+>>> list element: !░TESTSUITE/aux-fixed/0057.d2
>>> list element: *.test.ex
>>> anotherhost.example.com in percent_hack_domains? no (end of list)
>>> using ACL "check_recipient"

@@ -40,21 +43,26 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>   list element: *.test.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex : *.test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    ╎list element: *.test.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex : !*"?
->>>   list element: test.ex
->>>   list element: !*
->>>   anotherhost.example.com in "test.ex : !*"? no (matched "!*")
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex : !*"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: !*
+>>>    ╎anotherhost.example.com in "test.ex : !*"? no (matched "!*")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key 'anotherhost.example.com' value '*'

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

@@ -63,10 +71,10 @@
>>> end of ACL "check_recipient": DENY

LOG: H=(test) [V4NET.0.0.1] F=<userx@???> rejected RCPT <userx@???>: relay not permitted
>>> 3rdhost.example.com in percent_hack_domains?

->>> list element: ! a.test.ex
+>>> list element: !░a.test.ex
>>> list element: !b.test.ex
>>> list element: !TESTSUITE/aux-fixed/0057.d1

->>> list element: ! TESTSUITE/aux-fixed/0057.d2
+>>> list element: !░TESTSUITE/aux-fixed/0057.d2
>>> list element: *.test.ex
>>> 3rdhost.example.com in percent_hack_domains? no (end of list)
>>> using ACL "check_recipient"

@@ -74,21 +82,26 @@ LOG: H=(test) [V4NET.0.0.1] F=<userx@???> rejected RCPT <userx@
>>> check domains = +local_domains
>>> 3rdhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  3rdhost.example.com in "test.ex : myhost.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>   list element: *.test.ex
->>>  3rdhost.example.com in "test.ex : myhost.ex : *.test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    3rdhost.example.com in "test.ex : myhost.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    ╎list element: *.test.ex
+>>>    3rdhost.example.com in "test.ex : myhost.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> 3rdhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> 3rdhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  3rdhost.example.com in "test.ex : !*"?
->>>   list element: test.ex
->>>   list element: !*
->>>   3rdhost.example.com in "test.ex : !*"? no (matched "!*")
+>>>   start sublist relay_domains
+>>>    3rdhost.example.com in "test.ex : !*"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: !*
+>>>    ╎3rdhost.example.com in "test.ex : !*"? no (matched "!*")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key '3rdhost.example.com' value '*'

>>> 3rdhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

diff --git a/test/stderr/0058 b/test/stderr/0058
index 68f177820..0901cccf2 100644
--- a/test/stderr/0058
+++ b/test/stderr/0058
@@ -15,19 +15,23 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 20)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "*"?
->>>   list element: *
->>>   host in "*"? yes (matched "*")
+>>>   start sublist relay_hosts
+>>>    host in "*"?
+>>>    ╎list element: *
+>>>    ╎host in "*"? yes (matched "*")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -37,16 +41,21 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.1
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 20)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

+>>> start sublist relay_hosts
+>>> cached yes match for +relay_hosts
+>>> cached lookup data = NULL
>>> host in "+relay_hosts"? yes (matched "+relay_hosts" - cached)
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0059 b/test/stderr/0059
index 327ce7f7b..056a9fdbc 100644
--- a/test/stderr/0059
+++ b/test/stderr/0059
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,28 +29,34 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!*"?
->>>   list element: !*
->>>   host in "!*"? no (matched "!*")
+>>>   start sublist relay_hosts
+>>>    host in "!*"?
+>>>    ╎list element: !*
+>>>    ╎host in "!*"? no (matched "!*")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 23)

diff --git a/test/stderr/0060 b/test/stderr/0060
index 39ea365ce..6824c5a85 100644
--- a/test/stderr/0060
+++ b/test/stderr/0060
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,35 +29,41 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   list element: !V4NET.255.0.2
->>>   list element: !TESTSUITE/aux-var/0060.d1
->>>   list element: ! TESTSUITE/aux-var/0060.d2
->>>   list element: ten-1.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎list element: !V4NET.255.0.2
+>>>    ╎list element: !TESTSUITE/aux-var/0060.d1
+>>>    ╎list element: !░TESTSUITE/aux-var/0060.d2
+>>>    ╎list element: ten-1.test.ex
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-1.test.ex address=V4NET.0.0.1

->>>   host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? yes (matched "ten-1.test.ex")
+>>>    ╎host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? yes (matched "ten-1.test.ex")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -76,9 +85,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.1
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -87,40 +99,46 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.1
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   list element: !V4NET.255.0.2
->>>   list element: !TESTSUITE/aux-var/0060.d1
->>>   list element: ! TESTSUITE/aux-var/0060.d2
->>>   list element: ten-1.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎list element: !V4NET.255.0.2
+>>>    ╎list element: !TESTSUITE/aux-var/0060.d1
+>>>    ╎list element: !░TESTSUITE/aux-var/0060.d2
+>>>    ╎list element: ten-1.test.ex
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-1.test.ex address=V4NET.0.0.1

->>>   list element: ten-5-6.test.ex
+>>>    ╎list element: ten-5-6.test.ex
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-5-6.test.ex address=V4NET.0.0.5
>>> name=ten-5-6.test.ex address=V4NET.0.0.6

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (end of list)
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

@@ -146,9 +164,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.2
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -157,40 +178,46 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.2
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   list element: !V4NET.255.0.2
->>>   list element: !TESTSUITE/aux-var/0060.d1
->>>   list element: ! TESTSUITE/aux-var/0060.d2
->>>   list element: ten-1.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎list element: !V4NET.255.0.2
+>>>    ╎list element: !TESTSUITE/aux-var/0060.d1
+>>>    ╎list element: !░TESTSUITE/aux-var/0060.d2
+>>>    ╎list element: ten-1.test.ex
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-1.test.ex address=V4NET.0.0.1

->>>   list element: ten-5-6.test.ex
+>>>    ╎list element: ten-5-6.test.ex
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-5-6.test.ex address=V4NET.0.0.5
>>> name=ten-5-6.test.ex address=V4NET.0.0.6

->>>   host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? yes (matched "ten-5-6.test.ex")
+>>>    ╎host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? yes (matched "ten-5-6.test.ex")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -212,9 +239,12 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.5
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -223,40 +253,46 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.5
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   list element: !V4NET.255.0.2
->>>   list element: !TESTSUITE/aux-var/0060.d1
->>>   list element: ! TESTSUITE/aux-var/0060.d2
->>>   list element: ten-1.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎list element: !V4NET.255.0.2
+>>>    ╎list element: !TESTSUITE/aux-var/0060.d1
+>>>    ╎list element: !░TESTSUITE/aux-var/0060.d2
+>>>    ╎list element: ten-1.test.ex
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-1.test.ex address=V4NET.0.0.1

->>>   list element: ten-5-6.test.ex
+>>>    ╎list element: ten-5-6.test.ex
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-5-6.test.ex address=V4NET.0.0.5
>>> name=ten-5-6.test.ex address=V4NET.0.0.6

->>>   host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? yes (matched "ten-5-6.test.ex")
+>>>    ╎host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? yes (matched "ten-5-6.test.ex")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -278,9 +314,12 @@ LOG: 10HmbA-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.6
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -289,28 +328,34 @@ LOG: 10HmbA-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.6
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "! V4NET.255.0.1")
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "! V4NET.255.0.1")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

@@ -336,9 +381,12 @@ LOG: 10HmbB-000000005vi-0000 <= userx@??? H=(test) [V4NET.255.0
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -347,29 +395,35 @@ LOG: 10HmbB-000000005vi-0000 <= userx@??? H=(test) [V4NET.255.0
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   list element: !V4NET.255.0.2
->>>   host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "!V4NET.255.0.2")
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎list element: !V4NET.255.0.2
+>>>    ╎host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "!V4NET.255.0.2")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

@@ -395,9 +449,12 @@ LOG: 10HmbC-000000005vi-0000 <= userx@??? H=(test) [V4NET.255.0
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -406,30 +463,37 @@ LOG: 10HmbC-000000005vi-0000 <= userx@??? H=(test) [V4NET.255.0
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   list element: !V4NET.255.0.2
->>>   list element: !TESTSUITE/aux-var/0060.d1
->>>   host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "V4NET.255.0.3" in TESTSUITE/aux-var/0060.d1)
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎list element: !V4NET.255.0.2
+>>>    ╎list element: !TESTSUITE/aux-var/0060.d1
+>>>    ╎host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "V4NET.255.0.3" in TESTSUITE/aux-var/0060.d1)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.255.0.3' value 'V4NET.255.0.3'

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

@@ -455,9 +519,12 @@ LOG: 10HmbD-000000005vi-0000 <= userx@??? H=(test) [V4NET.255.0
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -466,31 +533,38 @@ LOG: 10HmbD-000000005vi-0000 <= userx@??? H=(test) [V4NET.255.0
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
->>>   list element: ! V4NET.255.0.1
->>>   list element: !V4NET.255.0.2
->>>   list element: !TESTSUITE/aux-var/0060.d1
->>>   list element: ! TESTSUITE/aux-var/0060.d2
->>>   host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "V4NET.255.0.4" in TESTSUITE/aux-var/0060.d2)
+>>>   start sublist relay_hosts
+>>>    host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"?
+>>>    ╎list element: !░V4NET.255.0.1
+>>>    ╎list element: !V4NET.255.0.2
+>>>    ╎list element: !TESTSUITE/aux-var/0060.d1
+>>>    ╎list element: !░TESTSUITE/aux-var/0060.d2
+>>>    ╎host in "! V4NET.255.0.1 : !V4NET.255.0.2 : !TESTSUITE/aux-var/0060.d1 : ! TESTSUITE/aux-var/0060.d2 : ten-1.test.ex : ten-5-6.test.ex"? no (matched "V4NET.255.0.4" in TESTSUITE/aux-var/0060.d2)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.255.0.4' value 'V4NET.255.0.4'

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

diff --git a/test/stderr/0061 b/test/stderr/0061
index 7e04644e2..8aa0b1472 100644
--- a/test/stderr/0061
+++ b/test/stderr/0061
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,31 +29,37 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "@"?
->>>   list element: @
+>>>   start sublist relay_hosts
+>>>    host in "@"?
+>>>    ╎list element: @
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-1.test.ex address=V4NET.0.0.1

->>>   host in "@"? yes (matched "@")
+>>>    ╎host in "@"? yes (matched "@")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -72,9 +81,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.1
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -83,31 +95,37 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [V4NET.0.0.1
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "@"?
->>>   list element: @
+>>>   start sublist relay_hosts
+>>>    host in "@"?
+>>>    ╎list element: @
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-1.test.ex address=V4NET.0.0.1

->>>  host in "@"? no (end of list)
+>>>    host in "@"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 23)

diff --git a/test/stderr/0062 b/test/stderr/0062
index b9cf69bf5..386a2294b 100644
--- a/test/stderr/0062
+++ b/test/stderr/0062
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,34 +29,42 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "*-2.test.ex : *-3-alias.test.ex"?
->>>   list element: *-2.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "*-2.test.ex : *-3-alias.test.ex"?
+>>>    ╎list element: *-2.test.ex

>>> sender host name required, to match against *-2.test.ex
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK

->>>   list element: *-3-alias.test.ex
->>>  host in "*-2.test.ex : *-3-alias.test.ex"? no (end of list)
+>>>    ╎list element: *-3-alias.test.ex
+>>>    host in "*-2.test.ex : *-3-alias.test.ex"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 26)

@@ -83,9 +94,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -94,33 +108,42 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "*-2.test.ex : *-3-alias.test.ex"?
->>>   list element: *-2.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "*-2.test.ex : *-3-alias.test.ex"?
+>>>    ╎list element: *-2.test.ex

>>> sender host name required, to match against *-2.test.ex
>>> looking up host name for V4NET.0.0.2
>>> IP address lookup yielded "ten-2.test.ex"

+>>>    ╎ten-2.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-2.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-2.test.ex
>>> V4NET.0.0.2 OK

->>>   host in "*-2.test.ex : *-3-alias.test.ex"? yes (matched "*-2.test.ex")
+>>>    ╎host in "*-2.test.ex : *-3-alias.test.ex"? yes (matched "*-2.test.ex")
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.0.0.2' value '*-2.test.ex'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -146,9 +169,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=ten-2.test.ex (test
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -157,37 +183,48 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=ten-2.test.ex (test
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "*-2.test.ex : *-3-alias.test.ex"?
->>>   list element: *-2.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "*-2.test.ex : *-3-alias.test.ex"?
+>>>    ╎list element: *-2.test.ex

>>> sender host name required, to match against *-2.test.ex
>>> looking up host name for V4NET.0.0.3
>>> IP address lookup yielded "ten-3.test.ex"
>>> alias "ten-3-alias.test.ex"

+>>>    ╎ten-3.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-3.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-3.test.ex
>>> V4NET.0.0.3 OK

+>>>    ╎ten-3-alias.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-3-alias.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-3-alias.test.ex
>>> V4NET.0.0.3 OK

->>>   list element: *-3-alias.test.ex
->>>   host in "*-2.test.ex : *-3-alias.test.ex"? yes (matched "*-3-alias.test.ex")
+>>>    ╎list element: *-3-alias.test.ex
+>>>    ╎host in "*-2.test.ex : *-3-alias.test.ex"? yes (matched "*-3-alias.test.ex")
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.0.0.3' value '*-3-alias.test.ex'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0063 b/test/stderr/0063
index 5b2755f0a..8a95f4952 100644
--- a/test/stderr/0063
+++ b/test/stderr/0063
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,33 +29,41 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "^[^\d]+2"?
->>>   list element: ^[^\d]+2
+>>>   start sublist relay_hosts
+>>>    host in "^[^\d]+2"?
+>>>    ╎list element: ^[^\d]+2

>>> sender host name required, to match against ^[^\d]+2
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK

->>>  host in "^[^\d]+2"? no (end of list)
+>>>    host in "^[^\d]+2"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 25)

@@ -78,9 +89,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -89,33 +103,42 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 23)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "^[^\d]+2"?
->>>   list element: ^[^\d]+2
+>>>   start sublist relay_hosts
+>>>    host in "^[^\d]+2"?
+>>>    ╎list element: ^[^\d]+2

>>> sender host name required, to match against ^[^\d]+2
>>> looking up host name for V4NET.0.0.2
>>> IP address lookup yielded "ten-2.test.ex"

+>>>    ╎ten-2.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-2.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-2.test.ex
>>> V4NET.0.0.2 OK

->>>   host in "^[^\d]+2"? yes (matched "^[^\d]+2")
+>>>    ╎host in "^[^\d]+2"? yes (matched "^[^\d]+2")
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.0.0.2' value '^[^\d]+2'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0064 b/test/stderr/0064
index 97637d627..8aa9102a0 100644
--- a/test/stderr/0064
+++ b/test/stderr/0064
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,33 +29,41 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 20)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"?
->>>   list element: lsearch;TESTSUITE/aux-fixed/0064.hosts
+>>>   start sublist relay_hosts
+>>>    host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"?
+>>>    ╎list element: lsearch;TESTSUITE/aux-fixed/0064.hosts

>>> sender host name required, to match against lsearch;TESTSUITE/aux-fixed/0064.hosts
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK

->>>  host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"? no (end of list)
+>>>    host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 22)

@@ -78,9 +89,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -89,33 +103,42 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 20)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"?
->>>   list element: lsearch;TESTSUITE/aux-fixed/0064.hosts
+>>>   start sublist relay_hosts
+>>>    host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"?
+>>>    ╎list element: lsearch;TESTSUITE/aux-fixed/0064.hosts

>>> sender host name required, to match against lsearch;TESTSUITE/aux-fixed/0064.hosts
>>> looking up host name for V4NET.0.0.2
>>> IP address lookup yielded "ten-2.test.ex"

+>>>    ╎ten-2.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-2.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-2.test.ex
>>> V4NET.0.0.2 OK

->>>   host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"? yes (matched "lsearch;TESTSUITE/aux-fixed/0064.hosts")
+>>>    ╎host in "lsearch;TESTSUITE/aux-fixed/0064.hosts"? yes (matched "lsearch;TESTSUITE/aux-fixed/0064.hosts")
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.0.0.2' value ''

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0065 b/test/stderr/0065
index 29f3ffb75..ab282c928 100644
--- a/test/stderr/0065
+++ b/test/stderr/0065
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,28 +29,34 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
->>>   list element: 1.2.3.4
->>>   host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "1.2.3.4")
+>>>   start sublist relay_hosts
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
+>>>    ╎list element: 1.2.3.4
+>>>    ╎host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "1.2.3.4")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -69,9 +78,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [1.2.3.4] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -80,29 +92,35 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [1.2.3.4] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
->>>   list element: 1.2.3.4
->>>   list element: !1.2.3.0/24
->>>   host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? no (matched "!1.2.3.0/24")
+>>>   start sublist relay_hosts
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
+>>>    ╎list element: 1.2.3.4
+>>>    ╎list element: !1.2.3.0/24
+>>>    ╎host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? no (matched "!1.2.3.0/24")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 26)

@@ -128,9 +146,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [1.2.3.5] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -139,30 +160,36 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [1.2.3.5] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
->>>   list element: 1.2.3.4
->>>   list element: !1.2.3.0/24
->>>   list element: 1.2.0.0/16
->>>   host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "1.2.0.0/16")
+>>>   start sublist relay_hosts
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
+>>>    ╎list element: 1.2.3.4
+>>>    ╎list element: !1.2.3.0/24
+>>>    ╎list element: 1.2.0.0/16
+>>>    ╎host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "1.2.0.0/16")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -184,9 +211,12 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [1.2.4.5] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -195,33 +225,39 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [1.2.4.5] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
->>>   list element: 1.2.3.4
->>>   list element: !1.2.3.0/24
->>>   list element: 1.2.0.0/16
->>>   list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   list element: net24-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   list element: net-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? no (end of list)
+>>>   start sublist relay_hosts
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
+>>>    ╎list element: 1.2.3.4
+>>>    ╎list element: !1.2.3.0/24
+>>>    ╎list element: 1.2.0.0/16
+>>>    ╎list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎list element: net24-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎list element: net-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 26)

@@ -247,9 +283,12 @@ LOG: 10HmbA-000000005vi-0000 <= userx@??? H=(test) [1.3.2.4] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -258,31 +297,38 @@ LOG: 10HmbA-000000005vi-0000 <= userx@??? H=(test) [1.3.2.4] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
->>>   list element: 1.2.3.4
->>>   list element: !1.2.3.0/24
->>>   list element: 1.2.0.0/16
->>>   list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "net16-lsearch;TESTSUITE/aux-fixed/0065.nets")
+>>>   start sublist relay_hosts
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
+>>>    ╎list element: 1.2.3.4
+>>>    ╎list element: !1.2.3.0/24
+>>>    ╎list element: 1.2.0.0/16
+>>>    ╎list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "net16-lsearch;TESTSUITE/aux-fixed/0065.nets")
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '131.111.8.2' value ''

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -304,9 +350,12 @@ LOG: 10HmbB-000000005vi-0000 <= userx@??? H=(test) [131.111.8.2
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -315,32 +364,39 @@ LOG: 10HmbB-000000005vi-0000 <= userx@??? H=(test) [131.111.8.2
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
->>>   list element: 1.2.3.4
->>>   list element: !1.2.3.0/24
->>>   list element: 1.2.0.0/16
->>>   list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   list element: net24-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "net24-lsearch;TESTSUITE/aux-fixed/0065.nets")
+>>>   start sublist relay_hosts
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
+>>>    ╎list element: 1.2.3.4
+>>>    ╎list element: !1.2.3.0/24
+>>>    ╎list element: 1.2.0.0/16
+>>>    ╎list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎list element: net24-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "net24-lsearch;TESTSUITE/aux-fixed/0065.nets")
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '192.152.98.3' value ''

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -362,9 +418,12 @@ LOG: 10HmbC-000000005vi-0000 <= userx@??? H=(test) [192.152.98.
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -373,33 +432,40 @@ LOG: 10HmbC-000000005vi-0000 <= userx@??? H=(test) [192.152.98.
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 24)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
->>>   list element: 1.2.3.4
->>>   list element: !1.2.3.0/24
->>>   list element: 1.2.0.0/16
->>>   list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   list element: net24-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   list element: net-lsearch;TESTSUITE/aux-fixed/0065.nets
->>>   host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "net-lsearch;TESTSUITE/aux-fixed/0065.nets")
+>>>   start sublist relay_hosts
+>>>    host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"?
+>>>    ╎list element: 1.2.3.4
+>>>    ╎list element: !1.2.3.0/24
+>>>    ╎list element: 1.2.0.0/16
+>>>    ╎list element: net16-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎list element: net24-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎list element: net-lsearch;TESTSUITE/aux-fixed/0065.nets
+>>>    ╎host in "1.2.3.4 : !1.2.3.0/24 : 1.2.0.0/16 : net16-lsearch;TESTSUITE/aux-fixed/0065.nets : net24-lsearch;TESTSUITE/aux-fixed/0065.nets : net-lsearch;TESTSUITE/aux-fixed/0065.nets"? yes (matched "net-lsearch;TESTSUITE/aux-fixed/0065.nets")
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '192.153.98.4' value ''

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0066 b/test/stderr/0066
index f8857bdfa..d2ba493b5 100644
--- a/test/stderr/0066
+++ b/test/stderr/0066
@@ -15,9 +15,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -26,35 +29,42 @@
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   list element: TESTSUITE/aux-var/0066.hostnets
->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "1.2.3.4" in TESTSUITE/aux-var/0066.hostnets)
+>>>    ╎list element: TESTSUITE/aux-var/0066.hostnets
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "1.2.3.4" in TESTSUITE/aux-var/0066.hostnets)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '1.2.3.4' value '1.2.3.4'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -76,9 +86,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [1.2.3.4] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -87,35 +100,42 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [1.2.3.4] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   list element: TESTSUITE/aux-var/0066.hostnets
->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "!1.2.3.0/24" in TESTSUITE/aux-var/0066.hostnets)
+>>>    ╎list element: TESTSUITE/aux-var/0066.hostnets
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "!1.2.3.0/24" in TESTSUITE/aux-var/0066.hostnets)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '1.2.3.5' value '1.2.3.0/24'

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 23)

@@ -141,9 +161,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [1.2.3.5] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -152,35 +175,42 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [1.2.3.5] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   list element: TESTSUITE/aux-var/0066.hostnets
->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "1.2.0.0/16" in TESTSUITE/aux-var/0066.hostnets)
+>>>    ╎list element: TESTSUITE/aux-var/0066.hostnets
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "1.2.0.0/16" in TESTSUITE/aux-var/0066.hostnets)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '1.2.4.5' value '1.2.0.0/16'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -202,9 +232,12 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [1.2.4.5] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -213,38 +246,44 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [1.2.4.5] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   list element: TESTSUITE/aux-var/0066.hostnets
+>>>    ╎list element: TESTSUITE/aux-var/0066.hostnets

>>> sender host name required, to match against *-1.test.ex
>>> looking up host name for 1.3.2.4

 LOG: no host name found for IP address 1.3.2.4
->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? no (failed to find host name for 1.3.2.4)
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? no (failed to find host name for 1.3.2.4)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 23)

@@ -270,9 +309,12 @@ LOG: 10HmbA-000000005vi-0000 <= userx@??? H=(test) [1.3.2.4] P=
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -281,35 +323,42 @@ LOG: 10HmbA-000000005vi-0000 <= userx@??? H=(test) [1.3.2.4] P=
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   list element: TESTSUITE/aux-var/0066.hostnets
->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "net16-lsearch;TESTSUITE/aux-fixed/0066.nets" in TESTSUITE/aux-var/0066.hostnets)
+>>>    ╎list element: TESTSUITE/aux-var/0066.hostnets
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "net16-lsearch;TESTSUITE/aux-fixed/0066.nets" in TESTSUITE/aux-var/0066.hostnets)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '131.111.8.2' value 'net16-lsearch;TESTSUITE/aux-fixed/0066.nets'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -331,9 +380,12 @@ LOG: 10HmbB-000000005vi-0000 <= userx@??? H=(test) [131.111.8.2
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -342,35 +394,42 @@ LOG: 10HmbB-000000005vi-0000 <= userx@??? H=(test) [131.111.8.2
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   list element: TESTSUITE/aux-var/0066.hostnets
->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "net24-lsearch;TESTSUITE/aux-fixed/0066.nets" in TESTSUITE/aux-var/0066.hostnets)
+>>>    ╎list element: TESTSUITE/aux-var/0066.hostnets
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "net24-lsearch;TESTSUITE/aux-fixed/0066.nets" in TESTSUITE/aux-var/0066.hostnets)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key '192.152.98.3' value 'net24-lsearch;TESTSUITE/aux-fixed/0066.nets'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -392,9 +451,12 @@ LOG: 10HmbC-000000005vi-0000 <= userx@??? H=(test) [192.152.98.
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -403,40 +465,49 @@ LOG: 10HmbC-000000005vi-0000 <= userx@??? H=(test) [192.152.98.
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   list element: TESTSUITE/aux-var/0066.hostnets
+>>>    ╎list element: TESTSUITE/aux-var/0066.hostnets

>>> sender host name required, to match against *-1.test.ex
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>>    ╎ten-1.test.ex not in empty list (option unset? cannot trace name)

>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK

->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "*-1.test.ex" in TESTSUITE/aux-var/0066.hostnets)
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? yes (matched "*-1.test.ex" in TESTSUITE/aux-var/0066.hostnets)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.0.0.1' value '*-1.test.ex'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -458,9 +529,12 @@ LOG: 10HmbD-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -469,31 +543,38 @@ LOG: 10HmbD-000000005vi-0000 <= userx@??? H=ten-1.test.ex (test
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? no (matched "black-1.test.ex" in TESTSUITE/aux-fixed/0066.nothosts)
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? no (matched "black-1.test.ex" in TESTSUITE/aux-fixed/0066.nothosts)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.11.12.13' value 'black-1.test.ex'

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 23)

@@ -519,9 +600,12 @@ LOG: 10HmbE-000000005vi-0000 <= userx@??? H=(test) [V4NET.11.12
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -530,34 +614,41 @@ LOG: 10HmbE-000000005vi-0000 <= userx@??? H=(test) [V4NET.11.12
>>> check domains = +local_domains
>>> anotherhost.example.com in "+local_domains"?
>>> list element: +local_domains

->>>  anotherhost.example.com in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   list element: myhost.ex
->>>  anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    anotherhost.example.com in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: myhost.ex
+>>>    anotherhost.example.com in "test.ex : myhost.ex"? no (end of list)
+>>>   end sublist local_domains

>>> anotherhost.example.com in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)
>>> check domains = +relay_domains
>>> anotherhost.example.com in "+relay_domains"?
>>> list element: +relay_domains

->>>  anotherhost.example.com in "test.ex"?
->>>   list element: test.ex
->>>  anotherhost.example.com in "test.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    anotherhost.example.com in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    anotherhost.example.com in "test.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> anotherhost.example.com in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
->>>   list element: !TESTSUITE/aux-fixed/0066.nothosts
+>>>   start sublist relay_hosts
+>>>    host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"?
+>>>    ╎list element: !TESTSUITE/aux-fixed/0066.nothosts
 MUNGED: ::1 will be omitted in what follows

>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=black-1.test.ex address=V4NET.11.12.13

MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=ten-3.test.ex address=V4NET.0.0.3

->>>   host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? no (matched "!ten-3.test.ex" in TESTSUITE/aux-fixed/0066.nothosts)
+>>>    ╎host in "!TESTSUITE/aux-fixed/0066.nothosts : TESTSUITE/aux-var/0066.hostnets"? no (matched "!ten-3.test.ex" in TESTSUITE/aux-fixed/0066.nothosts)
+>>>   end sublist relay_hosts
+>>>  data from lookup saved for cache for +relay_hosts: key 'V4NET.0.0.3' value 'ten-3.test.ex'

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0067 b/test/stderr/0067
index 234a174bc..90015dd18 100644
--- a/test/stderr/0067
+++ b/test/stderr/0067
@@ -36,12 +36,12 @@
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> somehost.example.com in "bb.cc"?
>>> list element: bb.cc
>>> somehost.example.com in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> somehost.example.com in "bbb.ccc"?

@@ -60,9 +60,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -99,9 +102,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -222,9 +228,12 @@ LOG: H=(test) [1.2.3.4] F=<quilt@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -312,12 +321,12 @@ LOG: H=(test) [1.2.3.4] F=<abc@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> d.e.f in "bb.cc"?
>>> list element: bb.cc
>>> d.e.f in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> d.e.f in "bbb.ccc"?

@@ -336,9 +345,12 @@ LOG: H=(test) [1.2.3.4] F=<abc@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -382,9 +394,12 @@ LOG: H=(test) [1.2.3.4] F=<abc@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -444,12 +459,12 @@ LOG: H=(test) [1.2.3.4] F=<abc@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> z.z in "bb.cc"?
>>> list element: bb.cc
>>> z.z in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> z.z in "bbb.ccc"?

@@ -468,9 +483,12 @@ LOG: H=(test) [1.2.3.4] F=<abc@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -590,12 +608,12 @@ LOG: H=(test) [1.2.3.4] F=<12345678@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> p.q.r in "bb.cc"?
>>> list element: bb.cc
>>> p.q.r in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> p.q.r in "bbb.ccc"?

@@ -617,9 +635,12 @@ LOG: H=(test) [1.2.3.4] F=<12345678@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -649,12 +670,12 @@ LOG: H=(test) [1.2.3.4] F=<12345678@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> m.n.o in "bb.cc"?
>>> list element: bb.cc
>>> m.n.o in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> m.n.o in "bbb.ccc"?

@@ -733,12 +754,12 @@ LOG: H=(test) [1.2.3.4] F=<1234@???> rejected RCPT <userx@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> a.b.c in "bb.cc"?
>>> list element: bb.cc
>>> a.b.c in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> a.b.c in "bbb.ccc"?

@@ -784,12 +805,12 @@ LOG: H=(test) [1.2.3.4] F=<rr01@???> rejected RCPT <userx@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> a.b.c in "bb.cc"?
>>> list element: bb.cc
>>> a.b.c in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> a.b.c in "bbb.ccc"?

@@ -808,9 +829,12 @@ LOG: H=(test) [1.2.3.4] F=<rr01@???> rejected RCPT <userx@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -840,12 +864,12 @@ LOG: H=(test) [1.2.3.4] F=<rr01@???> rejected RCPT <userx@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> a.b.c in "bb.cc"?
>>> list element: bb.cc
>>> a.b.c in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> a.b.c in "bbb.ccc"?

@@ -888,12 +912,12 @@ LOG: H=(test) [1.2.3.4] F=<qq@???> rejected RCPT <userx@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> z.z in "bb.cc"?
>>> list element: bb.cc
>>> z.z in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> z.z in "bbb.ccc"?

@@ -936,12 +960,12 @@ LOG: H=(test) [1.2.3.4] F=<!excl@???> rejected RCPT <userx@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> y.p.s in "bb.cc"?
>>> list element: bb.cc
>>> y.p.s in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> y.p.s in "bbb.ccc"?

@@ -987,12 +1011,12 @@ LOG: H=(test) [1.2.3.4] F=<sh#rp@???> rejected RCPT <userx@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> xx.yy in "bb.cc"?
>>> list element: bb.cc
>>> xx.yy in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> xx.yy in "bbb.ccc"?

@@ -1011,9 +1035,12 @@ LOG: H=(test) [1.2.3.4] F=<sh#rp@???> rejected RCPT <userx@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -1106,7 +1133,7 @@ LOG: H=(test) [1.2.3.4] F=<aabc@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> bb.cc in "bb.cc"?
>>> list element: bb.cc
>>> bb.cc in "bb.cc"? yes (matched "bb.cc")

@@ -1123,9 +1150,12 @@ LOG: H=(test) [1.2.3.4] F=<aabc@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -1155,7 +1185,7 @@ LOG: H=(test) [1.2.3.4] F=<aabc@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> bb.cc in "bb.cc"?
>>> list element: bb.cc

@@ -1193,7 +1223,7 @@ LOG: H=(test) [1.2.3.4] F=<y@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> bbb.ccc in "bb.cc"?
>>> list element: bb.cc
>>> bbb.ccc in "bb.cc"? no (end of list)

@@ -1201,7 +1231,7 @@ LOG: H=(test) [1.2.3.4] F=<y@???> rejected RCPT <x@???>
>>> bbb.ccc in "bb.cc"?
>>> list element: bb.cc
>>> bbb.ccc in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> bbb.ccc in "bbb.ccc"?
>>> list element: bbb.ccc
>>> bbb.ccc in "bbb.ccc"? yes (matched "bbb.ccc")

@@ -1218,9 +1248,12 @@ LOG: H=(test) [1.2.3.4] F=<y@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -1250,12 +1283,12 @@ LOG: H=(test) [1.2.3.4] F=<y@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> bbb.ccc in "bb.cc"?
>>> list element: bb.cc
>>> bbb.ccc in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> bbb.ccc in "bbb.ccc"?
>>> list element: bbb.ccc

@@ -1273,9 +1306,12 @@ LOG: H=(test) [1.2.3.4] F=<y@???> rejected RCPT <x@???>
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -1305,12 +1341,12 @@ LOG: H=(test) [1.2.3.4] F=<y@???> rejected RCPT <x@???>
>>> list element: !yy@lsearch;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: lsearch*@;TESTSUITE/aux-fixed/0067.rej.lsearch
>>> list element: @@lsearch*;TESTSUITE/aux-fixed/0067.rej.bydomain

->>> list element: ! x@???
+>>> list element: !░x@???
>>> list element: *@bb.cc
>>> bbb.ccc in "bb.cc"?
>>> list element: bb.cc
>>> bbb.ccc in "bb.cc"? no (end of list)

->>> list element: ! TESTSUITE/aux-fixed/0067.not1
+>>> list element: !░TESTSUITE/aux-fixed/0067.not1
>>> list element: !TESTSUITE/aux-fixed/0067.not2
>>> list element: bbb.ccc
>>> bbb.ccc in "bbb.ccc"?

diff --git a/test/stderr/0069 b/test/stderr/0069
index 449102e17..71ffec767 100644
--- a/test/stderr/0069
+++ b/test/stderr/0069
@@ -7,6 +7,8 @@
>>> sender host name required, to match against ^ten-1\.test\.ex
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK
>>> host in sender_unqualified_hosts? yes (matched "^ten-1\.test\.ex")

diff --git a/test/stderr/0070 b/test/stderr/0070
index 01c0798b4..4e4a38a3c 100644
--- a/test/stderr/0070
+++ b/test/stderr/0070
@@ -136,6 +136,8 @@ MUNGED: ::1 will be omitted in what follows
>>> verifying EHLO/HELO argument "ten-1.test.ex"
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK
>>> matched host name

@@ -163,8 +165,12 @@ MUNGED: ::1 will be omitted in what follows
>>> looking up host name for V4NET.0.0.3
>>> IP address lookup yielded "ten-3.test.ex"
>>> alias "ten-3-alias.test.ex"

+>>> ten-3.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-3.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-3.test.ex
>>> V4NET.0.0.3 OK

+>>> ten-3-alias.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-3-alias.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-3-alias.test.ex
>>> V4NET.0.0.3 OK
>>> matched host name

@@ -201,6 +207,8 @@ MUNGED: ::1 will be omitted in what follows
>>> verifying EHLO/HELO argument "rhubarb"
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK
>>> getting IP address for rhubarb

diff --git a/test/stderr/0077 b/test/stderr/0077
index 855456f48..5eb31ed01 100644
--- a/test/stderr/0077
+++ b/test/stderr/0077
@@ -14,11 +14,11 @@
>>> processing "deny" (TESTSUITE/test-config 18)
>>> check hosts = ! @ : ! localhost
>>> host in "! @ : ! localhost"?

->>> list element: ! @
+>>> list element: !░@
MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=myhost.test.ex address=V4NET.10.10.10

->>> list element: ! localhost
+>>> list element: !░localhost
MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=localhost address=127.0.0.1

@@ -28,9 +28,12 @@ MUNGED: ::1 will be omitted in what follows
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -50,7 +53,7 @@ MUNGED: ::1 will be omitted in what follows
>>> processing "deny" (TESTSUITE/test-config 18)
>>> check hosts = ! @ : ! localhost
>>> host in "! @ : ! localhost"?

->>> list element: ! @
+>>> list element: !░@
MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=myhost.test.ex address=V4NET.10.10.10

@@ -60,9 +63,12 @@ MUNGED: ::1 will be omitted in what follows
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : myhost.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : myhost.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -82,11 +88,11 @@ MUNGED: ::1 will be omitted in what follows
>>> processing "deny" (TESTSUITE/test-config 18)
>>> check hosts = ! @ : ! localhost
>>> host in "! @ : ! localhost"?

->>> list element: ! @
+>>> list element: !░@
MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=myhost.test.ex address=V4NET.10.10.10

->>> list element: ! localhost
+>>> list element: !░localhost
MUNGED: ::1 will be omitted in what follows
>>> get[host|ipnode]byname[2] looked up these IP addresses:
>>> name=localhost address=127.0.0.1

diff --git a/test/stderr/0078 b/test/stderr/0078
index 58266f252..4e3fcd902 100644
--- a/test/stderr/0078
+++ b/test/stderr/0078
@@ -7,6 +7,8 @@ routing xx@???
 --------> lookuphost router <--------
 local_part=xx domain=mxt6.test.ex
 checking domains
+mxt6.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt6.test.ex in domains? yes (end of list)
 calling lookuphost router
 lookuphost router called for xx@???
   domain = mxt6.test.ex
@@ -29,6 +31,8 @@ routing myhost.test.ex@???
 --------> lookuphost router <--------
 local_part=myhost.test.ex domain=mxt1.test.ex
 checking domains
+mxt1.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt1.test.ex in domains? yes (end of list)
 calling lookuphost router
 lookuphost router called for myhost.test.ex@???
   domain = mxt1.test.ex
@@ -37,6 +41,7 @@ lookuphost router passed for myhost.test.ex@???
 --------> self router <--------
 local_part=myhost.test.ex domain=mxt1.test.ex
 checking domains
+mxt1.test.ex in domains? yes (end of list)
 self_hostname=eximtesthost.test.ex
 calling self router
 self router called for myhost.test.ex@???
@@ -65,6 +70,8 @@ routing xx@???
 --------> lookuphost router <--------
 local_part=xx domain=mxt1.test.ex
 checking domains
+mxt1.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt1.test.ex in domains? yes (end of list)
 calling lookuphost router
 lookuphost router called for xx@???
   domain = mxt1.test.ex
@@ -73,6 +80,7 @@ lookuphost router passed for xx@???
 --------> self router <--------
 local_part=xx domain=mxt1.test.ex
 checking domains
+mxt1.test.ex in domains? yes (end of list)
 self_hostname=eximtesthost.test.ex
 calling self router
 self router called for xx@???
@@ -87,6 +95,7 @@ self router passed for xx@???
 --------> self2 router <--------
 local_part=xx domain=mxt1.test.ex
 checking domains
+mxt1.test.ex in domains? yes (end of list)
 self_hostname=eximtesthost.test.ex
 calling self2 router
 self2 router called for xx@???
@@ -115,6 +124,8 @@ routing xx@???
 --------> lookuphost router <--------
 local_part=xx domain=not-exist.test.ex
 checking domains
+not-exist.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+not-exist.test.ex in domains? yes (end of list)
 calling lookuphost router
 lookuphost router called for xx@???
   domain = not-exist.test.ex
diff --git a/test/stderr/0085 b/test/stderr/0085
index 5befd2cfd..e2c2407ae 100644
--- a/test/stderr/0085
+++ b/test/stderr/0085
@@ -19,22 +19,22 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=y.z
 checking domains
-y.z in "smart.domain"?
+y.z in domains?
  list element: smart.domain
-y.z in "smart.domain"? no (end of list)
+y.z in domains? no (end of list)
 smart1 router skipped: domains mismatch
 --------> fail_remote_domains router <--------
 local_part=x domain=y.z
 checking domains
-y.z in "! +local_domains"?
- list element: ! +local_domains
+y.z in domains?
+ list element: !░+local_domains
   start sublist local_domains
    y.z in "test.ex : myhost.test.ex"?
    ╎list element: test.ex
    ╎list element: myhost.test.ex
    y.z in "test.ex : myhost.test.ex"? no (end of list)
   end sublist local_domains
-y.z in "! +local_domains"? yes (end of list)
+y.z in domains? yes (end of list)
 calling fail_remote_domains router
 rda_interpret (string): ':fail: unrouteable mail domain "$domain"'
 expanded: ':fail: unrouteable mail domain "y.z"' (tainted)
@@ -51,9 +51,9 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=smart.domain
 checking domains
-smart.domain in "smart.domain"?
+smart.domain in domains?
  list element: smart.domain
- smart.domain in "smart.domain"? yes (matched "smart.domain")
+ smart.domain in domains? yes (matched "smart.domain")
 checking local_parts
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
  search_find: file="TESTSUITE/aux-fixed/0085.data"
@@ -67,9 +67,9 @@ checking local_parts
    in TESTSUITE/aux-fixed/0085.data
  creating new cache entry
  lookup yielded: x░:░y░:░abc@???
-x in "x : y : abc@???"?
+x in local_parts?
  list element: x
- x in "x : y : abc@???"? yes (matched "x")
+ x in local_parts? yes (matched "x")
 checking senders
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
    cached open
@@ -83,7 +83,7 @@ checking senders
  cached data used for lookup of smart.domain
    in TESTSUITE/aux-fixed/0085.data
  lookup yielded: x░:░y░:░abc@???
-abc@??? in "x : y : abc@???"?
+abc@??? in senders?
  list element: x
  address match test: subject=abc@??? pattern=x
  d.e.f in "x"?
@@ -99,7 +99,7 @@ abc@??? in "x : y : abc@???"?
  d.e.f in "d.e.f"?
   list element: d.e.f
   d.e.f in "d.e.f"? yes (matched "d.e.f")
- abc@??? in "x : y : abc@???"? yes (matched "abc@???")
+ abc@??? in senders? yes (matched "abc@???")
 calling smart1 router
 smart1 router called for x@???
   domain = smart.domain
@@ -125,29 +125,29 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=test.ex
 checking domains
-test.ex in "smart.domain"?
+test.ex in domains?
  list element: smart.domain
-test.ex in "smart.domain"? no (end of list)
+test.ex in domains? no (end of list)
 smart1 router skipped: domains mismatch
 --------> fail_remote_domains router <--------
 local_part=x domain=test.ex
 checking domains
-test.ex in "! +local_domains"?
- list element: ! +local_domains
+test.ex in domains?
+ list element: !░+local_domains
   start sublist local_domains
    test.ex in "test.ex : myhost.test.ex"?
    ╎list element: test.ex
    ╎test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
- test.ex in "! +local_domains"? no (matched "! +local_domains")
+ test.ex in domains? no (matched "! +local_domains")
 fail_remote_domains router skipped: domains mismatch
 --------> smart2 router <--------
 local_part=x domain=test.ex
 checking domains
-test.ex in "test.ex"?
+test.ex in domains?
  list element: test.ex
- test.ex in "test.ex"? yes (matched "test.ex")
+ test.ex in domains? yes (matched "test.ex")
 checking local_parts
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
    cached open
@@ -162,9 +162,9 @@ checking local_parts
    in TESTSUITE/aux-fixed/0085.data
  creating new cache entry
  lookup yielded: x░:░y░:░abc@???
-x in "x : y : abc@???"?
+x in local_parts?
  list element: x
- x in "x : y : abc@???"? yes (matched "x")
+ x in local_parts? yes (matched "x")
 checking senders
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
    cached open
@@ -178,7 +178,7 @@ checking senders
  cached data used for lookup of test.ex
    in TESTSUITE/aux-fixed/0085.data
  lookup yielded: x░:░y░:░abc@???
-abc@??? in "x : y : abc@???"?
+abc@??? in senders?
  list element: x
  address match test: subject=abc@??? pattern=x
  d.e.f in "x"?
@@ -194,7 +194,7 @@ abc@??? in "x : y : abc@???"?
  d.e.f in "d.e.f"?
   list element: d.e.f
   d.e.f in "d.e.f"? yes (matched "d.e.f")
- abc@??? in "x : y : abc@???"? yes (matched "abc@???")
+ abc@??? in senders? yes (matched "abc@???")
 checking require_files
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
    cached open
@@ -232,15 +232,15 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=myhost.test.ex
 checking domains
-myhost.test.ex in "smart.domain"?
+myhost.test.ex in domains?
  list element: smart.domain
-myhost.test.ex in "smart.domain"? no (end of list)
+myhost.test.ex in domains? no (end of list)
 smart1 router skipped: domains mismatch
 --------> fail_remote_domains router <--------
 local_part=x domain=myhost.test.ex
 checking domains
-myhost.test.ex in "! +local_domains"?
- list element: ! +local_domains
+myhost.test.ex in domains?
+ list element: !░+local_domains
   start sublist local_domains
    myhost.test.ex in "test.ex : myhost.test.ex"?
    ╎list element: test.ex
@@ -248,14 +248,14 @@ myhost.test.ex in "! +local_domains"?
    ╎myhost.test.ex in "test.ex : myhost.test.ex"? yes (matched "myhost.test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'myhost.test.ex' value 'myhost.test.ex'
- myhost.test.ex in "! +local_domains"? no (matched "! +local_domains")
+ myhost.test.ex in domains? no (matched "! +local_domains")
 fail_remote_domains router skipped: domains mismatch
 --------> smart2 router <--------
 local_part=x domain=myhost.test.ex
 checking domains
-myhost.test.ex in "test.ex"?
+myhost.test.ex in domains?
  list element: test.ex
-myhost.test.ex in "test.ex"? no (end of list)
+myhost.test.ex in domains? no (end of list)
 smart2 router skipped: domains mismatch
 no more routers
 search_tidyup called
@@ -281,22 +281,22 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=y.z
 checking domains
-y.z in "smart.domain"?
+y.z in domains?
  list element: smart.domain
-y.z in "smart.domain"? no (end of list)
+y.z in domains? no (end of list)
 smart1 router skipped: domains mismatch
 --------> fail_remote_domains router <--------
 local_part=x domain=y.z
 checking domains
-y.z in "! +local_domains"?
- list element: ! +local_domains
+y.z in domains?
+ list element: !░+local_domains
   start sublist local_domains
    y.z in "test.ex : myhost.test.ex"?
    ╎list element: test.ex
    ╎list element: myhost.test.ex
    y.z in "test.ex : myhost.test.ex"? no (end of list)
   end sublist local_domains
-y.z in "! +local_domains"? yes (end of list)
+y.z in domains? yes (end of list)
 calling fail_remote_domains router
 rda_interpret (string): ':fail: unrouteable mail domain "$domain"'
 expanded: ':fail: unrouteable mail domain "y.z"' (tainted)
@@ -313,9 +313,9 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=smart.domain
 checking domains
-smart.domain in "smart.domain"?
+smart.domain in domains?
  list element: smart.domain
- smart.domain in "smart.domain"? yes (matched "smart.domain")
+ smart.domain in domains? yes (matched "smart.domain")
 checking local_parts
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
  search_find: file="TESTSUITE/aux-fixed/0085.data"
@@ -329,9 +329,9 @@ checking local_parts
    in TESTSUITE/aux-fixed/0085.data
  creating new cache entry
  lookup yielded: x░:░y░:░abc@???
-x in "x : y : abc@???"?
+x in local_parts?
  list element: x
- x in "x : y : abc@???"? yes (matched "x")
+ x in local_parts? yes (matched "x")
 checking senders
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
    cached open
@@ -345,7 +345,7 @@ checking senders
  cached data used for lookup of smart.domain
    in TESTSUITE/aux-fixed/0085.data
  lookup yielded: x░:░y░:░abc@???
-CALLER@??? in "x : y : abc@???"?
+CALLER@??? in senders?
  list element: x
  address match test: subject=CALLER@??? pattern=x
  myhost.test.ex in "x"?
@@ -358,20 +358,20 @@ CALLER@??? in "x : y : abc@???"?
  myhost.test.ex in "y"? no (end of list)
  list element: abc@???
  address match test: subject=CALLER@??? pattern=abc@???
-CALLER@??? in "x : y : abc@???"? no (end of list)
+CALLER@??? in senders? no (end of list)
 smart1 router skipped: senders mismatch
 --------> fail_remote_domains router <--------
 local_part=x domain=smart.domain
 checking domains
-smart.domain in "! +local_domains"?
- list element: ! +local_domains
+smart.domain in domains?
+ list element: !░+local_domains
   start sublist local_domains
    smart.domain in "test.ex : myhost.test.ex"?
    ╎list element: test.ex
    ╎list element: myhost.test.ex
    smart.domain in "test.ex : myhost.test.ex"? no (end of list)
   end sublist local_domains
-smart.domain in "! +local_domains"? yes (end of list)
+smart.domain in domains? yes (end of list)
 calling fail_remote_domains router
 rda_interpret (string): ':fail: unrouteable mail domain "$domain"'
 expanded: ':fail: unrouteable mail domain "smart.domain"' (tainted)
@@ -388,29 +388,29 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=test.ex
 checking domains
-test.ex in "smart.domain"?
+test.ex in domains?
  list element: smart.domain
-test.ex in "smart.domain"? no (end of list)
+test.ex in domains? no (end of list)
 smart1 router skipped: domains mismatch
 --------> fail_remote_domains router <--------
 local_part=x domain=test.ex
 checking domains
-test.ex in "! +local_domains"?
- list element: ! +local_domains
+test.ex in domains?
+ list element: !░+local_domains
   start sublist local_domains
    test.ex in "test.ex : myhost.test.ex"?
    ╎list element: test.ex
    ╎test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
- test.ex in "! +local_domains"? no (matched "! +local_domains")
+ test.ex in domains? no (matched "! +local_domains")
 fail_remote_domains router skipped: domains mismatch
 --------> smart2 router <--------
 local_part=x domain=test.ex
 checking domains
-test.ex in "test.ex"?
+test.ex in domains?
  list element: test.ex
- test.ex in "test.ex"? yes (matched "test.ex")
+ test.ex in domains? yes (matched "test.ex")
 checking local_parts
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
    cached open
@@ -425,9 +425,9 @@ checking local_parts
    in TESTSUITE/aux-fixed/0085.data
  creating new cache entry
  lookup yielded: x░:░y░:░abc@???
-x in "x : y : abc@???"?
+x in local_parts?
  list element: x
- x in "x : y : abc@???"? yes (matched "x")
+ x in local_parts? yes (matched "x")
 checking senders
  search_open: lsearch "TESTSUITE/aux-fixed/0085.data"
    cached open
@@ -441,7 +441,7 @@ checking senders
  cached data used for lookup of test.ex
    in TESTSUITE/aux-fixed/0085.data
  lookup yielded: x░:░y░:░abc@???
-CALLER@??? in "x : y : abc@???"?
+CALLER@??? in senders?
  list element: x
  address match test: subject=CALLER@??? pattern=x
  myhost.test.ex in "x"?
@@ -454,7 +454,7 @@ CALLER@??? in "x : y : abc@???"?
  myhost.test.ex in "y"? no (end of list)
  list element: abc@???
  address match test: subject=CALLER@??? pattern=abc@???
-CALLER@??? in "x : y : abc@???"? no (end of list)
+CALLER@??? in senders? no (end of list)
 smart2 router skipped: senders mismatch
 no more routers

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -466,15 +466,15 @@ routing x@???
 --------> smart1 router <--------
 local_part=x domain=myhost.test.ex
 checking domains
-myhost.test.ex in "smart.domain"?
+myhost.test.ex in domains?
  list element: smart.domain
-myhost.test.ex in "smart.domain"? no (end of list)
+myhost.test.ex in domains? no (end of list)
 smart1 router skipped: domains mismatch
 --------> fail_remote_domains router <--------
 local_part=x domain=myhost.test.ex
 checking domains
-myhost.test.ex in "! +local_domains"?
- list element: ! +local_domains
+myhost.test.ex in domains?
+ list element: !░+local_domains
   start sublist local_domains
    myhost.test.ex in "test.ex : myhost.test.ex"?
    ╎list element: test.ex
@@ -482,14 +482,14 @@ myhost.test.ex in "! +local_domains"?
    ╎myhost.test.ex in "test.ex : myhost.test.ex"? yes (matched "myhost.test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'myhost.test.ex' value 'myhost.test.ex'
- myhost.test.ex in "! +local_domains"? no (matched "! +local_domains")
+ myhost.test.ex in domains? no (matched "! +local_domains")
 fail_remote_domains router skipped: domains mismatch
 --------> smart2 router <--------
 local_part=x domain=myhost.test.ex
 checking domains
-myhost.test.ex in "test.ex"?
+myhost.test.ex in domains?
  list element: test.ex
-myhost.test.ex in "test.ex"? no (end of list)
+myhost.test.ex in domains? no (end of list)
 smart2 router skipped: domains mismatch
 no more routers
 search_tidyup called
diff --git a/test/stderr/0087 b/test/stderr/0087
index 29ea14896..c063ea195 100644
--- a/test/stderr/0087
+++ b/test/stderr/0087
@@ -21,12 +21,12 @@

>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "defer"?
+>>> userx in local_parts?
>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -35,9 +35,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -75,12 +78,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "defer"?
+>>> userx in local_parts?
>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -89,9 +92,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -130,12 +136,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "defer"?
+>>> userx in local_parts?
>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -144,9 +150,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -157,12 +166,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> verifying From: header address badbad@???
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing badbad@???

->>> badbad in "defer"?
+>>> badbad in local_parts?
>>> list element: defer

->>> badbad in "defer"? no (end of list)
->>> badbad in "userx"?
+>>> badbad in local_parts? no (end of list)
+>>> badbad in local_parts?
>>> list element: userx

->>> badbad in "userx"? no (end of list)
+>>> badbad in local_parts? no (end of list)
>>> no more routers
>>> require: condition test failed in ACL "check_message"
>>> end of ACL "check_message": not OK

@@ -190,12 +199,12 @@ LOG: 10HmbA-000000005vi-0000 H=(test) [V4NET.10.10.10] F=<userx@???> rejecte
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "defer"?
+>>> userx in local_parts?
>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -204,9 +213,12 @@ LOG: 10HmbA-000000005vi-0000 H=(test) [V4NET.10.10.10] F=<userx@???> rejecte
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -217,12 +229,12 @@ LOG: 10HmbA-000000005vi-0000 H=(test) [V4NET.10.10.10] F=<userx@???> rejecte
>>> verifying From: header address badbad@???
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing badbad@???

->>> badbad in "defer"?
+>>> badbad in local_parts?
>>> list element: defer

->>> badbad in "defer"? no (end of list)
->>> badbad in "userx"?
+>>> badbad in local_parts? no (end of list)
+>>> badbad in local_parts?
>>> list element: userx

->>> badbad in "userx"? no (end of list)
+>>> badbad in local_parts? no (end of list)
>>> no more routers
>>> verifying From: header address userx@???
>>> previously checked as envelope sender

@@ -254,12 +266,12 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "defer"?
+>>> userx in local_parts?
>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -268,9 +280,12 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -281,9 +296,9 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@??? H=(test) [V4NET.10.10.10] P=smtp S
>>> verifying From: header address defer@???
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing defer@???

->>> defer in "defer"?
+>>> defer in local_parts?
>>> list element: defer

->>> defer in "defer"? yes (matched "defer")
+>>> defer in local_parts? yes (matched "defer")
>>> calling defer router
>>> defer router: defer for defer@???
>>> message: this is a forced defer

diff --git a/test/stderr/0089 b/test/stderr/0089
index 369e13cef..8490d3b0e 100644
--- a/test/stderr/0089
+++ b/test/stderr/0089
@@ -33,9 +33,12 @@ LOG: rejected HELO from [V4NET.0.0.0]: syntactically invalid argument(s): @#$%^&
 >>>   check domains = +local_domains
 >>>   test.ex in "+local_domains"?
 >>>    list element: +local_domains

->>>    test.ex in "Test.ex : myhost.test.EX"?
->>>    ╎list element: Test.ex
->>>    ╎test.ex in "Test.ex : myhost.test.EX"? yes (matched "Test.ex")
+>>>     start sublist local_domains
+>>>    ╎ test.ex in "Test.ex : myhost.test.EX"?
+>>>    ╎  list element: Test.ex
+>>>    ╎  test.ex in "Test.ex : myhost.test.EX"? yes (matched "Test.ex")
+>>>     end sublist local_domains
+>>>    data from lookup saved for cache for +local_domains: key 'test.ex' value 'Test.ex'

 >>>    test.ex in "+local_domains"? yes (matched "+local_domains")
 >>>   accept: condition test succeeded in ACL "check_recipient"
 >>>   end of ACL "check_recipient": ACCEPT

@@ -50,20 +53,24 @@ LOG: rejected HELO from [V4NET.0.0.0]: syntactically invalid argument(s): @#$%^&
 >>>   check domains = +local_domains
 >>>   else.where in "+local_domains"?
 >>>    list element: +local_domains

->>>    else.where in "Test.ex : myhost.test.EX"?
->>>    ╎list element: Test.ex
->>>    ╎list element: myhost.test.EX
->>>    else.where in "Test.ex : myhost.test.EX"? no (end of list)
+>>>     start sublist local_domains
+>>>    ╎ else.where in "Test.ex : myhost.test.EX"?
+>>>    ╎  list element: Test.ex
+>>>    ╎  list element: myhost.test.EX
+>>>    ╎ else.where in "Test.ex : myhost.test.EX"? no (end of list)
+>>>     end sublist local_domains

 >>>   else.where in "+local_domains"? no (end of list)
 >>>   accept: condition test failed in ACL "check_recipient"
 >>>   processing "accept" (TESTSUITE/test-config 26)
 >>>   check domains = +relay_domains
 >>>   else.where in "+relay_domains"?
 >>>    list element: +relay_domains

->>>    else.where in "Test.ex : Relay.one.ex"?
->>>    ╎list element: Test.ex
->>>    ╎list element: Relay.one.ex
->>>    else.where in "Test.ex : Relay.one.ex"? no (end of list)
+>>>     start sublist relay_domains
+>>>    ╎ else.where in "Test.ex : Relay.one.ex"?
+>>>    ╎  list element: Test.ex
+>>>    ╎  list element: Relay.one.ex
+>>>    ╎ else.where in "Test.ex : Relay.one.ex"? no (end of list)
+>>>     end sublist relay_domains

>>> else.where in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 27)

@@ -79,6 +86,8 @@ LOG: H=(abc_xyz) [V4NET.0.0.0] F=<userx@???> rejected RCPT <userx@else
>>> sender host name required, to match against *N-99.test.EX
>>> looking up host name for V4NET.0.0.99
>>> IP address lookup yielded "ten-99.test.ex"

+>>> ten-99.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-99.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-99.test.ex
>>> V4NET.0.0.99 OK
>>> host in sender_unqualified_hosts? yes (matched "*N-99.test.EX")

@@ -99,20 +108,25 @@ LOG: H=(abc_xyz) [V4NET.0.0.0] F=<userx@???> rejected RCPT <userx@else
>>> check domains = +local_domains
>>> relay.one.ex in "+local_domains"?
>>> list element: +local_domains

->>>  relay.one.ex in "Test.ex : myhost.test.EX"?
->>>   list element: Test.ex
->>>   list element: myhost.test.EX
->>>  relay.one.ex in "Test.ex : myhost.test.EX"? no (end of list)
+>>>   start sublist local_domains
+>>>    relay.one.ex in "Test.ex : myhost.test.EX"?
+>>>    ╎list element: Test.ex
+>>>    ╎list element: myhost.test.EX
+>>>    relay.one.ex in "Test.ex : myhost.test.EX"? no (end of list)
+>>>   end sublist local_domains

>>> relay.one.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 26)
>>> check domains = +relay_domains
>>> relay.one.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  relay.one.ex in "Test.ex : Relay.one.ex"?
->>>   list element: Test.ex
->>>   list element: Relay.one.ex
->>>   relay.one.ex in "Test.ex : Relay.one.ex"? yes (matched "Relay.one.ex")
+>>>   start sublist relay_domains
+>>>    relay.one.ex in "Test.ex : Relay.one.ex"?
+>>>    ╎list element: Test.ex
+>>>    ╎list element: Relay.one.ex
+>>>    ╎relay.one.ex in "Test.ex : Relay.one.ex"? yes (matched "Relay.one.ex")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key 'relay.one.ex' value 'Relay.one.ex'

>>> relay.one.ex in "+relay_domains"? yes (matched "+relay_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -127,20 +141,24 @@ LOG: H=(abc_xyz) [V4NET.0.0.0] F=<userx@???> rejected RCPT <userx@else
>>> check domains = +local_domains
>>> relay.two.ex in "+local_domains"?
>>> list element: +local_domains

->>>  relay.two.ex in "Test.ex : myhost.test.EX"?
->>>   list element: Test.ex
->>>   list element: myhost.test.EX
->>>  relay.two.ex in "Test.ex : myhost.test.EX"? no (end of list)
+>>>   start sublist local_domains
+>>>    relay.two.ex in "Test.ex : myhost.test.EX"?
+>>>    ╎list element: Test.ex
+>>>    ╎list element: myhost.test.EX
+>>>    relay.two.ex in "Test.ex : myhost.test.EX"? no (end of list)
+>>>   end sublist local_domains

>>> relay.two.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 26)
>>> check domains = +relay_domains
>>> relay.two.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  relay.two.ex in "Test.ex : Relay.one.ex"?
->>>   list element: Test.ex
->>>   list element: Relay.one.ex
->>>  relay.two.ex in "Test.ex : Relay.one.ex"? no (end of list)
+>>>   start sublist relay_domains
+>>>    relay.two.ex in "Test.ex : Relay.one.ex"?
+>>>    ╎list element: Test.ex
+>>>    ╎list element: Relay.one.ex
+>>>    relay.two.ex in "Test.ex : Relay.one.ex"? no (end of list)
+>>>   end sublist relay_domains

>>> relay.two.ex in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 27)

diff --git a/test/stderr/0091 b/test/stderr/0091
index 3efd8b6c8..cfefa4915 100644
--- a/test/stderr/0091
+++ b/test/stderr/0091
@@ -14,16 +14,19 @@
>>> processing "deny" (TESTSUITE/test-config 18)
>>> check hosts = ! V4NET.0.0.1
>>> host in "! V4NET.0.0.1"?

->>> list element: ! V4NET.0.0.1
+>>> list element: !░V4NET.0.0.1
>>> host in "! V4NET.0.0.1"? no (matched "! V4NET.0.0.1")
>>> deny: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 20)
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -34,9 +37,9 @@
>>> verifying From: header address <junk@???>
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing junk@???

->>> junk in "userx"?
+>>> junk in local_parts?
>>> list element: userx

->>> junk in "userx"? no (end of list)
+>>> junk in local_parts? no (end of list)
>>> no more routers
>>> require: condition test failed in ACL "check_message"
>>> end of ACL "check_message": not OK

@@ -57,14 +60,14 @@ LOG: 10HmaY-000000005vi-0000 H=(test) [V4NET.0.0.1] F=<junk@???> r
>>> processing "deny" (TESTSUITE/test-config 18)
>>> check hosts = ! V4NET.0.0.1
>>> host in "! V4NET.0.0.1"?

->>> list element: ! V4NET.0.0.1
+>>> list element: !░V4NET.0.0.1
>>> host in "! V4NET.0.0.1"? yes (end of list)
>>> check !verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing junk@???

->>> junk in "userx"?
+>>> junk in local_parts?
>>> list element: userx

->>> junk in "userx"? no (end of list)
+>>> junk in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> deny: condition test succeeded in ACL "check_recipient"

@@ -87,14 +90,14 @@ LOG: H=(test) [V4NET.0.0.2] F=<junk@???> rejected RCPT <root@test.
>>> processing "deny" (TESTSUITE/test-config 18)
>>> check hosts = ! V4NET.0.0.1
>>> host in "! V4NET.0.0.1"?

->>> list element: ! V4NET.0.0.1
+>>> list element: !░V4NET.0.0.1
>>> host in "! V4NET.0.0.1"? yes (end of list)
>>> check !verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -103,9 +106,12 @@ LOG: H=(test) [V4NET.0.0.2] F=<junk@???> rejected RCPT <root@test.
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -116,9 +122,9 @@ LOG: H=(test) [V4NET.0.0.2] F=<junk@???> rejected RCPT <root@test.
>>> verifying From: header address <junk@???>
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing junk@???

->>> junk in "userx"?
+>>> junk in local_parts?
>>> list element: userx

->>> junk in "userx"? no (end of list)
+>>> junk in local_parts? no (end of list)
>>> no more routers
>>> require: condition test failed in ACL "check_message"
>>> end of ACL "check_message": not OK

@@ -139,14 +145,14 @@ LOG: 10HmaZ-000000005vi-0000 H=(test) [V4NET.0.0.2] F=<userx@???> rejected a
>>> processing "deny" (TESTSUITE/test-config 18)
>>> check hosts = ! V4NET.0.0.1
>>> host in "! V4NET.0.0.1"?

->>> list element: ! V4NET.0.0.1
+>>> list element: !░V4NET.0.0.1
>>> host in "! V4NET.0.0.1"? yes (end of list)
>>> check !verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -155,9 +161,12 @@ LOG: 10HmaZ-000000005vi-0000 H=(test) [V4NET.0.0.2] F=<userx@???> rejected a
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -168,9 +177,9 @@ LOG: 10HmaZ-000000005vi-0000 H=(test) [V4NET.0.0.2] F=<userx@???> rejected a
>>> verifying From: header address <userx@???>
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> require: condition test succeeded in ACL "check_message"

diff --git a/test/stderr/0092 b/test/stderr/0092
index b41de549f..5be8bc633 100644
--- a/test/stderr/0092
+++ b/test/stderr/0092
@@ -37,9 +37,12 @@ LOG: SMTP command timeout on connection from [V4NET.0.0.1] D=qqs
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -208,12 +211,15 @@ exim: timed out while reading - message abandoned
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing verify@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")

>>> calling forward router
>>> forward router declined for verify@???
>>> no more routers

diff --git a/test/stderr/0094 b/test/stderr/0094
index f809c7caa..96b59005a 100644
--- a/test/stderr/0094
+++ b/test/stderr/0094
@@ -25,19 +25,23 @@ LOG: no host name found for IP address V4NET.11.12.13
>>> check domains = +local_domains
>>> cam.ac.uk in "+local_domains"?
>>> list element: +local_domains

->>>  cam.ac.uk in "test.ex"?
->>>   list element: test.ex
->>>  cam.ac.uk in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    cam.ac.uk in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    cam.ac.uk in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> cam.ac.uk in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "*.masq.test.ex"?
->>>   list element: *.masq.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "*.masq.test.ex"?
+>>>    ╎list element: *.masq.test.ex

>>> sender host name required, to match against *.masq.test.ex

->>>   host in "*.masq.test.ex"? no (failed to find host name for V4NET.11.12.13)
+>>>    ╎host in "*.masq.test.ex"? no (failed to find host name for V4NET.11.12.13)
+>>>    end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 26)

@@ -51,6 +55,8 @@ LOG: H=(test) [V4NET.11.12.13] F=<userx@???> rejected RCPT <userx@???
>>> host in host_lookup? yes (matched "0.0.0.0/0")
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK
>>> host in host_reject_connection? no (option unset)

@@ -70,18 +76,22 @@ LOG: H=(test) [V4NET.11.12.13] F=<userx@???> rejected RCPT <userx@???
>>> check domains = +local_domains
>>> cam.ac.uk in "+local_domains"?
>>> list element: +local_domains

->>>  cam.ac.uk in "test.ex"?
->>>   list element: test.ex
->>>  cam.ac.uk in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    cam.ac.uk in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    cam.ac.uk in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> cam.ac.uk in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 25)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "*.masq.test.ex"?
->>>   list element: *.masq.test.ex
->>>  host in "*.masq.test.ex"? no (end of list)
+>>>   start sublist relay_hosts
+>>>    host in "*.masq.test.ex"?
+>>>    ╎list element: *.masq.test.ex
+>>>    host in "*.masq.test.ex"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 26)

@@ -113,12 +123,16 @@ DNS lookup of 90.99.99.V4NET.in-addr.arpa (PTR) using fakens
DNS lookup of 90.99.99.V4NET.in-addr.arpa (PTR) succeeded
IP address lookup yielded "oneback.test.ex"
alias "host1.masq.test.ex"
+oneback.test.ex not in empty list (option unset? cannot trace name)
+oneback.test.ex not in empty list (option unset? cannot trace name)
DNS lookup of oneback.test.ex (A) using fakens
DNS lookup of oneback.test.ex (A) succeeded
oneback.test.ex V4NET.99.99.90 mx=-1 sort=xx
checking addresses for oneback.test.ex
Forward DNS security status: unverified
V4NET.99.99.90 OK
+host1.masq.test.ex not in empty list (option unset? cannot trace name)
+host1.masq.test.ex not in empty list (option unset? cannot trace name)
DNS lookup of host1.masq.test.ex (A) using fakens
DNS lookup of host1.masq.test.ex (A) succeeded
host1.masq.test.ex V4NET.90.90.90 mx=-1 sort=xx
diff --git a/test/stderr/0121 b/test/stderr/0121
index e5e006d54..8c6814062 100644
--- a/test/stderr/0121
+++ b/test/stderr/0121
@@ -15,18 +15,21 @@
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing unknown@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> unknown in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> unknown in local_parts?

>>> list element: defer

->>> unknown in "defer"? no (end of list)
->>> unknown in "userx"?
+>>> unknown in local_parts? no (end of list)
+>>> unknown in local_parts?
>>> list element: userx

->>> unknown in "userx"? no (end of list)
+>>> unknown in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> require: condition test failed in ACL "check_recipient"

@@ -38,12 +41,14 @@ LOG: H=(test) [127.0.0.1] F=<unknown@???> rejected RCPT <userx@???>: Sen
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> unknown.dom.ain in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  unknown.dom.ain in "test.ex"?
->>>   list element: test.ex
->>>  unknown.dom.ain in "test.ex"? no (end of list)
->>> unknown.dom.ain in "! +local_domains"? yes (end of list)
+>>> unknown.dom.ain in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    unknown.dom.ain in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    unknown.dom.ain in "test.ex"? no (end of list)
+>>>   end sublist local_domains
+>>> unknown.dom.ain in domains? yes (end of list)

>>> calling fail_remote_domains router
>>> fail_remote_domains router forced address failure
>>> ----------- end verify ------------

@@ -59,18 +64,21 @@ LOG: H=(test) [127.0.0.1] F=<userx@???> rejected RCPT <userx@???
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing "unknown with spaces"@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> unknown with spaces in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> unknown with spaces in local_parts?

>>> list element: defer

->>> unknown with spaces in "defer"? no (end of list)
->>> unknown with spaces in "userx"?
+>>> unknown with spaces in local_parts? no (end of list)
+>>> unknown with spaces in local_parts?
>>> list element: userx

->>> unknown with spaces in "userx"? no (end of list)
+>>> unknown with spaces in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> require: condition test failed in ACL "check_recipient"

@@ -82,18 +90,21 @@ LOG: H=(test) [127.0.0.1] F=<"unknown with spaces"@???> rejected RCPT <userx
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?

>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling userx router
>>> routed by userx router
>>> ----------- end verify ------------

@@ -102,9 +113,12 @@ LOG: H=(test) [127.0.0.1] F=<"unknown with spaces"@???> rejected RCPT <userx
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -115,18 +129,21 @@ LOG: H=(test) [127.0.0.1] F=<"unknown with spaces"@???> rejected RCPT <userx
>>> verifying From: header address unknown@???
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing unknown@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> unknown in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> unknown in local_parts?

>>> list element: defer

->>> unknown in "defer"? no (end of list)
->>> unknown in "userx"?
+>>> unknown in local_parts? no (end of list)
+>>> unknown in local_parts?
>>> list element: userx

->>> unknown in "userx"? no (end of list)
+>>> unknown in local_parts? no (end of list)
>>> no more routers
>>> require: condition test failed in ACL "check_message"
>>> end of ACL "check_message": not OK

@@ -136,18 +153,21 @@ LOG: 10HmaX-000000005vi-0000 H=(test) [127.0.0.1] F=<userx@???> rejected aft
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?

>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling userx router
>>> routed by userx router
>>> ----------- end verify ------------

@@ -156,9 +176,12 @@ LOG: 10HmaX-000000005vi-0000 H=(test) [127.0.0.1] F=<userx@???> rejected aft
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -176,15 +199,18 @@ LOG: 10HmaY-000000005vi-0000 H=(test) [127.0.0.1] F=<userx@???> rejected aft
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing defer@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> defer in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> defer in local_parts?

>>> list element: defer

->>> defer in "defer"? yes (matched "defer")
+>>> defer in local_parts? yes (matched "defer")
>>> calling defer router
>>> defer router: defer for defer@???
>>> message: forced defer

@@ -197,18 +223,21 @@ LOG: H=(test) [127.0.0.1] F=<defer@???> temporarily rejected RCPT <userx@tes
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?

>>> list element: defer

->>> userx in "defer"? no (end of list)
->>> userx in "userx"?
+>>> userx in local_parts? no (end of list)
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling userx router
>>> routed by userx router
>>> ----------- end verify ------------

@@ -217,9 +246,12 @@ LOG: H=(test) [127.0.0.1] F=<defer@???> temporarily rejected RCPT <userx@tes
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -230,15 +262,18 @@ LOG: H=(test) [127.0.0.1] F=<defer@???> temporarily rejected RCPT <userx@tes
>>> verifying from: header address <defer@???>
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing defer@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> defer in "defer"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> defer in local_parts?

>>> list element: defer

->>> defer in "defer"? yes (matched "defer")
+>>> defer in local_parts? yes (matched "defer")
>>> calling defer router
>>> defer router: defer for defer@???
>>> message: forced defer

diff --git a/test/stderr/0124 b/test/stderr/0124
index 144f84497..7d3983131 100644
--- a/test/stderr/0124
+++ b/test/stderr/0124
@@ -21,21 +21,25 @@
>>> check domains = +local_domains
>>> external.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  external.test.ex in "test.ex"?
->>>   list element: test.ex
->>>  external.test.ex in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    external.test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    external.test.ex in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> external.test.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "*.friendly.test.ex"?
->>>   list element: *.friendly.test.ex
+>>>   start sublist relay_hosts
+>>>    host in "*.friendly.test.ex"?
+>>>    ╎list element: *.friendly.test.ex

>>> sender host name required, to match against *.friendly.test.ex
>>> looking up host name for V4NET.0.0.97

 LOG: no host name found for IP address V4NET.0.0.97
->>>   host in "*.friendly.test.ex"? no (failed to find host name for V4NET.0.0.97)
+>>>    ╎host in "*.friendly.test.ex"? no (failed to find host name for V4NET.0.0.97)
+>>>    end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 23)

@@ -54,15 +58,20 @@ LOG: H=(test) [V4NET.0.0.97] F=<userx@???> rejected RCPT <userx@???
>>> check domains = +local_domains
>>> external.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>   external.test.ex in "test.ex"?
->>>    list element: test.ex
->>>   external.test.ex in "test.ex"? no (end of list)
+>>>    start sublist local_domains
+>>>    ╎external.test.ex in "test.ex"?
+>>>    ╎ list element: test.ex
+>>>    ╎external.test.ex in "test.ex"? no (end of list)
+>>>    end sublist local_domains

>>> external.test.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 22)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

+>>>    start sublist relay_hosts
+>>>   cached no match for +relay_hosts
+>>>   cached lookup data = NULL

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 23)

diff --git a/test/stderr/0130 b/test/stderr/0130
index 5dbcd3e4b..afd439edd 100644
--- a/test/stderr/0130
+++ b/test/stderr/0130
@@ -16,12 +16,14 @@
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> not.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  not.test.ex in "test.ex"?
->>>   list element: test.ex
->>>  not.test.ex in "test.ex"? no (end of list)
->>> not.test.ex in "! +local_domains"? yes (end of list)
+>>> not.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    not.test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    not.test.ex in "test.ex"? no (end of list)
+>>>   end sublist local_domains
+>>> not.test.ex in domains? yes (end of list)

>>> calling islocal router
>>> not.test.ex in "*"?
>>> list element: *

diff --git a/test/stderr/0138 b/test/stderr/0138
index d6e29087d..af38ad441 100644
--- a/test/stderr/0138
+++ b/test/stderr/0138
@@ -132,9 +132,9 @@ LOG: 10HmaX-000000005vi-0000 <= postmaster@??? H=(exim.test.ex) [V4NET.
>>> routing userx@???
>>> calling system_aliases router
>>> system_aliases router declined for userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -146,9 +146,9 @@ LOG: 10HmaX-000000005vi-0000 <= postmaster@??? H=(exim.test.ex) [V4NET.
>>> routing userx@???
>>> calling system_aliases router
>>> system_aliases router declined for userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -157,9 +157,12 @@ LOG: 10HmaX-000000005vi-0000 <= postmaster@??? H=(exim.test.ex) [V4NET.
>>> check domains = +local_domains
>>> exim.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'

>>> exim.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0139 b/test/stderr/0139
index a329e1ce5..9adf879de 100644
--- a/test/stderr/0139
+++ b/test/stderr/0139
@@ -70,9 +70,9 @@
>>> routing userx@???
>>> calling system_aliases router
>>> system_aliases router declined for userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -84,9 +84,9 @@
>>> routing userx@???
>>> calling system_aliases router
>>> system_aliases router declined for userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> ----------- end verify ------------

@@ -95,9 +95,12 @@
>>> check domains = +local_domains
>>> exim.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'

>>> exim.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -136,9 +139,12 @@
>>> check domains = +local_domains
>>> exim.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'

>>> exim.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -415,9 +421,9 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> routing a@b
>>> calling system_aliases router
>>> system_aliases router declined for a@b

->>> a in "userx"?
+>>> a in local_parts?
>>> list element: userx

->>> a in "userx"? no (end of list)
+>>> a in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.2]
>>> host in hosts_connection_nolog? no (option unset)

@@ -506,9 +512,9 @@ LOG: DNS list lookup for V4NET.13.13.100 at rbl.test.ex returned 0.0.0.0; not in
>>> routing a@b
>>> calling system_aliases router
>>> system_aliases router declined for a@b

->>> a in "userx"?
+>>> a in local_parts?
>>> list element: userx

->>> a in "userx"? no (end of list)
+>>> a in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.100]
>>> host in hosts_connection_nolog? no (option unset)

@@ -597,9 +603,9 @@ LOG: DNS list lookup for V4NET.13.13.101 at rbl.test.ex returned 126.255.255.255
>>> routing a@b
>>> calling system_aliases router
>>> system_aliases router declined for a@b

->>> a in "userx"?
+>>> a in local_parts?
>>> list element: userx

->>> a in "userx"? no (end of list)
+>>> a in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.101]
>>> host in hosts_connection_nolog? no (option unset)

@@ -688,9 +694,9 @@ LOG: DNS list lookup for V4NET.13.13.102 at rbl.test.ex returned 128.0.0.0; not
>>> routing a@b
>>> calling system_aliases router
>>> system_aliases router declined for a@b

->>> a in "userx"?
+>>> a in local_parts?
>>> list element: userx

->>> a in "userx"? no (end of list)
+>>> a in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.102]
>>> host in hosts_connection_nolog? no (option unset)

@@ -779,9 +785,9 @@ LOG: DNS list lookup for V4NET.13.13.103 at rbl.test.ex returned 255.255.255.255
>>> routing a@b
>>> calling system_aliases router
>>> system_aliases router declined for a@b

->>> a in "userx"?
+>>> a in local_parts?
>>> list element: userx

->>> a in "userx"? no (end of list)
+>>> a in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.103]
>>> host in hosts_connection_nolog? no (option unset)

@@ -871,9 +877,9 @@ LOG: DNS list lookup for V4NET.13.13.104 at rbl.test.ex returned 255.255.255.255
>>> routing a@b
>>> calling system_aliases router
>>> system_aliases router declined for a@b

->>> a in "userx"?
+>>> a in local_parts?
>>> list element: userx

->>> a in "userx"? no (end of list)
+>>> a in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.104]
>>> host in hosts_connection_nolog? no (option unset)

@@ -963,8 +969,8 @@ LOG: DNS list lookup for V4NET.13.13.105 at rbl.test.ex returned 255.255.255.254
>>> routing a@b
>>> calling system_aliases router
>>> system_aliases router declined for a@b

->>> a in "userx"?
+>>> a in local_parts?
>>> list element: userx

->>> a in "userx"? no (end of list)
+>>> a in local_parts? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.105]
diff --git a/test/stderr/0143 b/test/stderr/0143
index d5376a2b4..aa16ca854 100644
--- a/test/stderr/0143
+++ b/test/stderr/0143
@@ -9,6 +9,8 @@ configuration file is TESTSUITE/test-config
trusted user
admin user
dropping to exim gid; retaining priv uid
+domain.com in "test.ex : *.test.ex"? no (end of list)
+domain.com in domains? yes (end of list)
router_name <my_main_router>
>>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>

--------> userx@??? <--------
@@ -20,7 +22,8 @@ hostlist:
checking retry status of 127.0.0.1
127.0.0.1 [127.0.0.1]:1111/ip4.ip4.ip4.ip4 retry-status = usable
delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from ip4.ip4.ip4.ip4 ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from ip4.ip4.ip4.ip4 ...
+ connected
SMTP<< 220 ESMTP
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
diff --git a/test/stderr/0145 b/test/stderr/0145
index 1bbb9fe95..bf097166d 100644
--- a/test/stderr/0145
+++ b/test/stderr/0145
@@ -16,9 +16,10 @@
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@???
>>> calling domainlist router

->>> mxt10.test.ex in "*"?
+>>> mxt10.test.ex in dnssec_require_domains? no (option unset)
+>>> mxt10.test.ex in dnssec_request_domains?
>>> list element: *

->>> mxt10.test.ex in "*"? yes (matched "*")
+>>> mxt10.test.ex in dnssec_request_domains? yes (matched "*")
>>> domainlist router declined for x@???
>>> "more" is false: skipping remaining routers
>>> no more routers

@@ -45,9 +46,10 @@ LOG: H=(test) [V4NET.9.8.7] F=<x@???> rejected RCPT <x@y>: Sender veri
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@???
>>> calling domainlist router

->>> ten-1.test.ex in "*"?
+>>> ten-1.test.ex in dnssec_require_domains? no (option unset)
+>>> ten-1.test.ex in dnssec_request_domains?
>>> list element: *

->>> ten-1.test.ex in "*"? yes (matched "*")
+>>> ten-1.test.ex in dnssec_request_domains? yes (matched "*")
>>> routed by domainlist router
>>> ----------- end verify ------------
>>> require: condition test succeeded in ACL "check_recipient"

@@ -56,9 +58,10 @@ LOG: H=(test) [V4NET.9.8.7] F=<x@???> rejected RCPT <x@y>: Sender veri
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@???
>>> calling domainlist router

->>> mxt10.test.ex in "*"?
+>>> mxt10.test.ex in dnssec_require_domains? no (option unset)
+>>> mxt10.test.ex in dnssec_request_domains?
>>> list element: *

->>> mxt10.test.ex in "*"? yes (matched "*")
+>>> mxt10.test.ex in dnssec_request_domains? yes (matched "*")
>>> domainlist router declined for x@???
>>> "more" is false: skipping remaining routers
>>> no more routers

diff --git a/test/stderr/0149 b/test/stderr/0149
index b2ae45a25..50d3de6ce 100644
--- a/test/stderr/0149
+++ b/test/stderr/0149
@@ -6,6 +6,8 @@ routing x@ten
--------> domainlist1 router <--------
local_part=x domain=ten
checking domains
+ten in "<- test1 - test2-test3--4"? no (end of list)
+ten in domains? yes (end of list)
calling domainlist1 router
domainlist1 router called for x@ten
domain = ten
@@ -30,10 +32,13 @@ routing y@two
--------> domainlist1 router <--------
local_part=y domain=two
checking domains
+two in "<- test1 - test2-test3--4"? no (end of list)
+two in domains? yes (end of list)
calling domainlist1 router
domainlist1 router called for y@two
domain = two
route_item = ten <+V4NET.0.0.0+V4NET.0.0.1 byname
+two in "ten"? no (end of list)
route_item = two V4NET.0.0.2:V4NET.0.0.4 byname
original list of hosts = 'V4NET.0.0.2:V4NET.0.0.4' options = 'byname'
expanded list of hosts = 'V4NET.0.0.2:V4NET.0.0.4' options = 'byname'
@@ -122,19 +127,25 @@ routing x@one
--------> domainlist1 router <--------
local_part=x domain=one
checking domains
+one in "<- test1 - test2-test3--4"? no (end of list)
+one in domains? yes (end of list)
calling domainlist1 router
domainlist1 router called for x@one
domain = one
route_item = ten <+V4NET.0.0.0+V4NET.0.0.1 byname
+one in "ten"? no (end of list)
route_item = two V4NET.0.0.2:V4NET.0.0.4 byname
+one in "two"? no (end of list)
domainlist1 router declined for x@one
--------> domainlist2 router <--------
local_part=x domain=one
checking domains
+one in domains? yes (end of list)
calling domainlist2 router
domainlist2 router called for x@one
domain = one
route_item = six <+V4NET.0.0.6+V4NET.0.0.7 byname
+one in "six"? no (end of list)
route_item = one V4NET.0.0.2:V4NET.0.0.4 byname
original list of hosts = 'V4NET.0.0.2:V4NET.0.0.4' options = 'byname'
expanded list of hosts = 'V4NET.0.0.2:V4NET.0.0.4' options = 'byname'
@@ -156,15 +167,20 @@ routing x@six
--------> domainlist1 router <--------
local_part=x domain=six
checking domains
+six in "<- test1 - test2-test3--4"? no (end of list)
+six in domains? yes (end of list)
calling domainlist1 router
domainlist1 router called for x@six
domain = six
route_item = ten <+V4NET.0.0.0+V4NET.0.0.1 byname
+six in "ten"? no (end of list)
route_item = two V4NET.0.0.2:V4NET.0.0.4 byname
+six in "two"? no (end of list)
domainlist1 router declined for x@six
--------> domainlist2 router <--------
local_part=x domain=six
checking domains
+six in domains? yes (end of list)
calling domainlist2 router
domainlist2 router called for x@six
domain = six
diff --git a/test/stderr/0157 b/test/stderr/0157
index 3a5a6fd65..e5f23273c 100644
--- a/test/stderr/0157
+++ b/test/stderr/0157
@@ -21,9 +21,11 @@
>>> check domains = +local_domains
>>> b.c in "+local_domains"?
>>> list element: +local_domains

->>>  b.c in "test.ex"?
->>>   list element: test.ex
->>>  b.c in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    b.c in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    b.c in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> b.c in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)

@@ -50,9 +52,11 @@ LOG: H=(test) [V4NET.0.0.1] F=<x@???> rejected RCPT <a@???>: invalid sender
>>> check domains = +local_domains
>>> b.c in "+local_domains"?
>>> list element: +local_domains

->>>  b.c in "test.ex"?
->>>   list element: test.ex
->>>  b.c in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    b.c in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    b.c in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> b.c in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)

@@ -93,9 +97,11 @@ LOG: H=(test) [V4NET.0.0.1] F=<x@???> rejected RCPT <a@???>: invalid sender
>>> check domains = +local_domains
>>> b.c in "+local_domains"?
>>> list element: +local_domains

->>>  b.c in "test.ex"?
->>>   list element: test.ex
->>>  b.c in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    b.c in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    b.c in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> b.c in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)

@@ -108,10 +114,12 @@ LOG: H=(test) [V4NET.0.0.1] F=<x@???> rejected RCPT <a@???>: invalid sender
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "V4NET.0.0.1 : V4NET.0.0.2"?
->>>   list element: V4NET.0.0.1
->>>   list element: V4NET.0.0.2
->>>   host in "V4NET.0.0.1 : V4NET.0.0.2"? yes (matched "V4NET.0.0.2")
+>>>   start sublist relay_hosts
+>>>    host in "V4NET.0.0.1 : V4NET.0.0.2"?
+>>>    ╎list element: V4NET.0.0.1
+>>>    ╎list element: V4NET.0.0.2
+>>>    ╎host in "V4NET.0.0.1 : V4NET.0.0.2"? yes (matched "V4NET.0.0.2")
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? yes (matched "+relay_hosts")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -126,9 +134,11 @@ LOG: H=(test) [V4NET.0.0.1] F=<x@???> rejected RCPT <a@???>: invalid sender
>>> check domains = +local_domains
>>> b.c in "+local_domains"?
>>> list element: +local_domains

->>>  b.c in "test.ex"?
->>>   list element: test.ex
->>>  b.c in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    b.c in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    b.c in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> b.c in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)

@@ -141,6 +151,9 @@ LOG: H=(test) [V4NET.0.0.1] F=<x@???> rejected RCPT <a@???>: invalid sender
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

+>>> start sublist relay_hosts
+>>> cached yes match for +relay_hosts
+>>> cached lookup data = NULL
>>> host in "+relay_hosts"? yes (matched "+relay_hosts" - cached)
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -167,9 +180,11 @@ LOG: H=(test) [V4NET.0.0.1] F=<x@???> rejected RCPT <a@???>: invalid sender
>>> check domains = +local_domains
>>> b.c in "+local_domains"?
>>> list element: +local_domains

->>>  b.c in "test.ex"?
->>>   list element: test.ex
->>>  b.c in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    b.c in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    b.c in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> b.c in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)

@@ -182,10 +197,12 @@ LOG: H=(test) [V4NET.0.0.1] F=<x@???> rejected RCPT <a@???>: invalid sender
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "V4NET.0.0.1 : V4NET.0.0.2"?
->>>   list element: V4NET.0.0.1
->>>   list element: V4NET.0.0.2
->>>  host in "V4NET.0.0.1 : V4NET.0.0.2"? no (end of list)
+>>>   start sublist relay_hosts
+>>>    host in "V4NET.0.0.1 : V4NET.0.0.2"?
+>>>    ╎list element: V4NET.0.0.1
+>>>    ╎list element: V4NET.0.0.2
+>>>    host in "V4NET.0.0.1 : V4NET.0.0.2"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 26)

@@ -204,9 +221,11 @@ LOG: H=(test) [V4NET.0.0.3] F=<x@???> rejected RCPT <a@???>: relay not permitted
>>> check domains = +local_domains
>>> b.c in "+local_domains"?
>>> list element: +local_domains

->>>  b.c in "test.ex"?
->>>   list element: test.ex
->>>  b.c in "test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    b.c in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    b.c in "test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> b.c in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 21)

@@ -219,6 +238,9 @@ LOG: H=(test) [V4NET.0.0.3] F=<x@???> rejected RCPT <a@???>: relay not permitted
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

+>>> start sublist relay_hosts
+>>> cached no match for +relay_hosts
+>>> cached lookup data = NULL
>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 26)

diff --git a/test/stderr/0161 b/test/stderr/0161
index dad95576f..4515b7946 100644
--- a/test/stderr/0161
+++ b/test/stderr/0161
@@ -7,11 +7,15 @@ routing xx@???
--------> failuphost router <--------
local_part=xx domain=mxt6.test.ex
checking domains
+mxt6.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt6.test.ex in domains? yes (end of list)
checking local_parts
+xx in local_parts? no (end of list)
failuphost router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=xx domain=mxt6.test.ex
checking domains
+mxt6.test.ex in domains? yes (end of list)
calling lookuphost router
lookuphost router called for xx@???
domain = mxt6.test.ex
@@ -34,11 +38,15 @@ routing myhost.test.ex@???
--------> failuphost router <--------
local_part=myhost.test.ex domain=mxt1.test.ex
checking domains
+mxt1.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt1.test.ex in domains? yes (end of list)
checking local_parts
+myhost.test.ex in local_parts? no (end of list)
failuphost router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=myhost.test.ex domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
calling lookuphost router
lookuphost router called for myhost.test.ex@???
domain = mxt1.test.ex
@@ -47,11 +55,14 @@ lookuphost router passed for myhost.test.ex@???
--------> fail router <--------
local_part=myhost.test.ex domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
checking local_parts
+myhost.test.ex in local_parts? no (end of list)
fail router skipped: local_parts mismatch
--------> self router <--------
local_part=myhost.test.ex domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
self_hostname=eximtesthost.test.ex
calling self router
self router called for myhost.test.ex@???
@@ -80,11 +91,15 @@ routing xx@???
--------> failuphost router <--------
local_part=xx domain=mxt1.test.ex
checking domains
+mxt1.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt1.test.ex in domains? yes (end of list)
checking local_parts
+xx in local_parts? no (end of list)
failuphost router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=xx domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
calling lookuphost router
lookuphost router called for xx@???
domain = mxt1.test.ex
@@ -93,11 +108,14 @@ lookuphost router passed for xx@???
--------> fail router <--------
local_part=xx domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
checking local_parts
+xx in local_parts? no (end of list)
fail router skipped: local_parts mismatch
--------> self router <--------
local_part=xx domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
self_hostname=eximtesthost.test.ex
calling self router
self router called for xx@???
@@ -112,6 +130,7 @@ self router passed for xx@???
--------> self2 router <--------
local_part=xx domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
self_hostname=eximtesthost.test.ex
calling self2 router
self2 router called for xx@???
@@ -140,11 +159,15 @@ routing xx@???
--------> failuphost router <--------
local_part=xx domain=not-exist.test.ex
checking domains
+not-exist.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+not-exist.test.ex in domains? yes (end of list)
checking local_parts
+xx in local_parts? no (end of list)
failuphost router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=xx domain=not-exist.test.ex
checking domains
+not-exist.test.ex in domains? yes (end of list)
calling lookuphost router
lookuphost router called for xx@???
domain = not-exist.test.ex
@@ -161,6 +184,8 @@ routing ff@???
--------> failuphost router <--------
local_part=ff domain=mxt1.test.ex
checking domains
+mxt1.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt1.test.ex in domains? yes (end of list)
checking local_parts
calling failuphost router
failuphost router called for ff@???
@@ -177,11 +202,15 @@ routing fff@???
--------> failuphost router <--------
local_part=fff domain=mxt1.test.ex
checking domains
+mxt1.test.ex in "test.ex : myhost.test.ex"? no (end of list)
+mxt1.test.ex in domains? yes (end of list)
checking local_parts
+fff in local_parts? no (end of list)
failuphost router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=fff domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
calling lookuphost router
lookuphost router called for fff@???
domain = mxt1.test.ex
@@ -190,6 +219,7 @@ lookuphost router passed for fff@???
--------> fail router <--------
local_part=fff domain=mxt1.test.ex
checking domains
+mxt1.test.ex in domains? yes (end of list)
checking local_parts
self_hostname=eximtesthost.test.ex
calling fail router
diff --git a/test/stderr/0175 b/test/stderr/0175
index b45971a07..2cc0d622a 100644
--- a/test/stderr/0175
+++ b/test/stderr/0175
@@ -15,12 +15,14 @@
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing user@???

->>> bad.domain in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  bad.domain in "test.ex"?
->>>   list element: test.ex
->>>  bad.domain in "test.ex"? no (end of list)
->>> bad.domain in "! +local_domains"? yes (end of list)
+>>> bad.domain in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    bad.domain in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    bad.domain in "test.ex"? no (end of list)
+>>>   end sublist local_domains
+>>> bad.domain in domains? yes (end of list)

>>> calling fail_sender router
>>> bad.domain in "bad.domain"?
>>> list element: bad.domain

@@ -53,20 +55,25 @@ LOG: H=(test) [V4NET.0.0.0] F=<user@???> rejected RCPT <userx@???>: S
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing user@???

->>> bad.domain2 in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  bad.domain2 in "test.ex"?
->>>   list element: test.ex
->>>  bad.domain2 in "test.ex"? no (end of list)
->>> bad.domain2 in "! +local_domains"? yes (end of list)
+>>> bad.domain2 in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    bad.domain2 in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    bad.domain2 in "test.ex"? no (end of list)
+>>>   end sublist local_domains
+>>> bad.domain2 in domains? yes (end of list)

>>> calling fail_sender router
>>> bad.domain2 in "bad.domain"?
>>> list element: bad.domain
>>> bad.domain2 in "bad.domain"? no (end of list)
>>> fail_sender router declined for user@???

->>> bad.domain2 in "! +local_domains"?
->>> list element: ! +local_domains
->>> bad.domain2 in "! +local_domains"? yes (end of list)
+>>> bad.domain2 in domains?
+>>> list element: !░+local_domains
+>>> start sublist local_domains
+>>> cached no match for +local_domains
+>>> cached lookup data = NULL
+>>> bad.domain2 in domains? yes (end of list)
>>> calling fail_sender2 router
>>> bad.domain2 in "bad.domain2"?
>>> list element: bad.domain2

@@ -98,32 +105,41 @@ LOG: H=(test) [V4NET.0.0.0] F=<user@???> rejected RCPT <userx@???>:
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing user@???

->>> ten-1.test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  ten-1.test.ex in "test.ex"?
->>>   list element: test.ex
->>>  ten-1.test.ex in "test.ex"? no (end of list)
->>> ten-1.test.ex in "! +local_domains"? yes (end of list)
+>>> ten-1.test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    ten-1.test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ten-1.test.ex in "test.ex"? no (end of list)
+>>>   end sublist local_domains
+>>> ten-1.test.ex in domains? yes (end of list)

>>> calling fail_sender router
>>> ten-1.test.ex in "bad.domain"?
>>> list element: bad.domain
>>> ten-1.test.ex in "bad.domain"? no (end of list)
>>> fail_sender router declined for user@???

->>> ten-1.test.ex in "! +local_domains"?
->>> list element: ! +local_domains
->>> ten-1.test.ex in "! +local_domains"? yes (end of list)
+>>> ten-1.test.ex in domains?
+>>> list element: !░+local_domains
+>>> start sublist local_domains
+>>> cached no match for +local_domains
+>>> cached lookup data = NULL
+>>> ten-1.test.ex in domains? yes (end of list)
>>> calling fail_sender2 router
>>> ten-1.test.ex in "bad.domain2"?
>>> list element: bad.domain2
>>> ten-1.test.ex in "bad.domain2"? no (end of list)
>>> fail_sender2 router declined for user@???

->>> ten-1.test.ex in "! +local_domains"?
->>> list element: ! +local_domains
->>> ten-1.test.ex in "! +local_domains"? yes (end of list)
+>>> ten-1.test.ex in domains?
+>>> list element: !░+local_domains
+>>> start sublist local_domains
+>>> cached no match for +local_domains
+>>> cached lookup data = NULL
+>>> ten-1.test.ex in domains? yes (end of list)
>>> calling lookuphost router

->>> ten-1.test.ex in "*"?
+>>> ten-1.test.ex in dnssec_require_domains? no (option unset)
+>>> ten-1.test.ex in dnssec_request_domains?
>>> list element: *

->>> ten-1.test.ex in "*"? yes (matched "*")
+>>> ten-1.test.ex in dnssec_request_domains? yes (matched "*")
>>> routed by lookuphost router
>>> ----------- end verify ------------
>>> require: condition test succeeded in ACL "check_recipient"

@@ -131,9 +147,12 @@ LOG: H=(test) [V4NET.0.0.0] F=<user@???> rejected RCPT <userx@???>:
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0183 b/test/stderr/0183
index 36ab7a1b4..4e8a2a88f 100644
--- a/test/stderr/0183
+++ b/test/stderr/0183
@@ -16,37 +16,39 @@ routing userx@???
--------> srv router <--------
local_part=userx domain=test.again.dns
checking local_parts
-userx in "^srv"?
+userx in local_parts?
list element: ^srv
compiled caseless RE '^srv' not found in local cache
compiled RE '^srv' saved in local cache
-userx in "^srv"? no (end of list)
+userx in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userx domain=test.again.dns
checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
list element: usery
list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=userx domain=test.again.dns
checking local_parts
-userx in "!userd"?
+userx in local_parts?
list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for userx@???
domain = test.again.dns
-test.again.dns in "*"?
+test.again.dns in dnssec_require_domains? no (option unset)
+test.again.dns in dnssec_request_domains?
list element: *
- test.again.dns in "*"? yes (matched "*")
+ test.again.dns in dnssec_request_domains? yes (matched "*")
DNS lookup of test.again.dns (MX) using fakens
DNS lookup of test.again.dns (MX) gave TRY_AGAIN
test.again.dns in dns_again_means_nonexist? no (option unset)
returning DNS_AGAIN
writing neg-cache entry for test.again.dns-MX-xxxx, ttl -1
+test.again.dns not in empty list (option unset? cannot trace name)
lookuphost router: defer for userx@???
message: host lookup did not complete
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -58,32 +60,34 @@ routing abcd@???
--------> srv router <--------
local_part=abcd domain=test.again.dns
checking local_parts
-abcd in "^srv"?
+abcd in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=abcd domain=test.again.dns
checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
list element: usery
list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=abcd domain=test.again.dns
checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for abcd@???
domain = test.again.dns
-test.again.dns in "*"?
+test.again.dns in dnssec_require_domains? no (option unset)
+test.again.dns in dnssec_request_domains?
list element: *
- test.again.dns in "*"? yes (matched "*")
+ test.again.dns in dnssec_request_domains? yes (matched "*")
DNS lookup of test.again.dns (MX): using cached value DNS_AGAIN
+test.again.dns not in empty list (option unset? cannot trace name)
lookuphost router: defer for abcd@???
message: host lookup did not complete
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -95,31 +99,32 @@ routing abcd@???
--------> srv router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "^srv"?
+abcd in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
list element: usery
list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for abcd@???
domain = ten-1.test.ex
-ten-1.test.ex in "*"?
+ten-1.test.ex in dnssec_require_domains? no (option unset)
+ten-1.test.ex in dnssec_request_domains?
list element: *
- ten-1.test.ex in "*"? yes (matched "*")
+ ten-1.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of ten-1.test.ex (MX) using fakens
DNS lookup of ten-1.test.ex (MX) gave NO_DATA
returning DNS_NODATA
@@ -149,17 +154,17 @@ routing usery@???
--------> srv router <--------
local_part=usery domain=test.again.dns
checking local_parts
-usery in "^srv"?
+usery in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-usery in "^srv"? no (end of list)
+usery in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=usery domain=test.again.dns
checking local_parts
-usery in "usery:userz"?
+usery in local_parts?
list element: usery
- usery in "usery:userz"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
calling useryz router
useryz router called for usery@???
domain = test.again.dns
@@ -172,9 +177,10 @@ expanded list of hosts = 'test.again.dns' options = 'bydns'
set transport smtp
finding IP address for test.again.dns
doing DNS lookup
-test.again.dns in "*"?
+test.again.dns in dnssec_require_domains? no (option unset)
+test.again.dns in dnssec_request_domains?
list element: *
- test.again.dns in "*"? yes (matched "*")
+ test.again.dns in dnssec_request_domains? yes (matched "*")
list element: *
DNS lookup of test.again.dns (A) using fakens
DNS lookup of test.again.dns (A) gave TRY_AGAIN
@@ -192,18 +198,18 @@ routing userz@???
--------> srv router <--------
local_part=userz domain=test.again.dns
checking local_parts
-userz in "^srv"?
+userz in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-userz in "^srv"? no (end of list)
+userz in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userz domain=test.again.dns
checking local_parts
-userz in "usery:userz"?
+userz in local_parts?
list element: usery
list element: userz
- userz in "usery:userz"? yes (matched "userz")
+ userz in local_parts? yes (matched "userz")
calling useryz router
useryz router called for userz@???
domain = test.again.dns
@@ -215,9 +221,10 @@ original list of hosts = '$domain' options = 'bydns'
expanded list of hosts = 'test.again.dns' options = 'bydns'
finding IP address for test.again.dns
doing DNS lookup
-test.again.dns in "*"?
+test.again.dns in dnssec_require_domains? no (option unset)
+test.again.dns in dnssec_request_domains?
list element: *
- test.again.dns in "*"? yes (matched "*")
+ test.again.dns in dnssec_request_domains? yes (matched "*")
list element: *
DNS lookup of test.again.dns (A): using cached value DNS_AGAIN
useryz router: defer for userz@???
@@ -231,31 +238,32 @@ routing xyz@???
--------> srv router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "^srv"?
+xyz in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-xyz in "^srv"? no (end of list)
+xyz in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "usery:userz"?
+xyz in local_parts?
list element: usery
list element: userz
-xyz in "usery:userz"? no (end of list)
+xyz in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "!userd"?
+xyz in local_parts?
list element: !userd
-xyz in "!userd"? yes (end of list)
+xyz in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for xyz@???
domain = ten-1.test.ex
-ten-1.test.ex in "*"?
+ten-1.test.ex in dnssec_require_domains? no (option unset)
+ten-1.test.ex in dnssec_request_domains?
list element: *
- ten-1.test.ex in "*"? yes (matched "*")
+ ten-1.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
list element: *
DNS lookup of ten-1.test.ex (A) using fakens
@@ -290,36 +298,38 @@ routing userx@???
--------> srv router <--------
local_part=userx domain=test.fail.dns
checking local_parts
-userx in "^srv"?
+userx in local_parts?
list element: ^srv
compiled caseless RE '^srv' not found in local cache
compiled RE '^srv' saved in local cache
-userx in "^srv"? no (end of list)
+userx in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userx domain=test.fail.dns
checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
list element: usery
list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=userx domain=test.fail.dns
checking local_parts
-userx in "!userd"?
+userx in local_parts?
list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for userx@???
domain = test.fail.dns
-test.fail.dns in "*"?
+test.fail.dns in dnssec_require_domains? no (option unset)
+test.fail.dns in dnssec_request_domains?
list element: *
- test.fail.dns in "*"? yes (matched "*")
+ test.fail.dns in dnssec_request_domains? yes (matched "*")
DNS lookup of test.fail.dns (MX) using fakens
DNS lookup of test.fail.dns (MX) gave NO_RECOVERY
returning DNS_FAIL
writing neg-cache entry for test.fail.dns-MX-xxxx, ttl -1
+test.fail.dns not in empty list (option unset? cannot trace name)
lookuphost router: defer for userx@???
message: host lookup did not complete
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -331,32 +341,34 @@ routing abcd@???
--------> srv router <--------
local_part=abcd domain=test.fail.dns
checking local_parts
-abcd in "^srv"?
+abcd in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=abcd domain=test.fail.dns
checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
list element: usery
list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=abcd domain=test.fail.dns
checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for abcd@???
domain = test.fail.dns
-test.fail.dns in "*"?
+test.fail.dns in dnssec_require_domains? no (option unset)
+test.fail.dns in dnssec_request_domains?
list element: *
- test.fail.dns in "*"? yes (matched "*")
+ test.fail.dns in dnssec_request_domains? yes (matched "*")
DNS lookup of test.fail.dns (MX): using cached value DNS_FAIL
+test.fail.dns not in empty list (option unset? cannot trace name)
lookuphost router: defer for abcd@???
message: host lookup did not complete
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -368,31 +380,32 @@ routing abcd@???
--------> srv router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "^srv"?
+abcd in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
list element: usery
list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for abcd@???
domain = ten-1.test.ex
-ten-1.test.ex in "*"?
+ten-1.test.ex in dnssec_require_domains? no (option unset)
+ten-1.test.ex in dnssec_request_domains?
list element: *
- ten-1.test.ex in "*"? yes (matched "*")
+ ten-1.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of ten-1.test.ex (MX) using fakens
DNS lookup of ten-1.test.ex (MX) gave NO_DATA
returning DNS_NODATA
@@ -422,17 +435,17 @@ routing usery@???
--------> srv router <--------
local_part=usery domain=test.fail.dns
checking local_parts
-usery in "^srv"?
+usery in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-usery in "^srv"? no (end of list)
+usery in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=usery domain=test.fail.dns
checking local_parts
-usery in "usery:userz"?
+usery in local_parts?
list element: usery
- usery in "usery:userz"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
calling useryz router
useryz router called for usery@???
domain = test.fail.dns
@@ -445,9 +458,10 @@ expanded list of hosts = 'test.fail.dns' options = 'bydns'
set transport smtp
finding IP address for test.fail.dns
doing DNS lookup
-test.fail.dns in "*"?
+test.fail.dns in dnssec_require_domains? no (option unset)
+test.fail.dns in dnssec_request_domains?
list element: *
- test.fail.dns in "*"? yes (matched "*")
+ test.fail.dns in dnssec_request_domains? yes (matched "*")
list element: *
DNS lookup of test.fail.dns (A) using fakens
DNS lookup of test.fail.dns (A) gave NO_RECOVERY
@@ -464,18 +478,18 @@ routing userz@???
--------> srv router <--------
local_part=userz domain=test.fail.dns
checking local_parts
-userz in "^srv"?
+userz in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-userz in "^srv"? no (end of list)
+userz in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userz domain=test.fail.dns
checking local_parts
-userz in "usery:userz"?
+userz in local_parts?
list element: usery
list element: userz
- userz in "usery:userz"? yes (matched "userz")
+ userz in local_parts? yes (matched "userz")
calling useryz router
useryz router called for userz@???
domain = test.fail.dns
@@ -487,9 +501,10 @@ original list of hosts = '$domain' options = 'bydns'
expanded list of hosts = 'test.fail.dns' options = 'bydns'
finding IP address for test.fail.dns
doing DNS lookup
-test.fail.dns in "*"?
+test.fail.dns in dnssec_require_domains? no (option unset)
+test.fail.dns in dnssec_request_domains?
list element: *
- test.fail.dns in "*"? yes (matched "*")
+ test.fail.dns in dnssec_request_domains? yes (matched "*")
list element: *
DNS lookup of test.fail.dns (A): using cached value DNS_FAIL
useryz router: defer for userz@???
@@ -503,31 +518,32 @@ routing xyz@???
--------> srv router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "^srv"?
+xyz in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-xyz in "^srv"? no (end of list)
+xyz in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "usery:userz"?
+xyz in local_parts?
list element: usery
list element: userz
-xyz in "usery:userz"? no (end of list)
+xyz in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "!userd"?
+xyz in local_parts?
list element: !userd
-xyz in "!userd"? yes (end of list)
+xyz in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for xyz@???
domain = ten-1.test.ex
-ten-1.test.ex in "*"?
+ten-1.test.ex in dnssec_require_domains? no (option unset)
+ten-1.test.ex in dnssec_request_domains?
list element: *
- ten-1.test.ex in "*"? yes (matched "*")
+ ten-1.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
list element: *
DNS lookup of ten-1.test.ex (A) using fakens
@@ -562,32 +578,33 @@ routing userx@???
--------> srv router <--------
local_part=userx domain=nonexist.test.ex
checking local_parts
-userx in "^srv"?
+userx in local_parts?
list element: ^srv
compiled caseless RE '^srv' not found in local cache
compiled RE '^srv' saved in local cache
-userx in "^srv"? no (end of list)
+userx in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userx domain=nonexist.test.ex
checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
list element: usery
list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=userx domain=nonexist.test.ex
checking local_parts
-userx in "!userd"?
+userx in local_parts?
list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for userx@???
domain = nonexist.test.ex
-nonexist.test.ex in "*"?
+nonexist.test.ex in dnssec_require_domains? no (option unset)
+nonexist.test.ex in dnssec_request_domains?
list element: *
- nonexist.test.ex in "*"? yes (matched "*")
+ nonexist.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of nonexist.test.ex (MX) using fakens
DNS lookup of nonexist.test.ex (MX) gave HOST_NOT_FOUND
returning DNS_NOMATCH
@@ -605,31 +622,32 @@ routing abcd@???
--------> srv router <--------
local_part=abcd domain=nonexist.test.ex
checking local_parts
-abcd in "^srv"?
+abcd in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=abcd domain=nonexist.test.ex
checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
list element: usery
list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=abcd domain=nonexist.test.ex
checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for abcd@???
domain = nonexist.test.ex
-nonexist.test.ex in "*"?
+nonexist.test.ex in dnssec_require_domains? no (option unset)
+nonexist.test.ex in dnssec_request_domains?
list element: *
- nonexist.test.ex in "*"? yes (matched "*")
+ nonexist.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of nonexist.test.ex (MX): using cached value DNS_NOMATCH
lookuphost router declined for abcd@???
"more" is false: skipping remaining routers
@@ -643,31 +661,32 @@ routing abcd@???
--------> srv router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "^srv"?
+abcd in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
list element: usery
list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=abcd domain=ten-1.test.ex
checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for abcd@???
domain = ten-1.test.ex
-ten-1.test.ex in "*"?
+ten-1.test.ex in dnssec_require_domains? no (option unset)
+ten-1.test.ex in dnssec_request_domains?
list element: *
- ten-1.test.ex in "*"? yes (matched "*")
+ ten-1.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of ten-1.test.ex (MX) using fakens
DNS lookup of ten-1.test.ex (MX) gave NO_DATA
returning DNS_NODATA
@@ -697,17 +716,17 @@ routing usery@???
--------> srv router <--------
local_part=usery domain=nonexist.test.ex
checking local_parts
-usery in "^srv"?
+usery in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-usery in "^srv"? no (end of list)
+usery in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=usery domain=nonexist.test.ex
checking local_parts
-usery in "usery:userz"?
+usery in local_parts?
list element: usery
- usery in "usery:userz"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
calling useryz router
useryz router called for usery@???
domain = nonexist.test.ex
@@ -720,9 +739,10 @@ expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
set transport smtp
finding IP address for nonexist.test.ex
doing DNS lookup
-nonexist.test.ex in "*"?
+nonexist.test.ex in dnssec_require_domains? no (option unset)
+nonexist.test.ex in dnssec_request_domains?
list element: *
- nonexist.test.ex in "*"? yes (matched "*")
+ nonexist.test.ex in dnssec_request_domains? yes (matched "*")
list element: *
DNS lookup of nonexist.test.ex (A) using fakens
DNS lookup of nonexist.test.ex (A) gave HOST_NOT_FOUND
@@ -740,18 +760,18 @@ routing userz@???
--------> srv router <--------
local_part=userz domain=nonexist.test.ex
checking local_parts
-userz in "^srv"?
+userz in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-userz in "^srv"? no (end of list)
+userz in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userz domain=nonexist.test.ex
checking local_parts
-userz in "usery:userz"?
+userz in local_parts?
list element: usery
list element: userz
- userz in "usery:userz"? yes (matched "userz")
+ userz in local_parts? yes (matched "userz")
calling useryz router
useryz router called for userz@???
domain = nonexist.test.ex
@@ -763,9 +783,10 @@ original list of hosts = '$domain' options = 'bydns'
expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
finding IP address for nonexist.test.ex
doing DNS lookup
-nonexist.test.ex in "*"?
+nonexist.test.ex in dnssec_require_domains? no (option unset)
+nonexist.test.ex in dnssec_request_domains?
list element: *
- nonexist.test.ex in "*"? yes (matched "*")
+ nonexist.test.ex in dnssec_request_domains? yes (matched "*")
list element: *
DNS lookup of nonexist.test.ex (A): using cached value DNS_NOMATCH
useryz router: defer for userz@???
@@ -779,31 +800,32 @@ routing xyz@???
--------> srv router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "^srv"?
+xyz in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-xyz in "^srv"? no (end of list)
+xyz in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "usery:userz"?
+xyz in local_parts?
list element: usery
list element: userz
-xyz in "usery:userz"? no (end of list)
+xyz in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=xyz domain=ten-1.test.ex
checking local_parts
-xyz in "!userd"?
+xyz in local_parts?
list element: !userd
-xyz in "!userd"? yes (end of list)
+xyz in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for xyz@???
domain = ten-1.test.ex
-ten-1.test.ex in "*"?
+ten-1.test.ex in dnssec_require_domains? no (option unset)
+ten-1.test.ex in dnssec_request_domains?
list element: *
- ten-1.test.ex in "*"? yes (matched "*")
+ ten-1.test.ex in dnssec_request_domains? yes (matched "*")
DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
list element: *
DNS lookup of ten-1.test.ex (A) using fakens
@@ -838,25 +860,26 @@ routing srv@???
--------> srv router <--------
local_part=srv domain=test.again.dns
checking local_parts
-srv in "^srv"?
+srv in local_parts?
list element: ^srv
compiled caseless RE '^srv' not found in local cache
compiled RE '^srv' saved in local cache
- srv in "^srv"? yes (matched "^srv")
+ srv in local_parts? yes (matched "^srv")
calling srv router
srv router called for srv@???
domain = test.again.dns
-test.again.dns in "*"?
+test.again.dns in dnssec_require_domains? no (option unset)
+test.again.dns in dnssec_request_domains?
list element: *
- test.again.dns in "*"? yes (matched "*")
+ test.again.dns in dnssec_request_domains? yes (matched "*")
DNS lookup of _smtp._tcp.test.again.dns (SRV) using fakens
DNS lookup of _smtp._tcp.test.again.dns (SRV) gave TRY_AGAIN
_smtp._tcp.test.again.dns in dns_again_means_nonexist? no (option unset)
returning DNS_AGAIN
writing neg-cache entry for _smtp._tcp.test.again.dns-SRV-xxxx, ttl -1
-test.again.dns in "test.fail.dns"?
+test.again.dns in srv_fail_domains?
list element: test.fail.dns
-test.again.dns in "test.fail.dns"? no (end of list)
+test.again.dns in srv_fail_domains? no (end of list)
srv router: defer for srv@???
message: host lookup did not complete
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -868,31 +891,32 @@ routing srv@???
--------> srv router <--------
local_part=srv domain=test.fail.dns
checking local_parts
-srv in "^srv"?
+srv in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
- srv in "^srv"? yes (matched "^srv")
+ srv in local_parts? yes (matched "^srv")
calling srv router
srv router called for srv@???
domain = test.fail.dns
-test.fail.dns in "*"?
+test.fail.dns in dnssec_require_domains? no (option unset)
+test.fail.dns in dnssec_request_domains?
list element: *
- test.fail.dns in "*"? yes (matched "*")
+ test.fail.dns in dnssec_request_domains? yes (matched "*")
DNS lookup of _smtp._tcp.test.fail.dns (SRV) using fakens
DNS lookup of _smtp._tcp.test.fail.dns (SRV) gave NO_RECOVERY
returning DNS_FAIL
writing neg-cache entry for _smtp._tcp.test.fail.dns-SRV-xxxx, ttl -1
-test.fail.dns in "test.fail.dns"?
+test.fail.dns in srv_fail_domains?
list element: test.fail.dns
- test.fail.dns in "test.fail.dns"? yes (matched "test.fail.dns")
+ test.fail.dns in srv_fail_domains? yes (matched "test.fail.dns")
DNS_FAIL treated as DNS_NODATA (domain in srv_fail_domains)
DNS lookup of test.fail.dns (MX) using fakens
DNS lookup of test.fail.dns (MX) gave NO_RECOVERY
returning DNS_FAIL
writing neg-cache entry for test.fail.dns-MX-xxxx, ttl -1
-test.fail.dns in "test.fail.dns"?
+test.fail.dns in mx_fail_domains?
list element: test.fail.dns
- test.fail.dns in "test.fail.dns"? yes (matched "test.fail.dns")
+ test.fail.dns in mx_fail_domains? yes (matched "test.fail.dns")
DNS_FAIL treated as DNS_NODATA (domain in mx_fail_domains)
list element: *
DNS lookup of test.fail.dns (A) using fakens
@@ -921,32 +945,33 @@ routing userx@???
--------> srv router <--------
local_part=userx domain=nonexist.example.com
checking local_parts
-userx in "^srv"?
+userx in local_parts?
list element: ^srv
compiled caseless RE '^srv' not found in local cache
compiled RE '^srv' saved in local cache
-userx in "^srv"? no (end of list)
+userx in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userx domain=nonexist.example.com
checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
list element: usery
list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=userx domain=nonexist.example.com
checking local_parts
-userx in "!userd"?
+userx in local_parts?
list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
calling lookuphost router
lookuphost router called for userx@???
domain = nonexist.example.com
-nonexist.example.com in "*"?
+nonexist.example.com in dnssec_require_domains? no (option unset)
+nonexist.example.com in dnssec_request_domains?
list element: *
- nonexist.example.com in "*"? yes (matched "*")
+ nonexist.example.com in dnssec_request_domains? yes (matched "*")
DNS lookup of nonexist.example.com (MX) using fakens
DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND
returning DNS_NOMATCH
@@ -964,25 +989,25 @@ routing userd@???
--------> srv router <--------
local_part=userd domain=nonexist.example.com
checking local_parts
-userd in "^srv"?
+userd in local_parts?
list element: ^srv
compiled caseless RE '^srv' found in local cache
-userd in "^srv"? no (end of list)
+userd in local_parts? no (end of list)
srv router skipped: local_parts mismatch
--------> useryz router <--------
local_part=userd domain=nonexist.example.com
checking local_parts
-userd in "usery:userz"?
+userd in local_parts?
list element: usery
list element: userz
-userd in "usery:userz"? no (end of list)
+userd in local_parts? no (end of list)
useryz router skipped: local_parts mismatch
--------> lookuphost router <--------
local_part=userd domain=nonexist.example.com
checking local_parts
-userd in "!userd"?
+userd in local_parts?
list element: !userd
- userd in "!userd"? no (matched "!userd")
+ userd in local_parts? no (matched "!userd")
lookuphost router skipped: local_parts mismatch
--------> delay router <--------
local_part=userd domain=nonexist.example.com
@@ -997,9 +1022,10 @@ checking "condition" "${acl {delay}}"...
calling delay router
delay router called for userd@???
domain = nonexist.example.com
-nonexist.example.com in "*"?
+nonexist.example.com in dnssec_require_domains? no (option unset)
+nonexist.example.com in dnssec_request_domains?
list element: *
- nonexist.example.com in "*"? yes (matched "*")
+ nonexist.example.com in dnssec_request_domains? yes (matched "*")
DNS lookup of nonexist.example.com (MX): cached value DNS_NOMATCH past valid time
DNS lookup of nonexist.example.com (MX) using fakens
DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND
diff --git a/test/stderr/0217 b/test/stderr/0217
index ad5b632f1..c03f53a2d 100644
--- a/test/stderr/0217
+++ b/test/stderr/0217
@@ -1,7 +1,8 @@
LOG: MAIN
<= CALLER@??? U=CALLER P=local S=sss
delivering 10HmbL-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
@@ -834,7 +835,8 @@ LOG: MAIN
LOG: MAIN
<= CALLER@??? U=CALLER P=local S=sss
delivering 10HmbP-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
diff --git a/test/stderr/0218 b/test/stderr/0218
index f791c35cc..c7d80f864 100644
--- a/test/stderr/0218
+++ b/test/stderr/0218
@@ -8,19 +8,26 @@ LOG: queue_run MAIN
queue running combined directories
looking in TESTSUITE/spool//input
delivering 10HmaX-000000005vi-0000 (queue run pid p1234)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

delivering 10HmaY-000000005vi-0000 (queue run pid p1234)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

queue running combined directories
looking in TESTSUITE/spool//input
delivering 10HmaX-000000005vi-0000 (queue run pid p1234)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
@@ -47,6 +54,8 @@ trusted user
admin user
dropping to exim gid; retaining priv uid
delivering 10HmaY-000000005vi-0000 (queue run pid p1234)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
SMTP|> MAIL FROM:<CALLER@???>
@@ -81,19 +90,26 @@ LOG: queue_run MAIN
queue running combined directories
looking in TESTSUITE/spool//input
delivering 10HmaZ-000000005vi-0000 (queue run pid p1235)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1241 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

delivering 10HmbA-000000005vi-0000 (queue run pid p1235)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1242 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

queue running combined directories
looking in TESTSUITE/spool//input
delivering 10HmaZ-000000005vi-0000 (queue run pid p1235)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
@@ -122,9 +138,12 @@ LOG: MAIN
Completed
>>>>>>>>>>>>>>>> Exim pid=p1244 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

delivering 10HmbA-000000005vi-0000 (queue run pid p1235)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
LOG: MAIN
@@ -140,6 +159,8 @@ dropping to exim gid; retaining priv uid
LOG: queue_run MAIN
Start queue run: pid=p1236 -qqf
delivering 10HmbA-000000005vi-0000 (queue run pid p1236)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1246 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -153,13 +174,18 @@ LOG: MAIN
Completed
>>>>>>>>>>>>>>>> Exim pid=p1247 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

delivering 10HmbC-000000005vi-0000 (queue run pid p1236)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1248 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

delivering 10HmbA-000000005vi-0000 (queue run pid p1236)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
@@ -192,6 +218,8 @@ trusted user
admin user
dropping to exim gid; retaining priv uid
delivering 10HmbC-000000005vi-0000 (queue run pid p1236)
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
SMTP|> MAIL FROM:<CALLER@???>
diff --git a/test/stderr/0227 b/test/stderr/0227
index 0a4c4f1df..456e7717d 100644
--- a/test/stderr/0227
+++ b/test/stderr/0227
@@ -1,6 +1,7 @@
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -20,7 +21,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -40,7 +42,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -60,7 +63,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -78,7 +82,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -97,7 +102,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -115,7 +121,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from 1.1.1.1 ... LOG: MAIN
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from 1.1.1.1 ...
+LOG: MAIN
bind of [1.1.1.1]:1111 failed
unable to bind outgoing SMTP call to 1.1.1.1: Netwk addr not available
failed: Netwk addr not available
@@ -129,7 +136,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -147,7 +155,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -166,7 +175,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -184,15 +194,18 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
-Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
+Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_S ...
+ failed: Connection refused
LOG: MAIN REJECT
H=(test) [V4NET.0.0.3] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@???>: Could not complete recipient verify callout
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -210,7 +223,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -228,7 +242,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -253,7 +268,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -280,7 +296,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250- wotcher sverifier
@@ -298,7 +315,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250- wotcher rverifier
@@ -318,7 +336,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250- wotcher rverifier
@@ -338,7 +357,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250- wotcher rverifier
@@ -364,7 +384,9 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
SMTP<< 220 Server ready
SMTP>> LHLO myhost.test.ex
SMTP<< 250 OK
@@ -382,7 +404,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP(closed)<<
SMTP(close)>>
cmdlog: '(unset)'
@@ -394,7 +417,8 @@ LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
LOG: smtp_connection MAIN
SMTP connection from root
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : Connection refused
LOG: MAIN REJECT
diff --git a/test/stderr/0234 b/test/stderr/0234
index 2a618bd17..5f34ad73d 100644
--- a/test/stderr/0234
+++ b/test/stderr/0234
@@ -15,9 +15,11 @@
>>> check domains = +relay_domains
>>> d in "+relay_domains"?
>>> list element: +relay_domains

->>>  d in "@mx_any"?
->>>   list element: @mx_any
->>>  d in "@mx_any"? no (end of list)
+>>>   start sublist relay_domains
+>>>    d in "@mx_any"?
+>>>    ╎list element: @mx_any
+>>>    d in "@mx_any"? no (end of list)
+>>>   end sublist relay_domains

>>> d in "+relay_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 20)

@@ -30,10 +32,13 @@ LOG: H=(test) [V4NET.0.0.0] F=<a@b> rejected RCPT <c@d>: relay not permitted
>>> check domains = +relay_domains
>>> mxt1.test.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  mxt1.test.ex in "@mx_any"?
->>>   list element: @mx_any
+>>>   start sublist relay_domains
+>>>    mxt1.test.ex in "@mx_any"?
+>>>    ╎list element: @mx_any

>>> local host has lowest MX

->>>   mxt1.test.ex in "@mx_any"? yes (matched "@mx_any")
+>>>    ╎mxt1.test.ex in "@mx_any"? yes (matched "@mx_any")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key 'mxt1.test.ex' value '@mx_any'

>>> mxt1.test.ex in "+relay_domains"? yes (matched "+relay_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -42,12 +47,15 @@ LOG: H=(test) [V4NET.0.0.0] F=<a@b> rejected RCPT <c@d>: relay not permitted
>>> check domains = +relay_domains
>>> mxt6.test.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  mxt6.test.ex in "@mx_any"?
->>>   list element: @mx_any
+>>>   start sublist relay_domains
+>>>    mxt6.test.ex in "@mx_any"?
+>>>    ╎list element: @mx_any

>>> local host in host list - removed hosts:
>>> ten-2.test.ex V4NET.0.0.2 6
>>> eximtesthost.test.ex ip4.ip4.ip4.ip4 6

->>>   mxt6.test.ex in "@mx_any"? yes (matched "@mx_any")
+>>>    ╎mxt6.test.ex in "@mx_any"? yes (matched "@mx_any")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key 'mxt6.test.ex' value '@mx_any'

>>> mxt6.test.ex in "+relay_domains"? yes (matched "+relay_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0243 b/test/stderr/0243
index 3e3f2678b..c92fc3e09 100644
--- a/test/stderr/0243
+++ b/test/stderr/0243
@@ -24,16 +24,16 @@
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing faq@???

->>> nl.demon.net in "*.demon.net"?
+>>> nl.demon.net in domains?
>>> list element: *.demon.net

->>> nl.demon.net in "*.demon.net"? yes (matched "*.demon.net")
+>>> nl.demon.net in domains? yes (matched "*.demon.net")
>>> calling auto_antwoord router
>>> routed by auto_antwoord router (unseen)
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing faq@???

->>> nl.demon.net in "nl.demon.net:*.nl.demon.net:fax-gw.demon.nl: www-3.demon.nl : localhost"?
+>>> nl.demon.net in domains?
>>> list element: nl.demon.net

->>> nl.demon.net in "nl.demon.net:*.nl.demon.net:fax-gw.demon.nl: www-3.demon.nl : localhost"? yes (matched "nl.demon.net")
+>>> nl.demon.net in domains? yes (matched "nl.demon.net")
>>> calling algemeen_aliases router
>>> routed by algemeen_aliases router
>>> ----------- end verify ------------

@@ -42,9 +42,12 @@
>>> check domains = +local_domains
>>> nl.demon.net in "+local_domains"?
>>> list element: +local_domains

->>>  nl.demon.net in "nl.demon.net"?
->>>   list element: nl.demon.net
->>>   nl.demon.net in "nl.demon.net"? yes (matched "nl.demon.net")
+>>>   start sublist local_domains
+>>>    nl.demon.net in "nl.demon.net"?
+>>>    ╎list element: nl.demon.net
+>>>    ╎nl.demon.net in "nl.demon.net"? yes (matched "nl.demon.net")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'nl.demon.net' value 'nl.demon.net'

>>> nl.demon.net in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0249 b/test/stderr/0249
index ff905a491..1784b1bca 100644
--- a/test/stderr/0249
+++ b/test/stderr/0249
@@ -1,22 +1,39 @@
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from sender: rewritten as "User@???" by rule 2
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from from: rewritten as "User@???" by rule 2
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from to: rewritten as "User@???" by rule 2
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from cc: rewritten as "User@???" by rule 2
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from bcc: rewritten as "User@???" by rule 2
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from reply-to: rewritten as "User@???" by rule 2
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from env-from rewritten as "User@???" by rule 2
+c.domain in "a.domain"? no (end of list)
+User@??? in "*@a.domain"? no (end of list)
LOG: address_rewrite MAIN
"User@???" from env-to rewritten as "User@???" by rule 2
+User@??? in "a@b"? no (end of list)
>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)

diff --git a/test/stderr/0251 b/test/stderr/0251
index 558b3675e..816d4dd1a 100644
--- a/test/stderr/0251
+++ b/test/stderr/0251
@@ -16,31 +16,31 @@
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing oklist@???

->>> listr.test.ex in "listr.test.ex"?
+>>> listr.test.ex in domains?
>>> list element: listr.test.ex

->>> listr.test.ex in "listr.test.ex"? yes (matched "listr.test.ex")
->>> ok@sender in "TESTSUITE/aux-fixed/0251.restrict.oklist"?
+>>> listr.test.ex in domains? yes (matched "listr.test.ex")
+>>> ok@sender in senders?
>>> list element: TESTSUITE/aux-fixed/0251.restrict.oklist
>>> sender in "sender"?
>>> list element: sender
>>> sender in "sender"? yes (matched "sender")

->>> ok@sender in "TESTSUITE/aux-fixed/0251.restrict.oklist"? yes (matched "ok@sender" in TESTSUITE/aux-fixed/0251.restrict.oklist)
+>>> ok@sender in senders? yes (matched "ok@sender" in TESTSUITE/aux-fixed/0251.restrict.oklist)
>>> calling exeter_listr router
>>> routed by exeter_listr router
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing xxx@???

->>> listr.test.ex in "listr.test.ex"?
+>>> listr.test.ex in domains?
>>> list element: listr.test.ex

->>> listr.test.ex in "listr.test.ex"? yes (matched "listr.test.ex")
->>> ok@sender in "zzzz"?
+>>> listr.test.ex in domains? yes (matched "listr.test.ex")
+>>> ok@sender in senders?
>>> list element: zzzz
>>> sender in "zzzz"?
>>> list element: zzzz
>>> sender in "zzzz"? no (end of list)

->>> ok@sender in "zzzz"? no (end of list)
->>> listr.test.ex in "listr.test.ex"?
+>>> ok@sender in senders? no (end of list)
+>>> listr.test.ex in domains?
>>> list element: listr.test.ex

->>> listr.test.ex in "listr.test.ex"? yes (matched "listr.test.ex")
+>>> listr.test.ex in domains? yes (matched "listr.test.ex")
>>> calling exeter_listf router
>>> routed by exeter_listf router
>>> ----------- end verify ------------

@@ -49,10 +49,13 @@
>>> check domains = +local_domains
>>> listr.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  listr.test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>   listr.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   start sublist local_domains
+>>>    listr.test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    ╎listr.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'listr.test.ex' value '*.test.ex'

>>> listr.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -62,15 +65,15 @@
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing oklist@???

->>> listr.test.ex in "listr.test.ex"?
+>>> listr.test.ex in domains?
>>> list element: listr.test.ex

->>> listr.test.ex in "listr.test.ex"? yes (matched "listr.test.ex")
->>> bad@sender in "TESTSUITE/aux-fixed/0251.restrict.oklist"?
+>>> listr.test.ex in domains? yes (matched "listr.test.ex")
+>>> bad@sender in senders?
>>> list element: TESTSUITE/aux-fixed/0251.restrict.oklist

->>> bad@sender in "TESTSUITE/aux-fixed/0251.restrict.oklist"? no (end of list)
->>> listr.test.ex in "listr.test.ex"?
+>>> bad@sender in senders? no (end of list)
+>>> listr.test.ex in domains?
>>> list element: listr.test.ex

->>> listr.test.ex in "listr.test.ex"? yes (matched "listr.test.ex")
+>>> listr.test.ex in domains? yes (matched "listr.test.ex")
>>> calling exeter_listf router
>>> routed by exeter_listf router
>>> ----------- end verify ------------

@@ -79,10 +82,13 @@
>>> check domains = +local_domains
>>> listr.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  listr.test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>   listr.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   start sublist local_domains
+>>>    listr.test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    ╎listr.test.ex in "test.ex : *.test.ex"? yes (matched "*.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'listr.test.ex' value '*.test.ex'

>>> listr.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/0264 b/test/stderr/0264
index 8a7b911e2..5b5770c83 100644
--- a/test/stderr/0264
+++ b/test/stderr/0264
@@ -37,22 +37,27 @@ routing rz.b@outside
 --------> r1 router <--------
 local_part=rz.b domain=outside
 checking domains
+outside in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=rz.b domain=outside
 checking domains
+outside in domains? no (end of list)
 r2 router skipped: domains mismatch
 --------> r3 router <--------
 local_part=rz.b domain=outside
 checking local_parts
+rz.b in local_parts? no (end of list)
 r3 router skipped: local_parts mismatch
 --------> r4 router <--------
 local_part=rz.b domain=outside
 checking local_parts
+rz.b in local_parts? no (end of list)
 r4 router skipped: local_parts mismatch
 --------> r5 router <--------
 local_part=rz.b domain=outside
 checking local_parts
+rz.b in local_parts? no (end of list)
 r5 router skipped: local_parts mismatch
 --------> r_remain router <--------
 local_part=rz.b domain=outside
@@ -82,6 +87,10 @@ Failed addresses:
 Deferred addresses:
  rz.b@outside
 locking TESTSUITE/spool/db/retry.lockfile
+*@outside in "^\*@r5domain.ex"? no (end of list)
+*@outside in "userx@???"? no (end of list)
+outside in "test.ex"? no (end of list)
+*@outside in "test.ex"? no (end of list)
 retry for R:outside = * 0 0
 failing_interval=ttt message_age=ttt
 Writing retry data for R:outside
diff --git a/test/stderr/0275 b/test/stderr/0275
index 6e0b93366..0c0ca3e65 100644
--- a/test/stderr/0275
+++ b/test/stderr/0275
@@ -17,7 +17,7 @@ test.ex in percent_hack_domains?
  list element: +hold_domains
   start sublist hold_domains
    test.ex in "! *.ex"?
-   ╎list element: ! *.ex
+   ╎list element: !░*.ex
    ╎test.ex in "! *.ex"? no (matched "! *.ex")
   end sublist hold_domains
  list element: +not_queue_domains
@@ -32,31 +32,31 @@ routing userx@???
 --------> r00 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache"?
+test.ex in domains?
  list element: +nocache
   start sublist nocache
    test.ex in "userx"?
    ╎list element: userx
    test.ex in "userx"? no (end of list)
   end sublist nocache
-test.ex in "+nocache"? no (end of list)
+test.ex in domains? no (end of list)
 r00 router skipped: domains mismatch
 --------> r01 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache"?
+test.ex in domains?
  list element: +nocache
   start sublist nocache
    test.ex in "userx"?
    ╎list element: userx
    test.ex in "userx"? no (end of list)
   end sublist nocache
-test.ex in "+nocache"? no (end of list)
+test.ex in domains? no (end of list)
 r01 router skipped: domains mismatch
 --------> r02 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache2"?
+test.ex in domains?
  list element: +nocache2
   start sublist nocache2
    test.ex in "+nocache"?
@@ -68,12 +68,12 @@ test.ex in "+nocache2"?
    ╎ end sublist nocache
    test.ex in "+nocache"? no (end of list)
   end sublist nocache2
-test.ex in "+nocache2"? no (end of list)
+test.ex in domains? no (end of list)
 r02 router skipped: domains mismatch
 --------> r03 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache2"?
+test.ex in domains?
  list element: +nocache2
   start sublist nocache2
    test.ex in "+nocache"?
@@ -85,34 +85,34 @@ test.ex in "+nocache2"?
    ╎ end sublist nocache
    test.ex in "+nocache"? no (end of list)
   end sublist nocache2
-test.ex in "+nocache2"? no (end of list)
+test.ex in domains? no (end of list)
 r03 router skipped: domains mismatch
 --------> r04 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+forcecache"?
+test.ex in domains?
  list element: +forcecache
   start sublist forcecache
    test.ex in "userx"?
    ╎list element: userx
    test.ex in "userx"? no (end of list)
   end sublist forcecache
-test.ex in "+forcecache"? no (end of list)
+test.ex in domains? no (end of list)
 r04 router skipped: domains mismatch
 --------> r05 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+forcecache"?
+test.ex in domains?
  list element: +forcecache
   start sublist forcecache
  cached no match for +forcecache
  cached lookup data = NULL
-test.ex in "+forcecache"? no (end of list)
+test.ex in domains? no (end of list)
 r05 router skipped: domains mismatch
 --------> r1 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+never_domains : +n1_domains : ! +local_domains"?
+test.ex in domains?
  list element: +never_domains
   start sublist never_domains
    test.ex in "never.ex"?
@@ -125,19 +125,19 @@ test.ex in "+never_domains : +n1_domains : ! +local_domains"?
    ╎list element: never1.ex
    test.ex in "never1.ex"? no (end of list)
   end sublist n1_domains
- list element: ! +local_domains
+ list element: !░+local_domains
   start sublist local_domains
    test.ex in "test.ex"?
    ╎list element: test.ex
    ╎test.ex in "test.ex"? yes (matched "test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
- test.ex in "+never_domains : +n1_domains : ! +local_domains"? no (matched "! +local_domains")
+ test.ex in domains? no (matched "! +local_domains")
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+never_domains : +n2_domains : !+local_domains"?
+test.ex in domains?
  list element: +never_domains
   start sublist never_domains
  cached no match for +never_domains
@@ -156,21 +156,21 @@ test.ex in "+never_domains : +n2_domains : !+local_domains"?
   start sublist local_domains
  cached yes match for +local_domains
  cached lookup data = test.ex
- test.ex in "+never_domains : +n2_domains : !+local_domains"? no (matched "!+local_domains" - cached)
+ test.ex in domains? no (matched "!+local_domains" - cached)
 r2 router skipped: domains mismatch
 --------> r3 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+local_domains"?
+test.ex in domains?
  list element: +local_domains
   start sublist local_domains
  cached yes match for +local_domains
  cached lookup data = test.ex
- test.ex in "+local_domains"? yes (matched "+local_domains" - cached)
+ test.ex in domains? yes (matched "+local_domains" - cached)
 checking local_parts
-userx in "userx"?
+userx in local_parts?
  list element: userx
- userx in "userx"? yes (matched "userx")
+ userx in local_parts? yes (matched "userx")
 calling r3 router
 r3 router called for userx@???
   domain = test.ex
@@ -268,7 +268,7 @@ test.ex in percent_hack_domains?
  list element: +hold_domains
   start sublist hold_domains
    test.ex in "! *.ex"?
-   ╎list element: ! *.ex
+   ╎list element: !░*.ex
    ╎test.ex in "! *.ex"? no (matched "! *.ex")
   end sublist hold_domains
  list element: +not_queue_domains
@@ -297,31 +297,31 @@ routing userx@???
 --------> r00 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache"?
+test.ex in domains?
  list element: +nocache
   start sublist nocache
    test.ex in "userx"?
    ╎list element: userx
    test.ex in "userx"? no (end of list)
   end sublist nocache
-test.ex in "+nocache"? no (end of list)
+test.ex in domains? no (end of list)
 r00 router skipped: domains mismatch
 --------> r01 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache"?
+test.ex in domains?
  list element: +nocache
   start sublist nocache
    test.ex in "userx"?
    ╎list element: userx
    test.ex in "userx"? no (end of list)
   end sublist nocache
-test.ex in "+nocache"? no (end of list)
+test.ex in domains? no (end of list)
 r01 router skipped: domains mismatch
 --------> r02 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache2"?
+test.ex in domains?
  list element: +nocache2
   start sublist nocache2
    test.ex in "+nocache"?
@@ -333,12 +333,12 @@ test.ex in "+nocache2"?
    ╎ end sublist nocache
    test.ex in "+nocache"? no (end of list)
   end sublist nocache2
-test.ex in "+nocache2"? no (end of list)
+test.ex in domains? no (end of list)
 r02 router skipped: domains mismatch
 --------> r03 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+nocache2"?
+test.ex in domains?
  list element: +nocache2
   start sublist nocache2
    test.ex in "+nocache"?
@@ -350,34 +350,34 @@ test.ex in "+nocache2"?
    ╎ end sublist nocache
    test.ex in "+nocache"? no (end of list)
   end sublist nocache2
-test.ex in "+nocache2"? no (end of list)
+test.ex in domains? no (end of list)
 r03 router skipped: domains mismatch
 --------> r04 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+forcecache"?
+test.ex in domains?
  list element: +forcecache
   start sublist forcecache
    test.ex in "userx"?
    ╎list element: userx
    test.ex in "userx"? no (end of list)
   end sublist forcecache
-test.ex in "+forcecache"? no (end of list)
+test.ex in domains? no (end of list)
 r04 router skipped: domains mismatch
 --------> r05 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+forcecache"?
+test.ex in domains?
  list element: +forcecache
   start sublist forcecache
  cached no match for +forcecache
  cached lookup data = NULL
-test.ex in "+forcecache"? no (end of list)
+test.ex in domains? no (end of list)
 r05 router skipped: domains mismatch
 --------> r1 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+never_domains : +n1_domains : ! +local_domains"?
+test.ex in domains?
  list element: +never_domains
   start sublist never_domains
    test.ex in "never.ex"?
@@ -390,19 +390,19 @@ test.ex in "+never_domains : +n1_domains : ! +local_domains"?
    ╎list element: never1.ex
    test.ex in "never1.ex"? no (end of list)
   end sublist n1_domains
- list element: ! +local_domains
+ list element: !░+local_domains
   start sublist local_domains
    test.ex in "test.ex"?
    ╎list element: test.ex
    ╎test.ex in "test.ex"? yes (matched "test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
- test.ex in "+never_domains : +n1_domains : ! +local_domains"? no (matched "! +local_domains")
+ test.ex in domains? no (matched "! +local_domains")
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+never_domains : +n2_domains : !+local_domains"?
+test.ex in domains?
  list element: +never_domains
   start sublist never_domains
  cached no match for +never_domains
@@ -421,21 +421,21 @@ test.ex in "+never_domains : +n2_domains : !+local_domains"?
   start sublist local_domains
  cached yes match for +local_domains
  cached lookup data = test.ex
- test.ex in "+never_domains : +n2_domains : !+local_domains"? no (matched "!+local_domains" - cached)
+ test.ex in domains? no (matched "!+local_domains" - cached)
 r2 router skipped: domains mismatch
 --------> r3 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "+local_domains"?
+test.ex in domains?
  list element: +local_domains
   start sublist local_domains
  cached yes match for +local_domains
  cached lookup data = test.ex
- test.ex in "+local_domains"? yes (matched "+local_domains" - cached)
+ test.ex in domains? yes (matched "+local_domains" - cached)
 checking local_parts
-userx in "userx"?
+userx in local_parts?
  list element: userx
- userx in "userx"? yes (matched "userx")
+ userx in local_parts? yes (matched "userx")
 calling r3 router
 r3 router called for userx@???
   domain = test.ex
@@ -552,7 +552,7 @@ test.ex in percent_hack_domains?
  list element: +hold_domains
   start sublist hold_domains
    test.ex in "! *.ex"?
-   ╎list element: ! *.ex
+   ╎list element: !░*.ex
    ╎test.ex in "! *.ex"? no (matched "! *.ex")
   end sublist hold_domains
  list element: +not_queue_domains
@@ -581,12 +581,12 @@ routing error@???
 --------> r0f router <--------
 local_part=error domain=test.ex
 checking domains
-test.ex in "+no_such_list"?
+test.ex in domains?
  list element: +no_such_list
   start sublist no_such_list
 LOG: MAIN PANIC
   unknown named domain list "+no_such_list"
-  test.ex in "+no_such_list"? list match deferred for +no_such_list
+  test.ex in domains? list match deferred for +no_such_list
 domains check lookup or other defer
   ----------- end verify ------------
   accept: condition test deferred in inline ACL
diff --git a/test/stderr/0276 b/test/stderr/0276
index 34088f60c..d19af1f2f 100644
--- a/test/stderr/0276
+++ b/test/stderr/0276
@@ -1,7 +1,8 @@
 LOG: MAIN
   <= CALLER@??? U=CALLER P=local S=sss
 delivering 10HmaX-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
   SMTP<< 250-server id
@@ -23,7 +24,8 @@ LOG: MAIN
 LOG: MAIN
   <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss
 delivering 10HmaY-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
 LOG: MAIN
   H=127.0.0.1 [127.0.0.1] Connection refused
 LOG: MAIN
@@ -39,7 +41,8 @@ LOG: MAIN
 LOG: MAIN
   <= CALLER@??? U=CALLER P=local S=sss
 delivering 10HmaZ-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
   SMTP<< 250-server id
@@ -60,7 +63,8 @@ LOG: MAIN
 LOG: MAIN
   <= <> R=10HmaZ-000000005vi-0000 U=EXIMUSER P=local S=sss
 delivering 10HmbA-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
 LOG: MAIN
   H=127.0.0.1 [127.0.0.1] Connection refused
 LOG: MAIN
diff --git a/test/stderr/0278 b/test/stderr/0278
index 6f80654b3..0e32b4c92 100644
--- a/test/stderr/0278
+++ b/test/stderr/0278
@@ -18,7 +18,7 @@ routing CALLER@???
 --------> r1 router <--------
 local_part=CALLER domain=test.ex
 checking local_parts
-CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"?
+CALLER in local_parts?
  list element: +never_localparts
   start sublist never_localparts
    CALLER in "never"?
@@ -31,19 +31,19 @@ CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"?
    ╎list element: never1
    CALLER in "never1"? no (end of list)
   end sublist n1_localparts
- list element: ! +local_localparts
+ list element: !░+local_localparts
   start sublist local_localparts
    CALLER in "CALLER"?
    ╎list element: CALLER
    ╎CALLER in "CALLER"? yes (matched "CALLER")
   end sublist local_localparts
  data from lookup saved for cache for +local_localparts: key 'CALLER' value 'CALLER'
- CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"? no (matched "! +local_localparts")
+ CALLER in local_parts? no (matched "! +local_localparts")
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=CALLER domain=test.ex
 checking local_parts
-CALLER in "+never_localparts : +n2_localparts : !+local_localparts"?
+CALLER in local_parts?
  list element: +never_localparts
   start sublist never_localparts
  cached no match for +never_localparts
@@ -62,17 +62,17 @@ CALLER in "+never_localparts : +n2_localparts : !+local_localparts"?
   start sublist local_localparts
  cached yes match for +local_localparts
  cached lookup data = CALLER
- CALLER in "+never_localparts : +n2_localparts : !+local_localparts"? no (matched "!+local_localparts" - cached)
+ CALLER in local_parts? no (matched "!+local_localparts" - cached)
 r2 router skipped: local_parts mismatch
 --------> r3 router <--------
 local_part=CALLER domain=test.ex
 checking local_parts
-CALLER in "+local_localparts"?
+CALLER in local_parts?
  list element: +local_localparts
   start sublist local_localparts
  cached yes match for +local_localparts
  cached lookup data = CALLER
- CALLER in "+local_localparts"? yes (matched "+local_localparts" - cached)
+ CALLER in local_parts? yes (matched "+local_localparts" - cached)
 checking for local user
 seeking password data for user "CALLER": using cached result
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
@@ -178,7 +178,7 @@ routing CALLER@???
 --------> r1 router <--------
 local_part=CALLER domain=test.ex
 checking local_parts
-CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"?
+CALLER in local_parts?
  list element: +never_localparts
   start sublist never_localparts
    CALLER in "never"?
@@ -191,19 +191,19 @@ CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"?
    ╎list element: never1
    CALLER in "never1"? no (end of list)
   end sublist n1_localparts
- list element: ! +local_localparts
+ list element: !░+local_localparts
   start sublist local_localparts
    CALLER in "CALLER"?
    ╎list element: CALLER
    ╎CALLER in "CALLER"? yes (matched "CALLER")
   end sublist local_localparts
  data from lookup saved for cache for +local_localparts: key 'CALLER' value 'CALLER'
- CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"? no (matched "! +local_localparts")
+ CALLER in local_parts? no (matched "! +local_localparts")
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=CALLER domain=test.ex
 checking local_parts
-CALLER in "+never_localparts : +n2_localparts : !+local_localparts"?
+CALLER in local_parts?
  list element: +never_localparts
   start sublist never_localparts
  cached no match for +never_localparts
@@ -222,17 +222,17 @@ CALLER in "+never_localparts : +n2_localparts : !+local_localparts"?
   start sublist local_localparts
  cached yes match for +local_localparts
  cached lookup data = CALLER
- CALLER in "+never_localparts : +n2_localparts : !+local_localparts"? no (matched "!+local_localparts" - cached)
+ CALLER in local_parts? no (matched "!+local_localparts" - cached)
 r2 router skipped: local_parts mismatch
 --------> r3 router <--------
 local_part=CALLER domain=test.ex
 checking local_parts
-CALLER in "+local_localparts"?
+CALLER in local_parts?
  list element: +local_localparts
   start sublist local_localparts
  cached yes match for +local_localparts
  cached lookup data = CALLER
- CALLER in "+local_localparts"? yes (matched "+local_localparts" - cached)
+ CALLER in local_parts? yes (matched "+local_localparts" - cached)
 checking for local user
 seeking password data for user "CALLER": using cached result
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
@@ -328,7 +328,7 @@ routing unknown@???
 --------> r1 router <--------
 local_part=unknown domain=test.ex
 checking local_parts
-unknown in "+never_localparts : +n1_localparts : ! +local_localparts"?
+unknown in local_parts?
  list element: +never_localparts
   start sublist never_localparts
    unknown in "never"?
@@ -341,13 +341,13 @@ unknown in "+never_localparts : +n1_localparts : ! +local_localparts"?
    ╎list element: never1
    unknown in "never1"? no (end of list)
   end sublist n1_localparts
- list element: ! +local_localparts
+ list element: !░+local_localparts
   start sublist local_localparts
    unknown in "CALLER"?
    ╎list element: CALLER
    unknown in "CALLER"? no (end of list)
   end sublist local_localparts
-unknown in "+never_localparts : +n1_localparts : ! +local_localparts"? yes (end of list)
+unknown in local_parts? yes (end of list)
 calling r1 router
 r1 router called for unknown@???
   domain = test.ex
@@ -359,7 +359,7 @@ r1 router declined for unknown@???
 --------> r2 router <--------
 local_part=unknown domain=test.ex
 checking local_parts
-unknown in "+never_localparts : +n2_localparts : !+local_localparts"?
+unknown in local_parts?
  list element: +never_localparts
   start sublist never_localparts
  cached no match for +never_localparts
@@ -378,13 +378,14 @@ unknown in "+never_localparts : +n2_localparts : !+local_localparts"?
   start sublist local_localparts
  cached no match for +local_localparts
  cached lookup data = NULL
-unknown in "+never_localparts : +n2_localparts : !+local_localparts"? yes (end of list)
+unknown in local_parts? yes (end of list)
 calling r2 router
 r2 router called for unknown@???
   domain = test.ex
-test.ex in "*"?
+test.ex in dnssec_require_domains? no (option unset)
+test.ex in dnssec_request_domains?
  list element: *
- test.ex in "*"? yes (matched "*")
+ test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of test.ex (MX) using fakens
 DNS lookup of test.ex (MX) gave NO_DATA
 returning DNS_NODATA
@@ -400,17 +401,17 @@ r2 router declined for unknown@???
 --------> r3 router <--------
 local_part=unknown domain=test.ex
 checking local_parts
-unknown in "+local_localparts"?
+unknown in local_parts?
  list element: +local_localparts
   start sublist local_localparts
  cached no match for +local_localparts
  cached lookup data = NULL
-unknown in "+local_localparts"? no (end of list)
+unknown in local_parts? no (end of list)
 r3 router skipped: local_parts mismatch
 --------> r4 router <--------
 local_part=unknown domain=test.ex
 checking local_parts
-unknown in "+local_localparts : +expanded : +unexpanded"?
+unknown in local_parts?
  list element: +local_localparts
   start sublist local_localparts
  cached no match for +local_localparts
@@ -427,12 +428,12 @@ unknown in "+local_localparts : +expanded : +unexpanded"?
    ╎list element: unexpanded
    unknown in "unexpanded"? no (end of list)
   end sublist unexpanded
-unknown in "+local_localparts : +expanded : +unexpanded"? no (end of list)
+unknown in local_parts? no (end of list)
 r4 router skipped: local_parts mismatch
 --------> r5 router <--------
 local_part=unknown domain=test.ex
 checking local_parts
-unknown in "+local_localparts : +expanded : +unexpanded"?
+unknown in local_parts?
  list element: +local_localparts
   start sublist local_localparts
  cached no match for +local_localparts
@@ -447,7 +448,7 @@ unknown in "+local_localparts : +expanded : +unexpanded"?
   start sublist unexpanded
  cached no match for +unexpanded
  cached lookup data = NULL
-unknown in "+local_localparts : +expanded : +unexpanded"? no (end of list)
+unknown in local_parts? no (end of list)
 r5 router skipped: local_parts mismatch
 no more routers
 search_tidyup called
diff --git a/test/stderr/0279 b/test/stderr/0279
index 1885579cb..f716ff205 100644
--- a/test/stderr/0279
+++ b/test/stderr/0279
@@ -21,15 +21,15 @@ routing CALLER@???
 --------> rr1 router <--------
 local_part=CALLER domain=test.ex
 checking senders
-CALLER@??? in "user1@+funny_domains"?
+CALLER@??? in senders?
  list element: user1@+funny_domains
  address match test: subject=CALLER@??? pattern=user1@+funny_domains
-CALLER@??? in "user1@+funny_domains"? no (end of list)
+CALLER@??? in senders? no (end of list)
 rr1 router skipped: senders mismatch
 --------> r1 router <--------
 local_part=CALLER domain=test.ex
 checking senders
-CALLER@??? in "+never_addresses : +n1_addresses : ! +local_addresses"?
+CALLER@??? in senders?
  list element: +never_addresses
   start sublist never_addresses
    CALLER@??? in "never@???"?
@@ -44,7 +44,7 @@ CALLER@??? in "+never_addresses : +n1_addresses : ! +local_addresses"?
    ╎address match test: subject=CALLER@??? pattern=never1@???
    CALLER@??? in "never1@???"? no (end of list)
   end sublist n1_addresses
- list element: ! +local_addresses
+ list element: !░+local_addresses
   start sublist local_addresses
    CALLER@??? in "CALLER@???"?
    ╎list element: CALLER@???
@@ -55,12 +55,12 @@ CALLER@??? in "+never_addresses : +n1_addresses : ! +local_addresses"?
    ╎CALLER@??? in "CALLER@???"? yes (matched "CALLER@???")
   end sublist local_addresses
  data from lookup saved for cache for +local_addresses: key 'CALLER@???' value 'CALLER@???'
- CALLER@??? in "+never_addresses : +n1_addresses : ! +local_addresses"? no (matched "! +local_addresses")
+ CALLER@??? in senders? no (matched "! +local_addresses")
 r1 router skipped: senders mismatch
 --------> r2 router <--------
 local_part=CALLER domain=test.ex
 checking senders
-CALLER@??? in "+never_addresses : +n2_addresses : !+local_addresses"?
+CALLER@??? in senders?
  list element: +never_addresses
   start sublist never_addresses
  cached no match for +never_addresses
@@ -80,7 +80,7 @@ CALLER@??? in "+never_addresses : +n2_addresses : !+local_addresses"?
   start sublist local_addresses
  cached yes match for +local_addresses
  cached lookup data = CALLER@???
- CALLER@??? in "+never_addresses : +n2_addresses : !+local_addresses"? no (matched "!+local_addresses" - cached)
+ CALLER@??? in senders? no (matched "!+local_addresses" - cached)
 r2 router skipped: senders mismatch
 --------> r3 router <--------
 local_part=CALLER domain=test.ex
@@ -88,12 +88,12 @@ checking for local user
 seeking password data for user "CALLER": using cached result
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 checking senders
-CALLER@??? in "+local_addresses"?
+CALLER@??? in senders?
  list element: +local_addresses
   start sublist local_addresses
  cached yes match for +local_addresses
  cached lookup data = CALLER@???
- CALLER@??? in "+local_addresses"? yes (matched "+local_addresses" - cached)
+ CALLER@??? in senders? yes (matched "+local_addresses" - cached)
 calling r3 router
 r3 router called for CALLER@???
   domain = test.ex
@@ -130,7 +130,7 @@ routing CALLER@???
 --------> rr1 router <--------
 local_part=CALLER domain=test.ex
 checking senders
-user1@fun.1 in "user1@+funny_domains"?
+user1@fun.1 in senders?
  list element: user1@+funny_domains
  address match test: subject=user1@fun.1 pattern=user1@+funny_domains
  fun.1 in "+funny_domains"?
@@ -141,7 +141,7 @@ user1@fun.1 in "user1@+funny_domains"?
    ╎ fun.1 in "fun.1 : fun.2"? yes (matched "fun.1")
    end sublist funny_domains
   fun.1 in "+funny_domains"? yes (matched "+funny_domains")
- user1@fun.1 in "user1@+funny_domains"? yes (matched "user1@+funny_domains")
+ user1@fun.1 in senders? yes (matched "user1@+funny_domains")
 calling rr1 router
 rda_interpret (string): ':fail: matched *@+funny_domains'
 expanded: ':fail: matched *@+funny_domains'
diff --git a/test/stderr/0283 b/test/stderr/0283
index a41907c73..a17ec26ef 100644
--- a/test/stderr/0283
+++ b/test/stderr/0283
@@ -27,6 +27,8 @@ seeking password data for user "CALLER": cache not available
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 seeking password data for user "root": cache not available
 getpwnam() succeeded uid=uuuu gid=gggg
+somebody in local_parts? no (end of list)
+somebody in local_parts? no (end of list)
 changed uid/gid: local delivery to somebody <somebody@???> transport=t1
   uid=EXIM_UID gid=EXIM_GID pid=p1236
 transport error EPIPE ignored
@@ -63,6 +65,7 @@ seeking password data for user "CALLER": cache not available
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 seeking password data for user "root": cache not available
 getpwnam() succeeded uid=uuuu gid=gggg
+CALLER in local_parts? no (end of list)
 changed uid/gid: local delivery to CALLER <CALLER@???> transport=t2
   uid=CALLER_UID gid=CALLER_GID pid=p1239
 LOG: MAIN
diff --git a/test/stderr/0294 b/test/stderr/0294
index 2ec78fb58..3ef48e0db 100644
--- a/test/stderr/0294
+++ b/test/stderr/0294
@@ -15,18 +15,23 @@ spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
 log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100

SMTP>> 250 OK

SMTP<< rcpt to:<one@z>
+one in "reject"? no (end of list)
SMTP>> 250 Accepted

SMTP<< rcpt to:<one@z>
rate limit RCPT: delay 0.25 sec
+one in "reject"? no (end of list)
SMTP>> 250 Accepted

SMTP<< rcpt to:<one@z>
rate limit RCPT: delay 0.263 sec
+one in "reject"? no (end of list)
SMTP>> 250 Accepted

SMTP<< rcpt to:<one@z>
rate limit RCPT: delay 0.276 sec
+one in "reject"? no (end of list)
SMTP>> 250 Accepted

SMTP<< rcpt to:<one@z>
rate limit RCPT: delay 0.289 sec
+one in "reject"? no (end of list)
SMTP>> 250 Accepted

SMTP<< data
SMTP>> 354 Enter message, ending with "." on a line by itself

@@ -59,6 +64,7 @@ spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
SMTP>> 250 OK

SMTP<< rcpt to:<two@z>
+two in "reject"? no (end of list)
SMTP>> 250 Accepted

SMTP<< data
SMTP>> 354 Enter message, ending with "." on a line by itself

diff --git a/test/stderr/0303 b/test/stderr/0303
index 60c8bba97..2a08f7e20 100644
--- a/test/stderr/0303
+++ b/test/stderr/0303
@@ -11,6 +11,8 @@
>>> myhost.test.ex in helo_lookup_domains? yes (matched "@")
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK
>>> host in hosts_connection_nolog? no (option unset)

@@ -27,6 +29,8 @@
>>> [127.0.0.1] in helo_lookup_domains? yes (matched "@[]")
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK
>>> list element: *

diff --git a/test/stderr/0305 b/test/stderr/0305
index 5da648d50..0deee2c75 100644
--- a/test/stderr/0305
+++ b/test/stderr/0305
@@ -15,9 +15,11 @@
>>> check domains = +ok_domains
>>> ten-1.test.ex in "+ok_domains"?
>>> list element: +ok_domains

->>>  ten-1.test.ex in "ten-1.test.ex"?
->>>   list element: ten-1.test.ex
->>>   ten-1.test.ex in "ten-1.test.ex"? yes (matched "ten-1.test.ex")
+>>>   start sublist ok_domains
+>>>    ten-1.test.ex in "ten-1.test.ex"?
+>>>    ╎list element: ten-1.test.ex
+>>>    ╎ten-1.test.ex in "ten-1.test.ex"? yes (matched "ten-1.test.ex")
+>>>   end sublist ok_domains

>>> ten-1.test.ex in "+ok_domains"? yes (matched "+ok_domains")
>>> accept: condition test succeeded in ACL "acl1"
>>> end of ACL "acl1": ACCEPT

@@ -26,8 +28,10 @@
>>> check domains = +ok_domains
>>> junk.junk in "+ok_domains"?
>>> list element: +ok_domains

->>>  junk.junk in ""?
->>>  junk.junk in ""? no (end of list)
+>>>   start sublist ok_domains
+>>>    junk.junk in ""?
+>>>    junk.junk in ""? no (end of list)
+>>>   end sublist ok_domains

>>> junk.junk in "+ok_domains"? no (end of list)
>>> accept: condition test failed in ACL "acl1"
>>> end of ACL "acl1": implicit DENY

diff --git a/test/stderr/0306 b/test/stderr/0306
index 37b5cd641..b2d3b50b3 100644
--- a/test/stderr/0306
+++ b/test/stderr/0306
@@ -15,24 +15,24 @@
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing list1-request@???

->>> lists.test.ex in "lists.test.ex"?
+>>> lists.test.ex in domains?
>>> list element: lists.test.ex

->>> lists.test.ex in "lists.test.ex"? yes (matched "lists.test.ex")
+>>> lists.test.ex in domains? yes (matched "lists.test.ex")
>>> calling r1 router
>>> routed by r1 router
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing manager-list1@???

->>> test.ex in "lists.test.ex"?
+>>> test.ex in domains?
>>> list element: lists.test.ex

->>> test.ex in "lists.test.ex"? no (end of list)
->>> test.ex in "lists.test.ex"?
+>>> test.ex in domains? no (end of list)
+>>> test.ex in domains?
>>> list element: lists.test.ex

->>> test.ex in "lists.test.ex"? no (end of list)
->>> anyone@anywhere in ":"?
+>>> test.ex in domains? no (end of list)
+>>> anyone@anywhere in senders?
>>> list element:
>>> anywhere in ""?
>>> anywhere in ""? no (end of list)

->>> anyone@anywhere in ":"? no (end of list)
+>>> anyone@anywhere in senders? no (end of list)
>>> calling r5 router
>>> routed by r5 router
>>> ----------- end verify ------------

@@ -43,12 +43,12 @@
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing list1@???

->>> lists.test.ex in "lists.test.ex"?
+>>> lists.test.ex in domains?
>>> list element: lists.test.ex

->>> lists.test.ex in "lists.test.ex"? yes (matched "lists.test.ex")
->>> sub1@??? in "lsearch;TESTSUITE/aux-fixed/0306/list1"?
+>>> lists.test.ex in domains? yes (matched "lists.test.ex")
+>>> sub1@??? in senders?
>>> list element: lsearch;TESTSUITE/aux-fixed/0306/list1

->>> sub1@??? in "lsearch;TESTSUITE/aux-fixed/0306/list1"? yes (matched "lsearch;TESTSUITE/aux-fixed/0306/list1")
+>>> sub1@??? in senders? yes (matched "lsearch;TESTSUITE/aux-fixed/0306/list1")
>>> calling r2 router
>>> routed by r2 router
>>> ----------- end verify ------------

@@ -62,15 +62,15 @@
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing list1@???

->>> lists.test.ex in "lists.test.ex"?
+>>> lists.test.ex in domains?
>>> list element: lists.test.ex

->>> lists.test.ex in "lists.test.ex"? yes (matched "lists.test.ex")
->>> anyone@anywhere in "lsearch;TESTSUITE/aux-fixed/0306/list1"?
+>>> lists.test.ex in domains? yes (matched "lists.test.ex")
+>>> anyone@anywhere in senders?
>>> list element: lsearch;TESTSUITE/aux-fixed/0306/list1

->>> anyone@anywhere in "lsearch;TESTSUITE/aux-fixed/0306/list1"? no (end of list)
->>> lists.test.ex in "lists.test.ex"?
+>>> anyone@anywhere in senders? no (end of list)
+>>> lists.test.ex in domains?
>>> list element: lists.test.ex

->>> lists.test.ex in "lists.test.ex"? yes (matched "lists.test.ex")
+>>> lists.test.ex in domains? yes (matched "lists.test.ex")
>>> calling r3 router
>>> r3 router forced address failure
>>> ----------- end verify ------------

@@ -82,20 +82,20 @@ LOG: H=(test) [1.2.3.4] F=<anyone@anywhere> rejected RCPT <list1@???>:
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing nonlist@???

->>> lists.test.ex in "lists.test.ex"?
+>>> lists.test.ex in domains?
>>> list element: lists.test.ex

->>> lists.test.ex in "lists.test.ex"? yes (matched "lists.test.ex")
->>> anyone@anywhere in "*"?
+>>> lists.test.ex in domains? yes (matched "lists.test.ex")
+>>> anyone@anywhere in senders?
>>> list element: *
>>> anywhere in "*"?
>>> list element: *
>>> anywhere in "*"? yes (matched "*")

->>> anyone@anywhere in "*"? yes (matched "*")
+>>> anyone@anywhere in senders? yes (matched "*")
>>> calling r2 router
>>> r2 router declined for nonlist@???

->>> lists.test.ex in "lists.test.ex"?
+>>> lists.test.ex in domains?
>>> list element: lists.test.ex

->>> lists.test.ex in "lists.test.ex"? yes (matched "lists.test.ex")
+>>> lists.test.ex in domains? yes (matched "lists.test.ex")
>>> calling r3 router
>>> r3 router forced address failure
>>> ----------- end verify ------------

diff --git a/test/stderr/0308 b/test/stderr/0308
index 369fcf453..b9b2fd69a 100644
--- a/test/stderr/0308
+++ b/test/stderr/0308
@@ -47,6 +47,8 @@ LOG: no host name found for IP address V4NET.0.0.97
>>> sender host name required, to match against *.test.ex
>>> looking up host name for V4NET.0.0.1
>>> IP address lookup yielded "ten-1.test.ex"

+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
+>>> ten-1.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for ten-1.test.ex
>>> V4NET.0.0.1 OK
>>> host in "*.test.ex"? yes (matched "*.test.ex")

diff --git a/test/stderr/0315 b/test/stderr/0315
index 4dc506af4..5f0306937 100644
--- a/test/stderr/0315
+++ b/test/stderr/0315
@@ -83,6 +83,7 @@ routing y@???
--------> r1 router <--------
local_part=y domain=ten-2.test.ex
checking domains
+ten-2.test.ex in domains? no (end of list)
r1 router skipped: domains mismatch
--------> r2 router <--------
local_part=y domain=ten-2.test.ex
@@ -103,6 +104,7 @@ routing x@???
--------> r1 router <--------
local_part=x domain=ten-2.test.ex
checking domains
+ten-2.test.ex in domains? no (end of list)
r1 router skipped: domains mismatch
--------> r2 router <--------
local_part=x domain=ten-2.test.ex
diff --git a/test/stderr/0325 b/test/stderr/0325
index d5550ea88..633a5b0ab 100644
--- a/test/stderr/0325
+++ b/test/stderr/0325
@@ -23,16 +23,22 @@ r4: $local_part_data = LOCAL PART DATA
>>> check domains = +test_domains
>>> a.b.c in "+test_domains"?
>>> list element: +test_domains

->>>  a.b.c in "lsearch; TESTSUITE/aux-fixed/0325.data"?
->>>   list element: lsearch; TESTSUITE/aux-fixed/0325.data
->>>   a.b.c in "lsearch; TESTSUITE/aux-fixed/0325.data"? yes (matched "lsearch; TESTSUITE/aux-fixed/0325.data")
+>>>   start sublist test_domains
+>>>    a.b.c in "lsearch; TESTSUITE/aux-fixed/0325.data"?
+>>>    ╎list element: lsearch;░TESTSUITE/aux-fixed/0325.data
+>>>    ╎a.b.c in "lsearch; TESTSUITE/aux-fixed/0325.data"? yes (matched "lsearch; TESTSUITE/aux-fixed/0325.data")
+>>>   end sublist test_domains
+>>>  data from lookup saved for cache for +test_domains: key 'a.b.c' value 'DOMAIN DATA'

>>> a.b.c in "+test_domains"? yes (matched "+test_domains")
>>> check local_parts = +test_local_parts
>>> xxx in "+test_local_parts"?
>>> list element: +test_local_parts

->>>  xxx in "lsearch;TESTSUITE/aux-fixed/0325.data"?
->>>   list element: lsearch;TESTSUITE/aux-fixed/0325.data
->>>   xxx in "lsearch;TESTSUITE/aux-fixed/0325.data"? yes (matched "lsearch;TESTSUITE/aux-fixed/0325.data")
+>>>   start sublist test_local_parts
+>>>    xxx in "lsearch;TESTSUITE/aux-fixed/0325.data"?
+>>>    ╎list element: lsearch;TESTSUITE/aux-fixed/0325.data
+>>>    ╎xxx in "lsearch;TESTSUITE/aux-fixed/0325.data"? yes (matched "lsearch;TESTSUITE/aux-fixed/0325.data")
+>>>   end sublist test_local_parts
+>>>  data from lookup saved for cache for +test_local_parts: key 'xxx' value 'LOCAL PART DATA'

 >>>  xxx in "+test_local_parts"? yes (matched "+test_local_parts")
 >>> check condition = ${if eq{$domain_data/$local_part_data}{DOMAIN DATA/LOCAL PART DATA}{no}{yes}}
 >>>                 = no

@@ -41,10 +47,16 @@ r4: $local_part_data = LOCAL PART DATA
>>> check domains = +test_domains
>>> a.b.c in "+test_domains"?
>>> list element: +test_domains

+>>> start sublist test_domains
+>>> cached yes match for +test_domains
+>>> cached lookup data = DOMAIN DATA
>>> a.b.c in "+test_domains"? yes (matched "+test_domains" - cached)
>>> check local_parts = +test_local_parts
>>> xxx in "+test_local_parts"?
>>> list element: +test_local_parts

+>>> start sublist test_local_parts
+>>> cached yes match for +test_local_parts
+>>> cached lookup data = LOCAL PART DATA
>>> xxx in "+test_local_parts"? yes (matched "+test_local_parts" - cached)
>>> message: \$domain_data=$domain_data \$local_part_data=$local_part_data
>>> deny: condition test succeeded in ACL "a1"

diff --git a/test/stderr/0332 b/test/stderr/0332
index 8cff3bd21..c69ae4a60 100644
--- a/test/stderr/0332
+++ b/test/stderr/0332
@@ -33,7 +33,7 @@ After routing:
Failed addresses:
Deferred addresses:
locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-t1.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-t1.lockfile
cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250'
LOG: MAIN
=> ok@??? R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK"
diff --git a/test/stderr/0333 b/test/stderr/0333
index 0ddd349a3..b878ee24e 100644
--- a/test/stderr/0333
+++ b/test/stderr/0333
@@ -31,7 +31,7 @@ After routing:
Failed addresses:
Deferred addresses:
locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-t1.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-t1.lockfile
cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250'
LOG: MAIN
=> ok@??? R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK"
diff --git a/test/stderr/0342 b/test/stderr/0342
index c4414fe0c..3c954cbd9 100644
--- a/test/stderr/0342
+++ b/test/stderr/0342
@@ -17,16 +17,18 @@
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@ten-1
>>> calling dnslookup router

->>> ten-1 in "*"?
+>>> ten-1 in dnssec_require_domains? no (option unset)
+>>> ten-1 in dnssec_request_domains?
>>> list element: *

->>> ten-1 in "*"? yes (matched "*")
+>>> ten-1 in dnssec_request_domains? yes (matched "*")
>>> re-routed to x@???
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@???
>>> calling dnslookup router

->>> ten-1.test.ex in "*"?
+>>> ten-1.test.ex in dnssec_require_domains? no (option unset)
+>>> ten-1.test.ex in dnssec_request_domains?
>>> list element: *

->>> ten-1.test.ex in "*"? yes (matched "*")
+>>> ten-1.test.ex in dnssec_request_domains? yes (matched "*")
>>> routed by dnslookup router
>>> ----------- end verify ------------
>>> deny: condition test failed in ACL "check_rcpt"

diff --git a/test/stderr/0357 b/test/stderr/0357
index 0e16a6e37..54522c7b1 100644
--- a/test/stderr/0357
+++ b/test/stderr/0357
@@ -25,7 +25,7 @@ After routing:
 checking retry status of 127.0.0.1
 locking TESTSUITE/spool/db/retry.lockfile
 no retry data available
-added retry item for R:userx@???:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
+ added retry item for R:userx@???:<jgh@???>: errno=-44 more_errno=51,A flags=0
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250'
 reading retry information for R:userx@???:<CALLER@???> from subprocess
   added retry item
@@ -70,7 +70,7 @@ checking retry status of 127.0.0.1
 locking TESTSUITE/spool/db/retry.lockfile
 no host retry record
 no message retry record
-added retry item for R:userx@???:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
+ added retry item for R:userx@???:<jgh@???>: errno=-44 more_errno=51,A flags=0
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250'
 reading retry information for R:userx@???:<CALLER@???> from subprocess
   existing delete item dropped
@@ -128,7 +128,7 @@ checking retry status of 127.0.0.1
 locking TESTSUITE/spool/db/retry.lockfile
 no host retry record
 no message retry record
-added retry item for R:userx@???:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
+ added retry item for R:userx@???:<jgh@???>: errno=-44 more_errno=51,A flags=0
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250'
 reading retry information for R:userx@???:<CALLER@???> from subprocess
   existing delete item dropped
diff --git a/test/stderr/0358 b/test/stderr/0358
index 8dbb1f66f..1dc42006c 100644
--- a/test/stderr/0358
+++ b/test/stderr/0358
@@ -30,7 +30,7 @@ After routing:
 checking retry status of 127.0.0.1
 locking TESTSUITE/spool/db/retry.lockfile
 no retry data available
-added retry item for R:userx@???:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
+ added retry item for R:userx@???:<jgh@???>: errno=-44 more_errno=51,A flags=0
 added retry item for R:usery@???:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:RCPT:451:QUIT+:250'
 reading retry information for R:userx@???:<CALLER@???> from subprocess
@@ -94,7 +94,7 @@ checking retry status of 127.0.0.1
 locking TESTSUITE/spool/db/retry.lockfile
 no host retry record
 no message retry record
-added retry item for R:userx@???:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
+ added retry item for R:userx@???:<jgh@???>: errno=-44 more_errno=51,A flags=0
 added retry item for R:usery@???:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:RCPT:451:QUIT+:250'
 reading retry information for R:userx@???:<CALLER@???> from subprocess
diff --git a/test/stderr/0360 b/test/stderr/0360
index 7e30058bc..6364d92d2 100644
--- a/test/stderr/0360
+++ b/test/stderr/0360
@@ -100,6 +100,7 @@ v0 router skipped: verify_only set
 --------> r1 router <--------
 local_part=unknown domain=recurse.test.ex
 checking domains
+recurse.test.ex in domains? yes (end of list)
 calling r1 router
 r1 router called for unknown@???
   domain = recurse.test.ex
@@ -121,6 +122,7 @@ v0 router skipped: verify_only set
 --------> r1 router <--------
 local_part=unknown domain=recurse.test.ex.test.ex
 checking domains
+recurse.test.ex.test.ex in domains? yes (end of list)
 calling r1 router
 r1 router called for unknown@???
   domain = recurse.test.ex.test.ex
diff --git a/test/stderr/0361 b/test/stderr/0361
index 7a4f90d9a..0704cd81c 100644
--- a/test/stderr/0361
+++ b/test/stderr/0361
@@ -93,25 +93,27 @@ routing kilos@???
 --------> r1 router <--------
 local_part=kilos domain=recurse.test.ex
 checking domains
-recurse.test.ex in "!thishost.test.ex : !recurse.test.ex.test.ex"?
+recurse.test.ex in domains?
  list element: !thishost.test.ex
  list element: !recurse.test.ex.test.ex
-recurse.test.ex in "!thishost.test.ex : !recurse.test.ex.test.ex"? yes (end of list)
+recurse.test.ex in domains? yes (end of list)
 calling r1 router
 r1 router called for kilos@???
   domain = recurse.test.ex
-recurse.test.ex in "*"?
+recurse.test.ex in dnssec_require_domains? no (option unset)
+recurse.test.ex in dnssec_request_domains?
  list element: *
- recurse.test.ex in "*"? yes (matched "*")
+ recurse.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of recurse.test.ex (MX) using fakens
 DNS lookup of recurse.test.ex (MX) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(MX) response length as 65535
  writing neg-cache entry for recurse.test.ex-MX-xxxx, ttl 3000
 r1 router widened recurse.test.ex to recurse.test.ex.test.ex
-recurse.test.ex.test.ex in "*"?
+recurse.test.ex.test.ex in dnssec_require_domains? no (option unset)
+recurse.test.ex.test.ex in dnssec_request_domains?
  list element: *
- recurse.test.ex.test.ex in "*"? yes (matched "*")
+ recurse.test.ex.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of recurse.test.ex.test.ex (MX) using fakens
 DNS lookup of recurse.test.ex.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
@@ -144,24 +146,24 @@ routing kilos@???
 --------> r1 router <--------
 local_part=kilos domain=recurse.test.ex.test.ex
 checking domains
-recurse.test.ex.test.ex in "!thishost.test.ex : !recurse.test.ex.test.ex"?
+recurse.test.ex.test.ex in domains?
  list element: !thishost.test.ex
  list element: !recurse.test.ex.test.ex
- recurse.test.ex.test.ex in "!thishost.test.ex : !recurse.test.ex.test.ex"? no (matched "!recurse.test.ex.test.ex")
+ recurse.test.ex.test.ex in domains? no (matched "!recurse.test.ex.test.ex")
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=kilos domain=recurse.test.ex.test.ex
 checking local_parts
-kilos in "miles"?
+kilos in local_parts?
  list element: miles
-kilos in "miles"? no (end of list)
+kilos in local_parts? no (end of list)
 r2 router skipped: local_parts mismatch
 --------> r3 router <--------
 local_part=kilos domain=recurse.test.ex.test.ex
 checking local_parts
-kilos in "kilos"?
+kilos in local_parts?
  list element: kilos
- kilos in "kilos"? yes (matched "kilos")
+ kilos in local_parts? yes (matched "kilos")
 calling r3 router
 rda_interpret (string): '$local_part@$domain'
 expanded: 'kilos@???' (tainted)
@@ -191,17 +193,17 @@ routing kilos@???
 --------> r1 router <--------
 local_part=kilos domain=recurse.test.ex.test.ex
 checking domains
-recurse.test.ex.test.ex in "!thishost.test.ex : !recurse.test.ex.test.ex"?
+recurse.test.ex.test.ex in domains?
  list element: !thishost.test.ex
  list element: !recurse.test.ex.test.ex
- recurse.test.ex.test.ex in "!thishost.test.ex : !recurse.test.ex.test.ex"? no (matched "!recurse.test.ex.test.ex")
+ recurse.test.ex.test.ex in domains? no (matched "!recurse.test.ex.test.ex")
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=kilos domain=recurse.test.ex.test.ex
 checking local_parts
-kilos in "miles"?
+kilos in local_parts?
  list element: miles
-kilos in "miles"? no (end of list)
+kilos in local_parts? no (end of list)
 r2 router skipped: local_parts mismatch
 --------> r3 router <--------
 r3 router skipped: previously routed kilos@???
diff --git a/test/stderr/0362 b/test/stderr/0362
index 35e64615b..0a5dca36c 100644
--- a/test/stderr/0362
+++ b/test/stderr/0362
@@ -80,19 +80,19 @@ routing x@???
 --------> r1 router <--------
 local_part=x domain=x.test.ex
 checking domains
-x.test.ex in "+relay_domains"?
+x.test.ex in domains?
  list element: +relay_domains
   start sublist relay_domains
    x.test.ex in "a.b.c"?
    ╎list element: a.b.c
    x.test.ex in "a.b.c"? no (end of list)
   end sublist relay_domains
-x.test.ex in "+relay_domains"? no (end of list)
+x.test.ex in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=x domain=x.test.ex
 checking domains
-x.test.ex in "+local_domains"?
+x.test.ex in domains?
  list element: +local_domains
   start sublist local_domains
    x.test.ex in "*.test.ex"?
@@ -100,7 +100,7 @@ x.test.ex in "+local_domains"?
    ╎x.test.ex in "*.test.ex"? yes (matched "*.test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'x.test.ex' value '*.test.ex'
- x.test.ex in "+local_domains"? yes (matched "+local_domains")
+ x.test.ex in domains? yes (matched "+local_domains")
 calling r2 router
 r2 router called for x@???
   domain = x.test.ex
diff --git a/test/stderr/0364 b/test/stderr/0364
index a09400659..bfac8acf2 100644
--- a/test/stderr/0364
+++ b/test/stderr/0364
@@ -70,6 +70,7 @@ routing solik@???
 --------> r2 router <--------
 local_part=solik domain=otherhost.test.ex
 checking domains
+otherhost.test.ex in domains? yes (end of list)
 calling r2 router
 r2 router called for solik@???
   domain = otherhost.test.ex
@@ -77,6 +78,7 @@ r2 router declined for solik@???
 --------> r3 router <--------
 local_part=solik domain=otherhost.test.ex
 checking domains
+otherhost.test.ex in domains? yes (end of list)
 checking "condition" "${if eq{$address_data}{}{no}{yes}}"...
 processing address_data
 calling r3 router
@@ -96,6 +98,7 @@ routing solik@???
 --------> r2 router <--------
 local_part=solik domain=otherhost.sub.test.ex
 checking domains
+otherhost.sub.test.ex in domains? yes (end of list)
 calling r2 router
 r2 router called for solik@???
   domain = otherhost.sub.test.ex
@@ -103,11 +106,13 @@ r2 router declined for solik@???
 --------> r3 router <--------
 local_part=solik domain=otherhost.sub.test.ex
 checking domains
+otherhost.sub.test.ex in domains? yes (end of list)
 checking "condition" "${if eq{$address_data}{}{no}{yes}}"...
 r3 router skipped: condition failure
 --------> r4 router <--------
 local_part=solik domain=otherhost.sub.test.ex
 checking domains
+otherhost.sub.test.ex in domains? yes (end of list)
 calling r4 router
 rda_interpret (string): ':fail:Can't route to $domain'
 expanded: ':fail:Can't route to otherhost.sub.test.ex' (tainted)
@@ -138,6 +143,7 @@ routing xxx@???
 --------> r2 router <--------
 local_part=xxx domain=ten-1.test.ex
 checking domains
+ten-1.test.ex in domains? yes (end of list)
 calling r2 router
 r2 router called for xxx@???
   domain = ten-1.test.ex
@@ -173,6 +179,7 @@ routing xxx@???
 --------> r2 router <--------
 local_part=xxx domain=testsub.test.ex
 checking domains
+testsub.test.ex in domains? yes (end of list)
 calling r2 router
 r2 router called for xxx@???
   domain = testsub.test.ex
@@ -180,6 +187,7 @@ r2 router declined for xxx@???
 --------> r3 router <--------
 local_part=xxx domain=testsub.test.ex
 checking domains
+testsub.test.ex in domains? yes (end of list)
 checking "condition" "${if eq{$address_data}{}{no}{yes}}"...
 processing address_data
 calling r3 router
@@ -199,6 +207,7 @@ routing xxx@???
 --------> r2 router <--------
 local_part=xxx domain=testsub.sub.test.ex
 checking domains
+testsub.sub.test.ex in domains? yes (end of list)
 calling r2 router
 r2 router called for xxx@???
   domain = testsub.sub.test.ex
diff --git a/test/stderr/0368 b/test/stderr/0368
index 0d3ccb719..4f8702dff 100644
--- a/test/stderr/0368
+++ b/test/stderr/0368
@@ -2,12 +2,14 @@ Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
+mxt9.test.ex in domains? no (end of list)
 discarded duplicate host ten-1.test.ex (MX=8)
 fully qualified name = mxt9.test.ex
 host_find_bydns yield = HOST_FOUND (3); returned hosts:
   ten-1.test.ex V4NET.0.0.1 MX=5 
   ten-2.test.ex V4NET.0.0.2 MX=6 
   ten-3.test.ex V4NET.0.0.3 MX=7 
+mxt14.test.ex in domains? no (end of list)
 duplicate IP address V4NET.0.0.5 (MX=5) removed
 duplicate IP address V4NET.0.0.6 (MX=6) removed
 fully qualified name = mxt14.test.ex
diff --git a/test/stderr/0374 b/test/stderr/0374
index dc55b780a..80275c53f 100644
--- a/test/stderr/0374
+++ b/test/stderr/0374
@@ -40,14 +40,17 @@ routing d3@???
 --------> u1 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=d3 domain=myhost.test.ex
@@ -69,14 +72,17 @@ routing d2@???
 --------> u1 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=d2 domain=myhost.test.ex
@@ -97,14 +103,17 @@ routing d1@???
 --------> u1 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=d1 domain=myhost.test.ex
@@ -125,10 +134,12 @@ routing c1@???
 --------> u1 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=c1 domain=myhost.test.ex
@@ -150,6 +161,7 @@ routing b1@???
 --------> u1 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=b1 domain=myhost.test.ex
@@ -257,6 +269,7 @@ routing c1@???
 --------> ut4 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=c1 domain=myhost.test.ex
@@ -275,10 +288,12 @@ routing b1@???
 --------> ut3 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=b1 domain=myhost.test.ex
@@ -297,14 +312,17 @@ routing a1@???
 --------> ut2 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=a1 domain=myhost.test.ex
@@ -366,16 +384,16 @@ transport error EPIPE ignored
 LOG: MAIN
   == c1@??? R=ut3 T=ut3 defer (0): Child process of ut3 transport returned 127 (could mean unable to exec or command does not exist) from command: /non/existent/file
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-ut4.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-ut4.lockfile
 cmdlog: '220'
 LOG: MAIN
   => d1@??? R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1] C="250 OK"
 locking TESTSUITE/spool/db/retry.lockfile
-cmdlog: '220'
+ cmdlog: '220'
 LOG: MAIN
   == d2@??? R=ut4 T=ut4 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d2@???>: 450 soft error
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-ut4.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-ut4.lockfile
 cmdlog: '220'
 LOG: MAIN
   ** d3@??? R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d3@???>: 550 hard error
@@ -401,18 +419,22 @@ routing CALLER@???
 --------> u1 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=CALLER domain=myhost.test.ex
diff --git a/test/stderr/0375 b/test/stderr/0375
index 138e9ecc9..ca090a914 100644
--- a/test/stderr/0375
+++ b/test/stderr/0375
@@ -60,26 +60,32 @@ routing g1@???
 --------> u1 router <--------
 local_part=g1 domain=myhost.test.ex
 checking local_parts
+g1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=g1 domain=myhost.test.ex
 checking local_parts
+g1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=g1 domain=myhost.test.ex
 checking local_parts
+g1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=g1 domain=myhost.test.ex
 checking local_parts
+g1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=g1 domain=myhost.test.ex
 checking local_parts
+g1 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=g1 domain=myhost.test.ex
 checking local_parts
+g1 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=g1 domain=myhost.test.ex
@@ -93,22 +99,27 @@ routing f3@???
 --------> u1 router <--------
 local_part=f3 domain=myhost.test.ex
 checking local_parts
+f3 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=f3 domain=myhost.test.ex
 checking local_parts
+f3 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=f3 domain=myhost.test.ex
 checking local_parts
+f3 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=f3 domain=myhost.test.ex
 checking local_parts
+f3 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=f3 domain=myhost.test.ex
 checking local_parts
+f3 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=f3 domain=myhost.test.ex
@@ -132,22 +143,27 @@ routing f2@???
 --------> u1 router <--------
 local_part=f2 domain=myhost.test.ex
 checking local_parts
+f2 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=f2 domain=myhost.test.ex
 checking local_parts
+f2 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=f2 domain=myhost.test.ex
 checking local_parts
+f2 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=f2 domain=myhost.test.ex
 checking local_parts
+f2 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=f2 domain=myhost.test.ex
 checking local_parts
+f2 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=f2 domain=myhost.test.ex
@@ -170,22 +186,27 @@ routing f1@???
 --------> u1 router <--------
 local_part=f1 domain=myhost.test.ex
 checking local_parts
+f1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=f1 domain=myhost.test.ex
 checking local_parts
+f1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=f1 domain=myhost.test.ex
 checking local_parts
+f1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=f1 domain=myhost.test.ex
 checking local_parts
+f1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=f1 domain=myhost.test.ex
 checking local_parts
+f1 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=f1 domain=myhost.test.ex
@@ -208,18 +229,22 @@ routing e1@???
 --------> u1 router <--------
 local_part=e1 domain=myhost.test.ex
 checking local_parts
+e1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=e1 domain=myhost.test.ex
 checking local_parts
+e1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=e1 domain=myhost.test.ex
 checking local_parts
+e1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=e1 domain=myhost.test.ex
 checking local_parts
+e1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=e1 domain=myhost.test.ex
@@ -241,14 +266,17 @@ routing d3@???
 --------> u1 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=d3 domain=myhost.test.ex
@@ -271,14 +299,17 @@ routing d2@???
 --------> u1 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=d2 domain=myhost.test.ex
@@ -300,14 +331,17 @@ routing d1@???
 --------> u1 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=d1 domain=myhost.test.ex
@@ -329,10 +363,12 @@ routing c1@???
 --------> u1 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=c1 domain=myhost.test.ex
@@ -355,6 +391,7 @@ routing b1@???
 --------> u1 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=b1 domain=myhost.test.ex
@@ -437,10 +474,12 @@ routing f3@???
 --------> ut7 router <--------
 local_part=f3 domain=myhost.test.ex
 checking local_parts
+f3 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=f3 domain=myhost.test.ex
 checking local_parts
+f3 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=f3 domain=myhost.test.ex
@@ -460,10 +499,12 @@ routing f2@???
 --------> ut7 router <--------
 local_part=f2 domain=myhost.test.ex
 checking local_parts
+f2 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=f2 domain=myhost.test.ex
 checking local_parts
+f2 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=f2 domain=myhost.test.ex
@@ -482,10 +523,12 @@ routing f1@???
 --------> ut7 router <--------
 local_part=f1 domain=myhost.test.ex
 checking local_parts
+f1 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=f1 domain=myhost.test.ex
 checking local_parts
+f1 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=f1 domain=myhost.test.ex
@@ -504,14 +547,17 @@ routing e1@???
 --------> ut6 router <--------
 local_part=e1 domain=myhost.test.ex
 checking local_parts
+e1 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=e1 domain=myhost.test.ex
 checking local_parts
+e1 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=e1 domain=myhost.test.ex
 checking local_parts
+e1 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=e1 domain=myhost.test.ex
@@ -530,18 +576,22 @@ routing d3@???
 --------> ut5 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=d3 domain=myhost.test.ex
 checking local_parts
+d3 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=d3 domain=myhost.test.ex
@@ -560,18 +610,22 @@ routing d2@???
 --------> ut5 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=d2 domain=myhost.test.ex
 checking local_parts
+d2 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=d2 domain=myhost.test.ex
@@ -590,18 +644,22 @@ routing d1@???
 --------> ut5 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=d1 domain=myhost.test.ex
 checking local_parts
+d1 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=d1 domain=myhost.test.ex
@@ -620,22 +678,27 @@ routing c1@???
 --------> ut4 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=c1 domain=myhost.test.ex
 checking local_parts
+c1 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=c1 domain=myhost.test.ex
@@ -654,26 +717,32 @@ routing b1@???
 --------> ut3 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=b1 domain=myhost.test.ex
 checking local_parts
+b1 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=b1 domain=myhost.test.ex
@@ -692,30 +761,37 @@ routing a1@???
 --------> ut2 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=a1 domain=myhost.test.ex
 checking local_parts
+a1 in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=a1 domain=myhost.test.ex
@@ -801,41 +877,41 @@ LOG: MAIN
   == c1@??? R=ut3 T=ut3 defer (0): Child process of ut3 transport returned 127 (could mean unable to exec or command does not exist) from command: /non/existent/file
 log writing disabled
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-ut4.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-ut4.lockfile
 cmdlog: '220'
 LOG: MAIN
   => d1@??? P=<> R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1] C="250 OK"
 log writing disabled
 locking TESTSUITE/spool/db/retry.lockfile
-cmdlog: '220'
+ cmdlog: '220'
 LOG: MAIN
   == d2@??? R=ut4 T=ut4 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d2@???>: 450 soft error
 log writing disabled
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-ut4.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-ut4.lockfile
 cmdlog: '220'
 LOG: MAIN
   ** d3@??? P=<> R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<d3@???>: 550 hard error
 log writing disabled
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-ut5.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-ut5.lockfile
 cmdlog: '220'
 LOG: MAIN
   ** e1@??? P=<> R=ut5 T=ut5 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<e1@???>: 550 hard error
 log writing disabled
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-ut6.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-ut6.lockfile
 cmdlog: '220'
 LOG: MAIN
   => f1@??? P=<CALLER@???> R=ut6 T=ut6 H=127.0.0.1 [127.0.0.1] C="250 OK"
 log writing disabled
 locking TESTSUITE/spool/db/retry.lockfile
-cmdlog: '220'
+ cmdlog: '220'
 LOG: MAIN
   == f2@??? R=ut6 T=ut6 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<f2@???>: 450 soft error
 log writing disabled
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-ut6.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-ut6.lockfile
 cmdlog: '220'
 LOG: MAIN
   ** f3@??? P=<CALLER@???> R=ut6 T=ut6 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<f3@???>: 550 hard error
@@ -865,34 +941,42 @@ routing CALLER@???
 --------> u1 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
+CALLER in local_parts? no (end of list)
 ut8 router skipped: local_parts mismatch
 --------> real router <--------
 local_part=CALLER domain=myhost.test.ex
@@ -949,30 +1033,37 @@ routing h1@???
 --------> u1 router <--------
 local_part=h1 domain=myhost.test.ex
 checking local_parts
+h1 in local_parts? no (end of list)
 u1 router skipped: local_parts mismatch
 --------> ut2 router <--------
 local_part=h1 domain=myhost.test.ex
 checking local_parts
+h1 in local_parts? no (end of list)
 ut2 router skipped: local_parts mismatch
 --------> ut3 router <--------
 local_part=h1 domain=myhost.test.ex
 checking local_parts
+h1 in local_parts? no (end of list)
 ut3 router skipped: local_parts mismatch
 --------> ut4 router <--------
 local_part=h1 domain=myhost.test.ex
 checking local_parts
+h1 in local_parts? no (end of list)
 ut4 router skipped: local_parts mismatch
 --------> ut5 router <--------
 local_part=h1 domain=myhost.test.ex
 checking local_parts
+h1 in local_parts? no (end of list)
 ut5 router skipped: local_parts mismatch
 --------> ut6 router <--------
 local_part=h1 domain=myhost.test.ex
 checking local_parts
+h1 in local_parts? no (end of list)
 ut6 router skipped: local_parts mismatch
 --------> ut7 router <--------
 local_part=h1 domain=myhost.test.ex
 checking local_parts
+h1 in local_parts? no (end of list)
 ut7 router skipped: local_parts mismatch
 --------> ut8 router <--------
 local_part=h1 domain=myhost.test.ex
diff --git a/test/stderr/0376 b/test/stderr/0376
index c8cd1b9da..9d44a1377 100644
--- a/test/stderr/0376
+++ b/test/stderr/0376
@@ -4,6 +4,7 @@ trusted user
 admin user
 LOG: smtp_connection MAIN
   SMTP connection from root
+test in helo_lookup_domains? no (end of list)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -12,7 +13,8 @@ Attempting full verification using callout
callout cache: no domain record found for localhost
callout cache: no address record found for ok@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -27,6 +29,14 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for localhost:
result=1 postmaster=0 random=0
wrote positive callout cache address record for ok@localhost
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -36,6 +46,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -44,6 +55,14 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: found address record for ok@localhost
callout cache: address record is positive
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -53,6 +72,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -61,7 +81,8 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: address record expired for ok@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : Connection refused
created log directory TESTSUITE/spool/log
@@ -76,6 +97,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying bad@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -84,7 +106,8 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: no address record found for bad@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -112,6 +135,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying bad@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -133,6 +157,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -141,7 +166,8 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: address record expired for ok@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -166,6 +192,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -186,6 +213,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -194,7 +223,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost
callout cache: no address record found for ok@otherhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -229,6 +259,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -249,6 +281,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -257,7 +291,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost2
callout cache: no address record found for ok@otherhost2
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -279,6 +314,13 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost2:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost2
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1243 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -288,6 +330,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -297,6 +341,13 @@ callout cache: found domain record for otherhost2
callout cache: domain accepts RCPT TO:<postmaster@domain>
callout cache: found address record for ok@otherhost2
callout cache: address record is positive
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1244 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -306,6 +357,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost3
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -314,7 +368,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost3
callout cache: no address record found for ok@otherhost3
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -328,8 +383,14 @@ Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost3:
result=1 postmaster=0 random=1
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1245 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -339,6 +400,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying otherok@otherhost3
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -346,8 +410,14 @@ Considering otherok@otherhost3
Attempting full verification using callout
callout cache: found domain record for otherhost3
callout cache: domain accepts random addresses
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1246 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -357,6 +427,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost4
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -365,7 +439,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost4
callout cache: no address record found for ok@otherhost4
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -379,8 +454,13 @@ Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost4:
result=1 postmaster=0 random=1
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1247 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -390,6 +470,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost4
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -397,8 +481,13 @@ Considering ok@otherhost4
Attempting full verification using callout
callout cache: found domain record for otherhost4
callout cache: domain accepts random addresses
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1248 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -408,6 +497,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost41
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -416,7 +509,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost41
callout cache: no address record found for ok@otherhost41
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -444,6 +538,11 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:RSET:250:MAIL
wrote callout cache domain record for otherhost41:
result=1 postmaster=1 random=2
wrote positive callout cache address record for ok@otherhost41
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1249 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -453,6 +552,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost41
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -463,6 +566,11 @@ callout cache: domain rejects random addresses
callout cache: domain accepts RCPT TO:<postmaster@domain>
callout cache: found address record for ok@otherhost41
callout cache: address record is positive
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1250 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -472,6 +580,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost21
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -480,7 +590,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost21
callout cache: no address record found for ok@otherhost21
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -502,6 +613,13 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost21
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1251 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -511,6 +629,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok2@otherhost21
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -520,7 +640,8 @@ callout cache: found domain record for otherhost21
callout cache: domain accepts RCPT TO:<postmaster@domain>
callout cache: no address record found for ok2@otherhost21
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -535,6 +656,13 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok2@otherhost21
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1252 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -544,6 +672,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost31
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -552,7 +683,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost31
callout cache: no address record found for ok@otherhost31
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -573,6 +705,12 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for ok@otherhost31
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1253 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -582,6 +720,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okok@otherhost31
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -591,7 +732,8 @@ callout cache: found domain record for otherhost31
callout cache: domain rejects random addresses
callout cache: no address record found for okok@otherhost31
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -606,6 +748,12 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okok@otherhost31
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1254 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -615,6 +763,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okokok@otherhost31
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -623,7 +774,8 @@ Attempting full verification using callout
callout cache: domain record expired for otherhost31
callout cache: no address record found for okokok@otherhost31
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -644,6 +796,12 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okokok@otherhost31
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1255 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -653,6 +811,11 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okok@otherhost51
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -661,7 +824,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost51
callout cache: no address record found for okok@otherhost51
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -687,6 +851,12 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okokok@otherhost52
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -695,7 +865,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost52
callout cache: no address record found for okokok@otherhost52
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -717,6 +888,9 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for otherhost52:
result=1 postmaster=1 random=0
wrote positive callout cache address record for okokok@otherhost52
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1257 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -726,6 +900,16 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
verifying Reply-To: header address abcd@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying abcd@???
@@ -735,7 +919,8 @@ Attempting full verification using callout
callout cache: no domain record found for x.y.z
callout cache: no address record found for abcd@???/<somesender@???>
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -750,6 +935,7 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:250'
wrote callout cache domain record for x.y.z:
result=1 postmaster=0 random=0
wrote positive callout cache address record for abcd@???/<somesender@???>
+host in "V4NET.0.0.8"? no (end of list)
LOG: MAIN
<= ok7@otherhost53 H=(test) [V4NET.0.0.7] U=root P=smtp S=sss
LOG: smtp_connection MAIN
@@ -761,6 +947,17 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.7"? no (end of list)
verifying Reply-To: header address abcd@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying abcd@???
@@ -770,7 +967,8 @@ Attempting full verification using callout
callout cache: found domain record for x.y.z
callout cache: no address record found for abcd@???
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -794,6 +992,13 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost9
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -802,7 +1007,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost9
callout cache: no address record found for ok@otherhost9
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -826,6 +1032,8 @@ cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:RSET:250:MAIL:250:RCPT:550:RCPT:250:QUIT
wrote callout cache domain record for otherhost9:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost9
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1260 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -835,6 +1043,14 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying z@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -843,7 +1059,8 @@ Attempting full verification using callout
 callout cache: no domain record found for test.ex
 callout cache: no address record found for z@???/<postmaster@???>
 interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
   SMTP<< 250 OK
diff --git a/test/stderr/0377 b/test/stderr/0377
index 192d87f43..6f85db524 100644
--- a/test/stderr/0377
+++ b/test/stderr/0377
@@ -28,22 +28,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 local_part=cccc domain=myhost.test.ex
@@ -74,14 +79,17 @@ routing bbbb@???
 --------> defer router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=bbbb domain=myhost.test.ex
@@ -108,6 +116,7 @@ routing aaaa@???
 --------> defer router <--------
 local_part=aaaa domain=myhost.test.ex
 checking local_parts
+aaaa in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=aaaa domain=myhost.test.ex
@@ -172,22 +181,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 local_part=cccc domain=myhost.test.ex
@@ -230,14 +244,17 @@ routing bbbb@???
 --------> defer router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 bbbb router skipped: previously routed bbbb@???
@@ -334,22 +351,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 local_part=cccc domain=myhost.test.ex
@@ -372,14 +394,17 @@ routing bbbb@???
 --------> defer router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=bbbb domain=myhost.test.ex
@@ -405,6 +430,7 @@ routing aaaa@???
 --------> defer router <--------
 local_part=aaaa domain=myhost.test.ex
 checking local_parts
+aaaa in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=aaaa domain=myhost.test.ex
@@ -435,22 +461,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 cccc_2nd_time router skipped: previously routed cccc@???
@@ -502,22 +533,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 cccc_2nd_time router skipped: previously routed cccc@???
@@ -579,22 +615,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 local_part=cccc domain=myhost.test.ex
@@ -617,14 +658,17 @@ routing bbbb@???
 --------> defer router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=bbbb domain=myhost.test.ex
@@ -650,6 +694,7 @@ routing aaaa@???
 --------> defer router <--------
 local_part=aaaa domain=myhost.test.ex
 checking local_parts
+aaaa in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=aaaa domain=myhost.test.ex
@@ -680,22 +725,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 cccc_2nd_time router skipped: previously routed cccc@???
@@ -747,22 +797,27 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> unseen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 unseen_aaaa router skipped: local_parts mismatch
 --------> seen_aaaa router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 seen_aaaa router skipped: local_parts mismatch
 --------> bbbb router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb router skipped: local_parts mismatch
 --------> bbbb_0 router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 bbbb_0 router skipped: local_parts mismatch
 --------> cccc_2nd_time router <--------
 cccc_2nd_time router skipped: previously routed cccc@???
diff --git a/test/stderr/0378 b/test/stderr/0378
index 845da3cb2..3ee15ba8f 100644
--- a/test/stderr/0378
+++ b/test/stderr/0378
@@ -20,10 +20,13 @@ routing aaaa@???
 --------> bounce router <--------
 local_part=aaaa domain=myhost.test.ex
 checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
 bounce router skipped: senders mismatch
 --------> defer router <--------
 local_part=aaaa domain=myhost.test.ex
 checking local_parts
+aaaa in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> aaaa_2nd_time router <--------
 local_part=aaaa domain=myhost.test.ex
@@ -90,6 +93,8 @@ routing defer_aaaa@???
 --------> bounce router <--------
 local_part=defer_aaaa domain=myhost.test.ex
 checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
 bounce router skipped: senders mismatch
 --------> defer router <--------
 local_part=defer_aaaa domain=myhost.test.ex
@@ -183,10 +188,13 @@ routing aaaa@???
 --------> bounce router <--------
 local_part=aaaa domain=myhost.test.ex
 checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
 bounce router skipped: senders mismatch
 --------> defer router <--------
 local_part=aaaa domain=myhost.test.ex
 checking local_parts
+aaaa in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> aaaa_2nd_time router <--------
 local_part=aaaa domain=myhost.test.ex
@@ -214,10 +222,13 @@ routing aaaa@???
 --------> bounce router <--------
 local_part=aaaa domain=myhost.test.ex
 checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
 bounce router skipped: senders mismatch
 --------> defer router <--------
 local_part=aaaa domain=myhost.test.ex
 checking local_parts
+aaaa in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> aaaa_2nd_time router <--------
 aaaa_2nd_time router skipped: previously routed aaaa@???
@@ -280,6 +291,8 @@ routing defer_aaaa@???
 --------> bounce router <--------
 local_part=defer_aaaa domain=myhost.test.ex
 checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
 bounce router skipped: senders mismatch
 --------> defer router <--------
 local_part=defer_aaaa domain=myhost.test.ex
diff --git a/test/stderr/0379 b/test/stderr/0379
index f37cea959..0cd2aa433 100644
--- a/test/stderr/0379
+++ b/test/stderr/0379
@@ -24,6 +24,7 @@ routing aaaa@???
 --------> defer router <--------
 local_part=aaaa domain=myhost.test.ex
 checking local_parts
+aaaa in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> aaaa_redirect router <--------
 local_part=aaaa domain=myhost.test.ex
@@ -74,10 +75,12 @@ routing cccc@???
 --------> defer router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> aaaa_redirect router <--------
 local_part=cccc domain=myhost.test.ex
 checking local_parts
+cccc in local_parts? no (end of list)
 aaaa_redirect router skipped: local_parts mismatch
 --------> bc router <--------
 local_part=cccc domain=myhost.test.ex
@@ -98,10 +101,12 @@ routing bbbb@???
 --------> defer router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 defer router skipped: local_parts mismatch
 --------> aaaa_redirect router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 aaaa_redirect router skipped: local_parts mismatch
 --------> bc router <--------
 local_part=bbbb domain=myhost.test.ex
diff --git a/test/stderr/0380 b/test/stderr/0380
index 835ef21ad..93397d546 100644
--- a/test/stderr/0380
+++ b/test/stderr/0380
@@ -28,6 +28,7 @@ forced failure in expansion of "${if eq {a}{b}{x}fail}" (address_data): decline
 --------> r1 router <--------
 local_part=bbbb domain=myhost.test.ex
 checking local_parts
+bbbb in local_parts? no (end of list)
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=bbbb domain=myhost.test.ex
diff --git a/test/stderr/0381 b/test/stderr/0381
index 550e2dab9..c0a66731c 100644
--- a/test/stderr/0381
+++ b/test/stderr/0381
@@ -52,12 +52,16 @@ DNS lookup of 97.99.99.V4NET.in-addr.arpa (PTR) using fakens
 DNS lookup of 97.99.99.V4NET.in-addr.arpa (PTR) succeeded
 IP address lookup yielded "x.gov.uk.test.ex"
   alias "x.co.uk.test.ex"
+ x.gov.uk.test.ex not in empty list (option unset? cannot trace name)
+ x.gov.uk.test.ex not in empty list (option unset? cannot trace name)
 DNS lookup of x.gov.uk.test.ex (A) using fakens
 DNS lookup of x.gov.uk.test.ex (A) succeeded
 x.gov.uk.test.ex V4NET.99.99.97 mx=-1 sort=xx 
 checking addresses for x.gov.uk.test.ex
 Forward DNS security status: unverified
   V4NET.99.99.97 OK
+ x.co.uk.test.ex not in empty list (option unset? cannot trace name)
+ x.co.uk.test.ex not in empty list (option unset? cannot trace name)
 DNS lookup of x.co.uk.test.ex (A) using fakens
 DNS lookup of x.co.uk.test.ex (A) succeeded
 x.co.uk.test.ex V4NET.99.99.97 mx=-1 sort=xx 
diff --git a/test/stderr/0382 b/test/stderr/0382
index 6ab4d7465..eb418cfea 100644
--- a/test/stderr/0382
+++ b/test/stderr/0382
@@ -13,6 +13,8 @@ running system filter
  Filtering did not set up a significant delivery.
  Normal delivery will occur.
 system filter returned 1
+test.ex in ""? no (end of list)
+CALLER@??? in senders? yes (end of list)
 LOG: MAIN
   ** userx@??? R=r1: forced fail
 Exim version x.yz ....
diff --git a/test/stderr/0388 b/test/stderr/0388
index 92b85e558..c62492e6a 100644
--- a/test/stderr/0388
+++ b/test/stderr/0388
@@ -23,9 +23,9 @@ routing x@y
 --------> r0 router <--------
 local_part=x domain=y
 checking local_parts
-x in "CALLER"?
+x in local_parts?
  list element: CALLER
-x in "CALLER"? no (end of list)
+x in local_parts? no (end of list)
 r0 router skipped: local_parts mismatch
 --------> r1 router <--------
 local_part=x domain=y
@@ -85,8 +85,9 @@ checking retry status of 127.0.0.1
 no retry data available
 127.0.0.1 in serialize_hosts? no (option unset)
 set_process_info: pppp delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1]:PORT_S (x@y)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... 127.0.0.1 in hosts_try_fastopen?
- list element: 
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ 127.0.0.1 in hosts_try_fastopen?
+  list element: 
  connected
   SMTP<< 220 Server ready
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
@@ -127,8 +128,9 @@ checking retry status of V4NET.0.0.0
 no retry data available
 V4NET.0.0.0 in serialize_hosts? no (option unset)
 set_process_info: pppp delivering 10HmaX-000000005vi-0000 to V4NET.0.0.0 [V4NET.0.0.0]:PORT_S (x@y)
-Connecting to V4NET.0.0.0 [V4NET.0.0.0]:PORT_S ... V4NET.0.0.0 in hosts_try_fastopen?
- failed: Network Error
+Connecting to V4NET.0.0.0 [V4NET.0.0.0]:PORT_S ...
+ V4NET.0.0.0 in hosts_try_fastopen?
+  failed: Network Error
 LOG: MAIN
   H=V4NET.0.0.0 [V4NET.0.0.0] Network Error
 set_process_info: pppp delivering 10HmaX-000000005vi-0000: just tried V4NET.0.0.0 [V4NET.0.0.0]:PORT_S for x@y: result DEFER
@@ -281,14 +283,14 @@ routing CALLER@???
 --------> r0 router <--------
 local_part=CALLER domain=myhost.test.ex
 checking local_parts
-CALLER in "CALLER"?
+CALLER in local_parts?
  list element: CALLER
- CALLER in "CALLER"? yes (matched "CALLER")
+ CALLER in local_parts? yes (matched "CALLER")
 checking senders
- in ":"?
+ in senders?
  list element: 
  address match test: subject= pattern=
-  in ":"? yes (matched "")
+  in senders? yes (matched "")
 calling r0 router
 rda_interpret (string): ':blackhole:'
 expanded: ':blackhole:'
diff --git a/test/stderr/0398 b/test/stderr/0398
index 604e791b6..f2ae6fef9 100644
--- a/test/stderr/0398
+++ b/test/stderr/0398
@@ -42,16 +42,16 @@ routing qq@remote
 --------> r1 router <--------
 local_part=qq domain=remote
 checking domains
-remote in "local"?
+remote in domains?
  list element: local
-remote in "local"? no (end of list)
+remote in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=qq domain=remote
 checking domains
-remote in "remote"?
+remote in domains?
  list element: remote
- remote in "remote"? yes (matched "remote")
+ remote in domains? yes (matched "remote")
 calling r2 router
 r2 router called for qq@remote
   domain = remote
@@ -101,16 +101,16 @@ routing qq@remote
 --------> r1 router <--------
 local_part=qq domain=remote
 checking domains
-remote in "local"?
+remote in domains?
  list element: local
-remote in "local"? no (end of list)
+remote in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=qq domain=remote
 checking domains
-remote in "remote"?
+remote in domains?
  list element: remote
- remote in "remote"? yes (matched "remote")
+ remote in domains? yes (matched "remote")
 calling r2 router
 r2 router called for qq@remote
   domain = remote
@@ -150,8 +150,9 @@ Attempting full verification using callout
  EXIM_DBCLOSE(0xAAAAAAAA)
  closed hints database and lockfile
 interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... 127.0.0.1 in hosts_try_fastopen?
- list element: 
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ 127.0.0.1 in hosts_try_fastopen?
+  list element: 
  connected
   SMTP<< 220 Server ready
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
@@ -235,16 +236,16 @@ routing qq@remote
 --------> r1 router <--------
 local_part=qq domain=remote
 checking domains
-remote in "local"?
+remote in domains?
  list element: local
-remote in "local"? no (end of list)
+remote in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=qq domain=remote
 checking domains
-remote in "remote"?
+remote in domains?
  list element: remote
- remote in "remote"? yes (matched "remote")
+ remote in domains? yes (matched "remote")
 calling r2 router
 r2 router called for qq@remote
   domain = remote
diff --git a/test/stderr/0402 b/test/stderr/0402
index c3aa0acef..cec473fb0 100644
--- a/test/stderr/0402
+++ b/test/stderr/0402
@@ -486,39 +486,39 @@ routing rd+usery@???
 --------> r1 router <--------
 local_part=rd+usery domain=test.ex
 checking local_parts
-rd+usery in "CALLER"?
+rd+usery in local_parts?
  list element: CALLER
-rd+usery in "CALLER"? no (end of list)
+rd+usery in local_parts? no (end of list)
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=rd+usery domain=test.ex
 checking local_parts
-rd+usery in "usery"?
+rd+usery in local_parts?
  list element: usery
-rd+usery in "usery"? no (end of list)
+rd+usery in local_parts? no (end of list)
 r2 router skipped: local_parts mismatch
 --------> r3 router <--------
 local_part=rd+usery domain=test.ex
 checking local_parts
-rd+usery in "userz"?
+rd+usery in local_parts?
  list element: userz
-rd+usery in "userz"? no (end of list)
+rd+usery in local_parts? no (end of list)
 r3 router skipped: local_parts mismatch
 --------> r4 router <--------
 local_part=rd+usery domain=test.ex
 stripped prefix rd+
 checking local_parts
-usery in "CALLER"?
+usery in local_parts?
  list element: CALLER
-usery in "CALLER"? no (end of list)
+usery in local_parts? no (end of list)
 r4 router skipped: local_parts mismatch
 --------> r5 router <--------
 local_part=rd+usery domain=test.ex
 stripped prefix rd+
 checking local_parts
-usery in "usery"?
+usery in local_parts?
  list element: usery
- usery in "usery"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
 try option router_home_directory
  ╭considering: /non-exist/$domain
  ├───────text: /non-exist/
@@ -553,31 +553,31 @@ routing rd+CALLER@???
 --------> r1 router <--------
 local_part=rd+CALLER domain=test.ex
 checking local_parts
-rd+CALLER in "CALLER"?
+rd+CALLER in local_parts?
  list element: CALLER
-rd+CALLER in "CALLER"? no (end of list)
+rd+CALLER in local_parts? no (end of list)
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=rd+CALLER domain=test.ex
 checking local_parts
-rd+CALLER in "usery"?
+rd+CALLER in local_parts?
  list element: usery
-rd+CALLER in "usery"? no (end of list)
+rd+CALLER in local_parts? no (end of list)
 r2 router skipped: local_parts mismatch
 --------> r3 router <--------
 local_part=rd+CALLER domain=test.ex
 checking local_parts
-rd+CALLER in "userz"?
+rd+CALLER in local_parts?
  list element: userz
-rd+CALLER in "userz"? no (end of list)
+rd+CALLER in local_parts? no (end of list)
 r3 router skipped: local_parts mismatch
 --------> r4 router <--------
 local_part=rd+CALLER domain=test.ex
 stripped prefix rd+
 checking local_parts
-CALLER in "CALLER"?
+CALLER in local_parts?
  list element: CALLER
- CALLER in "CALLER"? yes (matched "CALLER")
+ CALLER in local_parts? yes (matched "CALLER")
 try option router_home_directory
  ╭considering: /non-exist/$local_part
  ├───────text: /non-exist/
@@ -612,23 +612,23 @@ routing userz@???
 --------> r1 router <--------
 local_part=userz domain=test.ex
 checking local_parts
-userz in "CALLER"?
+userz in local_parts?
  list element: CALLER
-userz in "CALLER"? no (end of list)
+userz in local_parts? no (end of list)
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=userz domain=test.ex
 checking local_parts
-userz in "usery"?
+userz in local_parts?
  list element: usery
-userz in "usery"? no (end of list)
+userz in local_parts? no (end of list)
 r2 router skipped: local_parts mismatch
 --------> r3 router <--------
 local_part=userz domain=test.ex
 checking local_parts
-userz in "userz"?
+userz in local_parts?
  list element: userz
- userz in "userz"? yes (matched "userz")
+ userz in local_parts? yes (matched "userz")
 try option router_home_directory
  ╭considering: /non-exist/$domain
  ├───────text: /non-exist/
@@ -658,16 +658,16 @@ routing usery@???
 --------> r1 router <--------
 local_part=usery domain=test.ex
 checking local_parts
-usery in "CALLER"?
+usery in local_parts?
  list element: CALLER
-usery in "CALLER"? no (end of list)
+usery in local_parts? no (end of list)
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=usery domain=test.ex
 checking local_parts
-usery in "usery"?
+usery in local_parts?
  list element: usery
- usery in "usery"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
 try option router_home_directory
  ╭considering: /non-exist/$domain
  ├───────text: /non-exist/
@@ -697,9 +697,9 @@ routing CALLER@???
 --------> r1 router <--------
 local_part=CALLER domain=test.ex
 checking local_parts
-CALLER in "CALLER"?
+CALLER in local_parts?
  list element: CALLER
- CALLER in "CALLER"? yes (matched "CALLER")
+ CALLER in local_parts? yes (matched "CALLER")
 try option router_home_directory
  ╭considering: /non-exist/$local_part
  ├───────text: /non-exist/
diff --git a/test/stderr/0403 b/test/stderr/0403
index c44e370e1..de5ffabc7 100644
--- a/test/stderr/0403
+++ b/test/stderr/0403
@@ -99,13 +99,13 @@ checking domains
     in TESTSUITE/aux-fixed/0403.accountfile
   creating new cache entry
   lookup failed
-test.ex in ""?
-test.ex in ""? no (end of list)
+test.ex in domains?
+test.ex in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "lsearch;TESTSUITE/aux-fixed/0403.data"?
+test.ex in domains?
  list element: lsearch;TESTSUITE/aux-fixed/0403.data
  search_open: lsearch "TESTSUITE/aux-fixed/0403.data"
  search_find: file="TESTSUITE/aux-fixed/0403.data"
@@ -120,9 +120,9 @@ test.ex in "lsearch;TESTSUITE/aux-fixed/0403.data"?
    in TESTSUITE/aux-fixed/0403.data
  creating new cache entry
  lookup yielded: [DOMAINDATA_test.ex]
- test.ex in "lsearch;TESTSUITE/aux-fixed/0403.data"? yes (matched "lsearch;TESTSUITE/aux-fixed/0403.data")
+ test.ex in domains? yes (matched "lsearch;TESTSUITE/aux-fixed/0403.data")
 checking local_parts
-userx in "lsearch;TESTSUITE/aux-fixed/0403.data"?
+userx in local_parts?
  list element: lsearch;TESTSUITE/aux-fixed/0403.data
  search_open: lsearch "TESTSUITE/aux-fixed/0403.data"
    cached open
@@ -138,7 +138,7 @@ userx in "lsearch;TESTSUITE/aux-fixed/0403.data"?
    in TESTSUITE/aux-fixed/0403.data
  creating new cache entry
  lookup yielded: [LOCALPARTDATA_userx]
- userx in "lsearch;TESTSUITE/aux-fixed/0403.data"? yes (matched "lsearch;TESTSUITE/aux-fixed/0403.data")
+ userx in local_parts? yes (matched "lsearch;TESTSUITE/aux-fixed/0403.data")
 +++ROUTER:
 +++domain_data=[DOMAINDATA_test.ex]
 +++local_part_data=[LOCALPARTDATA_userx]
@@ -341,9 +341,9 @@ checking domains
   creating new cache entry
   lookup yielded: 
   lookup yield replace by key: charlie@???
-dom1.ain in "dom1.ain"?
+dom1.ain in domains?
  list element: dom1.ain
- dom1.ain in "dom1.ain"? yes (matched "dom1.ain")
+ dom1.ain in domains? yes (matched "dom1.ain")
 checking local_parts
   search_open: lsearch "TESTSUITE/aux-fixed/0403.accountfile"
     cached open
@@ -358,9 +358,9 @@ checking local_parts
     in TESTSUITE/aux-fixed/0403.accountfile
   lookup yielded: 
   lookup yield replace by key: charlie@???
-charlie in "charlie"?
+charlie in local_parts?
  list element: charlie
- charlie in "charlie"? yes (matched "charlie")
+ charlie in local_parts? yes (matched "charlie")
 +++ROUTER:
 +++domain_data=dom1.ain
 +++local_part_data=charlie
diff --git a/test/stderr/0404 b/test/stderr/0404
index fc8ad68e4..257cd0c1d 100644
--- a/test/stderr/0404
+++ b/test/stderr/0404
@@ -188,9 +188,9 @@ routing userx@???
 --------> r1 router <--------
 local_part=userx domain=test.ex
 checking local_parts
-userx in "sender"?
+userx in local_parts?
  list element: sender
-userx in "sender"? no (end of list)
+userx in local_parts? no (end of list)
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=userx domain=test.ex
@@ -6422,9 +6422,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6441,9 +6441,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6459,9 +6459,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6477,9 +6477,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6495,9 +6495,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6513,9 +6513,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6531,9 +6531,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6549,9 +6549,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6567,9 +6567,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6585,9 +6585,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6603,9 +6603,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6621,9 +6621,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6639,9 +6639,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6657,9 +6657,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6675,9 +6675,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6693,9 +6693,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6711,9 +6711,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6729,9 +6729,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6747,9 +6747,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6765,9 +6765,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6783,9 +6783,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6801,9 +6801,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6819,9 +6819,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6837,9 +6837,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6855,9 +6855,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6873,9 +6873,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6891,9 +6891,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6909,9 +6909,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6927,9 +6927,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6945,9 +6945,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6963,9 +6963,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6981,9 +6981,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -6999,9 +6999,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7017,9 +7017,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7035,9 +7035,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7053,9 +7053,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7071,9 +7071,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7089,9 +7089,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7107,9 +7107,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7125,9 +7125,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7143,9 +7143,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7161,9 +7161,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7179,9 +7179,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7197,9 +7197,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7215,9 +7215,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7233,9 +7233,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7251,9 +7251,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7269,9 +7269,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7287,9 +7287,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7305,9 +7305,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7323,9 +7323,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7341,9 +7341,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7359,9 +7359,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7377,9 +7377,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7395,9 +7395,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7413,9 +7413,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7431,9 +7431,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7449,9 +7449,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7467,9 +7467,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7485,9 +7485,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7503,9 +7503,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7521,9 +7521,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7539,9 +7539,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7557,9 +7557,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7575,9 +7575,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7593,9 +7593,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7611,9 +7611,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7629,9 +7629,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7647,9 +7647,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7665,9 +7665,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7683,9 +7683,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7701,9 +7701,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7719,9 +7719,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7737,9 +7737,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7755,9 +7755,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7773,9 +7773,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7791,9 +7791,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7809,9 +7809,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7827,9 +7827,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7845,9 +7845,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7863,9 +7863,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7881,9 +7881,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7899,9 +7899,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7917,9 +7917,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7935,9 +7935,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7953,9 +7953,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7971,9 +7971,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -7989,9 +7989,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8007,9 +8007,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8025,9 +8025,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8043,9 +8043,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8061,9 +8061,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8079,9 +8079,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8097,9 +8097,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8115,9 +8115,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8133,9 +8133,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8151,9 +8151,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8169,9 +8169,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8187,9 +8187,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8205,9 +8205,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8223,9 +8223,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8241,9 +8241,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8259,9 +8259,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8277,9 +8277,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8295,9 +8295,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8313,9 +8313,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8331,9 +8331,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8349,9 +8349,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8367,9 +8367,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8385,9 +8385,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8403,9 +8403,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8421,9 +8421,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8439,9 +8439,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8457,9 +8457,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8475,9 +8475,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8493,9 +8493,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8511,9 +8511,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8529,9 +8529,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8547,9 +8547,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8565,9 +8565,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8583,9 +8583,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8601,9 +8601,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8619,9 +8619,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8637,9 +8637,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8655,9 +8655,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8673,9 +8673,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8691,9 +8691,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8709,9 +8709,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8727,9 +8727,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8745,9 +8745,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8763,9 +8763,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8781,9 +8781,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8799,9 +8799,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8817,9 +8817,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8835,9 +8835,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8853,9 +8853,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8871,9 +8871,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8889,9 +8889,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8907,9 +8907,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8925,9 +8925,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8943,9 +8943,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8961,9 +8961,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8979,9 +8979,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -8997,9 +8997,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9015,9 +9015,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9033,9 +9033,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9051,9 +9051,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9069,9 +9069,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9087,9 +9087,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9105,9 +9105,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9123,9 +9123,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9141,9 +9141,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9159,9 +9159,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9177,9 +9177,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9195,9 +9195,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9213,9 +9213,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9231,9 +9231,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9249,9 +9249,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9267,9 +9267,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9285,9 +9285,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9303,9 +9303,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9321,9 +9321,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9339,9 +9339,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9357,9 +9357,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9375,9 +9375,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9393,9 +9393,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9411,9 +9411,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9429,9 +9429,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9447,9 +9447,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9465,9 +9465,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9483,9 +9483,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9501,9 +9501,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9519,9 +9519,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9537,9 +9537,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9555,9 +9555,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9573,9 +9573,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9591,9 +9591,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9609,9 +9609,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9627,9 +9627,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9645,9 +9645,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9663,9 +9663,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9681,9 +9681,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9699,9 +9699,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9717,9 +9717,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9735,9 +9735,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9753,9 +9753,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9771,9 +9771,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9789,9 +9789,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9807,9 +9807,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9825,9 +9825,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9843,9 +9843,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9861,9 +9861,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9879,9 +9879,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9897,9 +9897,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9915,9 +9915,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9933,9 +9933,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9951,9 +9951,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9969,9 +9969,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -9987,9 +9987,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10005,9 +10005,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10023,9 +10023,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10041,9 +10041,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10059,9 +10059,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10077,9 +10077,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10095,9 +10095,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10113,9 +10113,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10131,9 +10131,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10149,9 +10149,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10167,9 +10167,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10185,9 +10185,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10203,9 +10203,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10221,9 +10221,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10239,9 +10239,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10257,9 +10257,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10275,9 +10275,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10293,9 +10293,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10311,9 +10311,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10329,9 +10329,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10347,9 +10347,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10365,9 +10365,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10383,9 +10383,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10401,9 +10401,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10419,9 +10419,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10437,9 +10437,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10455,9 +10455,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10473,9 +10473,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10491,9 +10491,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10509,9 +10509,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10527,9 +10527,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10545,9 +10545,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10563,9 +10563,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10581,9 +10581,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10599,9 +10599,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10617,9 +10617,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10635,9 +10635,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10653,9 +10653,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10671,9 +10671,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10689,9 +10689,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10707,9 +10707,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10725,9 +10725,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10743,9 +10743,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10761,9 +10761,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10779,9 +10779,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10797,9 +10797,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10815,9 +10815,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10833,9 +10833,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10851,9 +10851,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10869,9 +10869,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10887,9 +10887,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10905,9 +10905,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10923,9 +10923,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10941,9 +10941,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10959,9 +10959,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10977,9 +10977,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -10995,9 +10995,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11013,9 +11013,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11031,9 +11031,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11049,9 +11049,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11067,9 +11067,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11085,9 +11085,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11103,9 +11103,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11121,9 +11121,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11139,9 +11139,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11157,9 +11157,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11175,9 +11175,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11193,9 +11193,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11211,9 +11211,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11229,9 +11229,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11247,9 +11247,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11265,9 +11265,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11283,9 +11283,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11301,9 +11301,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11319,9 +11319,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11337,9 +11337,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11355,9 +11355,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11373,9 +11373,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11391,9 +11391,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11409,9 +11409,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11427,9 +11427,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11445,9 +11445,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11463,9 +11463,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11481,9 +11481,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11499,9 +11499,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11517,9 +11517,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11535,9 +11535,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11553,9 +11553,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11571,9 +11571,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11589,9 +11589,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11607,9 +11607,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11625,9 +11625,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11643,9 +11643,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11661,9 +11661,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11679,9 +11679,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11697,9 +11697,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11715,9 +11715,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11733,9 +11733,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11751,9 +11751,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11769,9 +11769,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11787,9 +11787,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11805,9 +11805,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11823,9 +11823,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11841,9 +11841,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11859,9 +11859,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11877,9 +11877,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11895,9 +11895,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11913,9 +11913,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11931,9 +11931,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11949,9 +11949,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11967,9 +11967,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -11985,9 +11985,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12003,9 +12003,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12021,9 +12021,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12039,9 +12039,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12057,9 +12057,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12075,9 +12075,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12093,9 +12093,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12111,9 +12111,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12129,9 +12129,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12147,9 +12147,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12165,9 +12165,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12183,9 +12183,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12201,9 +12201,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12219,9 +12219,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12237,9 +12237,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12255,9 +12255,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12273,9 +12273,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12291,9 +12291,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12309,9 +12309,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12327,9 +12327,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12345,9 +12345,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12363,9 +12363,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12381,9 +12381,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12399,9 +12399,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12417,9 +12417,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12435,9 +12435,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12453,9 +12453,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12471,9 +12471,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12489,9 +12489,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12507,9 +12507,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12525,9 +12525,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12543,9 +12543,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12561,9 +12561,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12579,9 +12579,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12597,9 +12597,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12615,9 +12615,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12633,9 +12633,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12651,9 +12651,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12669,9 +12669,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12687,9 +12687,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12705,9 +12705,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12723,9 +12723,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12741,9 +12741,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12759,9 +12759,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12777,9 +12777,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12795,9 +12795,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12813,9 +12813,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12831,9 +12831,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12849,9 +12849,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12867,9 +12867,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12885,9 +12885,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12903,9 +12903,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12921,9 +12921,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12939,9 +12939,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12957,9 +12957,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12975,9 +12975,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -12993,9 +12993,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13011,9 +13011,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13029,9 +13029,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13047,9 +13047,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13065,9 +13065,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13083,9 +13083,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13101,9 +13101,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13119,9 +13119,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13137,9 +13137,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13155,9 +13155,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13173,9 +13173,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13191,9 +13191,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13209,9 +13209,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13227,9 +13227,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13245,9 +13245,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13263,9 +13263,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13281,9 +13281,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13299,9 +13299,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13317,9 +13317,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13335,9 +13335,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13353,9 +13353,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13371,9 +13371,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13389,9 +13389,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13407,9 +13407,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13425,9 +13425,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13443,9 +13443,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13461,9 +13461,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13479,9 +13479,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13497,9 +13497,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13515,9 +13515,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13533,9 +13533,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13551,9 +13551,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13569,9 +13569,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13587,9 +13587,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13605,9 +13605,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13623,9 +13623,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13641,9 +13641,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13659,9 +13659,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13677,9 +13677,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13695,9 +13695,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13713,9 +13713,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13731,9 +13731,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13749,9 +13749,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13767,9 +13767,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13785,9 +13785,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13803,9 +13803,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13821,9 +13821,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13839,9 +13839,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13857,9 +13857,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13875,9 +13875,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13893,9 +13893,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13911,9 +13911,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13929,9 +13929,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13947,9 +13947,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13965,9 +13965,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -13983,9 +13983,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14001,9 +14001,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14019,9 +14019,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14037,9 +14037,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14055,9 +14055,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14073,9 +14073,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14091,9 +14091,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14109,9 +14109,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14127,9 +14127,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14145,9 +14145,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14163,9 +14163,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14181,9 +14181,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14199,9 +14199,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14217,9 +14217,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14235,9 +14235,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14253,9 +14253,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14271,9 +14271,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14289,9 +14289,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14307,9 +14307,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14325,9 +14325,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14343,9 +14343,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14361,9 +14361,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14379,9 +14379,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14397,9 +14397,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14415,9 +14415,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14433,9 +14433,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14451,9 +14451,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14469,9 +14469,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14487,9 +14487,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14505,9 +14505,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14523,9 +14523,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14541,9 +14541,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14559,9 +14559,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14577,9 +14577,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14595,9 +14595,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14613,9 +14613,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14631,9 +14631,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14649,9 +14649,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14667,9 +14667,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14685,9 +14685,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14703,9 +14703,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14721,9 +14721,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14739,9 +14739,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14757,9 +14757,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14775,9 +14775,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14793,9 +14793,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14811,9 +14811,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14829,9 +14829,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14847,9 +14847,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14865,9 +14865,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14883,9 +14883,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14901,9 +14901,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14919,9 +14919,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14937,9 +14937,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14955,9 +14955,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14973,9 +14973,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -14991,9 +14991,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15009,9 +15009,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15027,9 +15027,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15045,9 +15045,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15063,9 +15063,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15081,9 +15081,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15099,9 +15099,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15117,9 +15117,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15135,9 +15135,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15153,9 +15153,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15171,9 +15171,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15189,9 +15189,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15207,9 +15207,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15225,9 +15225,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15243,9 +15243,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15261,9 +15261,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15279,9 +15279,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15297,9 +15297,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15315,9 +15315,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15333,9 +15333,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15351,9 +15351,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15369,9 +15369,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15387,9 +15387,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15405,9 +15405,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15423,9 +15423,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15441,9 +15441,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15459,9 +15459,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15477,9 +15477,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15495,9 +15495,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15513,9 +15513,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15531,9 +15531,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15549,9 +15549,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15567,9 +15567,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15585,9 +15585,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15603,9 +15603,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15621,9 +15621,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15639,9 +15639,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15657,9 +15657,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15675,9 +15675,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15693,9 +15693,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15711,9 +15711,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15729,9 +15729,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15747,9 +15747,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15765,9 +15765,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15783,9 +15783,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15801,9 +15801,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15819,9 +15819,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15837,9 +15837,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15855,9 +15855,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15873,9 +15873,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15891,9 +15891,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15909,9 +15909,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15927,9 +15927,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15945,9 +15945,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15963,9 +15963,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15981,9 +15981,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -15999,9 +15999,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16017,9 +16017,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16035,9 +16035,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16053,9 +16053,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16071,9 +16071,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16089,9 +16089,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16107,9 +16107,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16125,9 +16125,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16143,9 +16143,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16161,9 +16161,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16179,9 +16179,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16197,9 +16197,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16215,9 +16215,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16233,9 +16233,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16251,9 +16251,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16269,9 +16269,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16287,9 +16287,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16305,9 +16305,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16323,9 +16323,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16341,9 +16341,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16359,9 +16359,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16377,9 +16377,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16395,9 +16395,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16413,9 +16413,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16431,9 +16431,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16449,9 +16449,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16467,9 +16467,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16485,9 +16485,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16503,9 +16503,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16521,9 +16521,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16539,9 +16539,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16557,9 +16557,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16575,9 +16575,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16593,9 +16593,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16611,9 +16611,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16629,9 +16629,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16647,9 +16647,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16665,9 +16665,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16683,9 +16683,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16701,9 +16701,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16719,9 +16719,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16737,9 +16737,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16755,9 +16755,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16773,9 +16773,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16791,9 +16791,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16809,9 +16809,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16827,9 +16827,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16845,9 +16845,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16863,9 +16863,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16881,9 +16881,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16899,9 +16899,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16917,9 +16917,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16935,9 +16935,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16953,9 +16953,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16971,9 +16971,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -16989,9 +16989,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17007,9 +17007,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17025,9 +17025,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17043,9 +17043,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17061,9 +17061,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17079,9 +17079,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17097,9 +17097,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17115,9 +17115,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17133,9 +17133,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17151,9 +17151,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17169,9 +17169,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17187,9 +17187,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17205,9 +17205,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17223,9 +17223,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17241,9 +17241,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17259,9 +17259,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17277,9 +17277,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17295,9 +17295,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17313,9 +17313,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17331,9 +17331,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
@@ -17349,9 +17349,9 @@ routing sender@???
 --------> r1 router <--------
 local_part=sender domain=test.ex
 checking local_parts
-sender in "sender"?
+sender in local_parts?
  list element: sender
- sender in "sender"? yes (matched "sender")
+ sender in local_parts? yes (matched "sender")
 calling r1 router
 r1 router called for sender@???
   domain = test.ex
diff --git a/test/stderr/0408 b/test/stderr/0408
index d14b9ea86..34992e8ee 100644
--- a/test/stderr/0408
+++ b/test/stderr/0408
@@ -87,9 +87,9 @@ routing userx@???
 --------> r1 router <--------
 local_part=userx domain=test.ex
 checking local_parts
-userx in "userx : usery"?
+userx in local_parts?
  list element: userx
- userx in "userx : usery"? yes (matched "userx")
+ userx in local_parts? yes (matched "userx")
 calling r1 router
 r1 router called for userx@???
   domain = test.ex
@@ -103,10 +103,10 @@ routing usery@???
 --------> r1 router <--------
 local_part=usery domain=test.ex
 checking local_parts
-usery in "userx : usery"?
+usery in local_parts?
  list element: userx
  list element: usery
- usery in "userx : usery"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
 calling r1 router
 r1 router called for usery@???
   domain = test.ex
diff --git a/test/stderr/0414 b/test/stderr/0414
index f1eaccfa7..14244f60c 100644
--- a/test/stderr/0414
+++ b/test/stderr/0414
@@ -18,7 +18,7 @@ routing x@???
 --------> r1 router <--------
 local_part=x domain=b.domain
 checking domains
-b.domain in "!+C"?
+b.domain in domains?
  list element: !+C
   start sublist C
    b.domain in "+A : +B"?
@@ -63,17 +63,17 @@ b.domain in "!+C"?
    ╎b.domain in "+A : +B"? yes (matched "+B")
   end sublist C
  data from lookup saved for cache for +C: key 'b.domain' value 'b.domain-data'
- b.domain in "!+C"? no (matched "!+C")
+ b.domain in domains? no (matched "!+C")
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=x domain=b.domain
 checking domains
-b.domain in "+B"?
+b.domain in domains?
  list element: +B
   start sublist B
  cached yes match for +B
  cached lookup data = b.domain-data
- b.domain in "+B"? yes (matched "+B" - cached)
+ b.domain in domains? yes (matched "+B" - cached)
 domain_data=b.domain-data
 calling r2 router
 r2 router called for x@???
@@ -95,7 +95,7 @@ routing x@???
 --------> r1 router <--------
 local_part=x domain=a.domain
 checking domains
-a.domain in "!+C"?
+a.domain in domains?
  list element: !+C
   start sublist C
    a.domain in "+A : +B"?
@@ -123,12 +123,12 @@ a.domain in "!+C"?
    ╎a.domain in "+A : +B"? yes (matched "+A")
   end sublist C
  data from lookup saved for cache for +C: key 'a.domain' value 'a.domain-data'
- a.domain in "!+C"? no (matched "!+C")
+ a.domain in domains? no (matched "!+C")
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=x domain=a.domain
 checking domains
-a.domain in "+B"?
+a.domain in domains?
  list element: +B
   start sublist B
    a.domain in "lsearch;TESTSUITE/aux-fixed/0414.list2"?
@@ -149,17 +149,17 @@ a.domain in "+B"?
    ╎lookup failed
    a.domain in "lsearch;TESTSUITE/aux-fixed/0414.list2"? no (end of list)
   end sublist B
-a.domain in "+B"? no (end of list)
+a.domain in domains? no (end of list)
 r2 router skipped: domains mismatch
 --------> r3 router <--------
 local_part=x domain=a.domain
 checking domains
-a.domain in "+A"?
+a.domain in domains?
  list element: +A
   start sublist A
  cached yes match for +A
  cached lookup data = a.domain-data
- a.domain in "+A"? yes (matched "+A" - cached)
+ a.domain in domains? yes (matched "+A" - cached)
 domain_data=a.domain-data
 calling r3 router
 r3 router called for x@???
diff --git a/test/stderr/0419 b/test/stderr/0419
index 6ea0d7822..ab8c60990 100644
--- a/test/stderr/0419
+++ b/test/stderr/0419
@@ -17,21 +17,22 @@ routing k@???
 --------> dnslookup router <--------
 local_part=k domain=mxt13.test.ex
 checking domains
-mxt13.test.ex in "! +local_domains"?
- list element: ! +local_domains
+mxt13.test.ex in domains?
+ list element: !░+local_domains
   start sublist local_domains
    mxt13.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"?
    ╎list element: !mxt13.test.ex
    ╎mxt13.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? no (matched "!mxt13.test.ex")
   end sublist local_domains
  data from lookup saved for cache for +local_domains: key 'mxt13.test.ex' value 'mxt13.test.ex'
-mxt13.test.ex in "! +local_domains"? yes (end of list)
+mxt13.test.ex in domains? yes (end of list)
 calling dnslookup router
 dnslookup router called for k@???
   domain = mxt13.test.ex
-mxt13.test.ex in "*"?
+mxt13.test.ex in dnssec_require_domains? no (option unset)
+mxt13.test.ex in dnssec_request_domains?
  list element: *
- mxt13.test.ex in "*"? yes (matched "*")
+ mxt13.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of mxt13.test.ex (MX) using fakens
 DNS lookup of mxt13.test.ex (MX) succeeded
 DNS lookup of other1.test.ex (A) using fakens
diff --git a/test/stderr/0426 b/test/stderr/0426
index a97713c59..c489dbcef 100644
--- a/test/stderr/0426
+++ b/test/stderr/0426
@@ -20,6 +20,8 @@ routing x@???
 --------> r0 router <--------
 local_part=x domain=uppercase.test.ex
 checking senders
+test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
 r0 router skipped: senders mismatch
 --------> r1 router <--------
 local_part=x domain=uppercase.test.ex
@@ -48,7 +50,7 @@ After routing:
   Failed addresses:
   Deferred addresses:
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-t1.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-t1.lockfile
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT+:250'
 LOG: MAIN
   ** x@??? R=r1 T=t1 H=uppercase.test.ex [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<x@???>: 550 Unknown
diff --git a/test/stderr/0432 b/test/stderr/0432
index 2722e6b34..885781e1c 100644
--- a/test/stderr/0432
+++ b/test/stderr/0432
@@ -103,8 +103,9 @@ Attempting full verification using callout
  EXIM_DBCLOSE(0xAAAAAAAA)
  closed hints database and lockfile
 interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... 127.0.0.1 in hosts_try_fastopen?
- list element: 
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ 127.0.0.1 in hosts_try_fastopen?
+  list element: 
  connected
   SMTP<< 220 server ready
 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
@@ -293,9 +294,10 @@ MUNGED: ::1 will be omitted in what follows

>>> callout cache: no domain record found for b
>>> callout cache: no address record found for a@b
>>> interface=NULL port=PORT_S

->>> Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... 127.0.0.1 in hosts_try_fastopen?
->>> list element:
->>> >>> connected
+>>> Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+>>> 127.0.0.1 in hosts_try_fastopen?
+>>> list element:
+>>> >>> connected
>>> SMTP<< 220 server ready
>>> 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
>>> SMTP>> EHLO myhost.test.ex

@@ -346,9 +348,10 @@ MUNGED: ::1 will be omitted in what follows
>>> callout cache: no domain record found for q
>>> callout cache: no address record found for p1@q
>>> interface=NULL port=PORT_S

->>> Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... 127.0.0.1 in hosts_try_fastopen?
->>> list element:
->>> >>> connected
+>>> Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+>>> 127.0.0.1 in hosts_try_fastopen?
+>>> list element:
+>>> >>> connected
>>> SMTP<< 220 server ready
>>> 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
>>> SMTP>> EHLO myhost.test.ex

diff --git a/test/stderr/0443 b/test/stderr/0443
index 295a87306..1d5b1f0d8 100644
--- a/test/stderr/0443
+++ b/test/stderr/0443
@@ -16,9 +16,10 @@
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@???
>>> calling r1 router

->>> ten-1.test.ex in "*"?
+>>> ten-1.test.ex in dnssec_require_domains? no (option unset)
+>>> ten-1.test.ex in dnssec_request_domains?
>>> list element: *

->>> ten-1.test.ex in "*"? yes (matched "*")
+>>> ten-1.test.ex in dnssec_request_domains? yes (matched "*")
>>> routed by r1 router
>>> Attempting full verification using callout
>>> callout cache: no domain record found for ten-1.test.ex

diff --git a/test/stderr/0450 b/test/stderr/0450
index 1364d55a2..19be3ace9 100644
--- a/test/stderr/0450
+++ b/test/stderr/0450
@@ -18,7 +18,8 @@ getting address for 127.0.0.1
checking retry status of 127.0.0.1
127.0.0.1 [127.0.0.1]:1111 retry-status = usable
delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D: errno=dd more_errno=dd,A flags=2
@@ -47,7 +48,8 @@ no host retry record
no message retry record
127.0.0.1 [127.0.0.1]:1112 retry-status = usable
delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D2 ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D2 ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D2: errno=dd more_errno=dd,A flags=2
diff --git a/test/stderr/0462 b/test/stderr/0462
index 470f2ed59..d7423c737 100644
--- a/test/stderr/0462
+++ b/test/stderr/0462
@@ -4,6 +4,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying Ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -12,7 +13,8 @@ Attempting full verification using callout
callout cache: no domain record found for localhost
callout cache: no address record found for Ok@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -56,6 +58,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying NOTok@elsewhere
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -64,7 +67,8 @@ Attempting full verification using callout
callout cache: no domain record found for elsewhere
callout cache: no address record found for NOTok@elsewhere
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250 OK
@@ -92,6 +96,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying NOTok2@elsewhere
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -100,7 +105,8 @@ Attempting full verification using callout
 callout cache: found domain record for elsewhere
 callout cache: no address record found for NOTok2@elsewhere
 interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
   SMTP<< 250 OK
diff --git a/test/stderr/0463 b/test/stderr/0463
index e395c2259..037fcbe6f 100644
--- a/test/stderr/0463
+++ b/test/stderr/0463
@@ -16,7 +16,7 @@ routing x@ten-1
 --------> all router <--------
 local_part=x domain=ten-1
 checking domains
-ten-1 in "!@mx_any"?
+ten-1 in domains?
  list element: !@mx_any
 DNS lookup of ten-1 (MX) using fakens
 DNS lookup of ten-1 (MX) gave NO_DATA
@@ -24,13 +24,14 @@ returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1-MX-xxxx, ttl 3000
 Address records are not being sought
-ten-1 in "!@mx_any"? yes (end of list)
+ten-1 in domains? yes (end of list)
 calling all router
 all router called for x@ten-1
   domain = ten-1
-ten-1 in "*"?
+ten-1 in dnssec_require_domains? no (option unset)
+ten-1 in dnssec_request_domains?
  list element: *
- ten-1 in "*"? yes (matched "*")
+ ten-1 in dnssec_request_domains? yes (matched "*")
 DNS lookup of ten-1 (MX) using fakens
 DNS lookup of ten-1 (MX) gave NO_DATA
 returning DNS_NODATA
@@ -51,7 +52,7 @@ routing x@???
 --------> all router <--------
 local_part=x domain=ten-1.test.ex
 checking domains
-ten-1.test.ex in "!@mx_any"?
+ten-1.test.ex in domains?
  list element: !@mx_any
 DNS lookup of ten-1.test.ex (MX) using fakens
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
@@ -59,13 +60,14 @@ returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000
 Address records are not being sought
-ten-1.test.ex in "!@mx_any"? yes (end of list)
+ten-1.test.ex in domains? yes (end of list)
 calling all router
 all router called for x@???
   domain = ten-1.test.ex
-ten-1.test.ex in "*"?
+ten-1.test.ex in dnssec_require_domains? no (option unset)
+ten-1.test.ex in dnssec_request_domains?
  list element: *
- ten-1.test.ex in "*"? yes (matched "*")
+ ten-1.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of ten-1.test.ex (MX) using fakens
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
diff --git a/test/stderr/0464 b/test/stderr/0464
index 1d2b22b96..672b36ba5 100644
--- a/test/stderr/0464
+++ b/test/stderr/0464
@@ -54,12 +54,12 @@ routing abc@domain1
 --------> r1 router <--------
 local_part=abc domain=domain1
 checking domains
-domain1 in "+special_domains"?
+domain1 in domains?
  list element: +special_domains
   start sublist special_domains
  cached yes match for +special_domains
  cached lookup data = data for domain1
- domain1 in "+special_domains"? yes (matched "+special_domains" - cached)
+ domain1 in domains? yes (matched "+special_domains" - cached)
 calling r1 router
 rda_interpret (string): '$local_part@xxx.$domain'
 expanded: 'abc@???' (tainted)
@@ -79,7 +79,7 @@ routing abc@???
 --------> r1 router <--------
 local_part=abc domain=xxx.domain1
 checking domains
-xxx.domain1 in "+special_domains"?
+xxx.domain1 in domains?
  list element: +special_domains
   start sublist special_domains
    xxx.domain1 in "lsearch;TESTSUITE/aux-fixed/0464.domains"?
@@ -99,7 +99,7 @@ xxx.domain1 in "+special_domains"?
    ╎lookup failed
    xxx.domain1 in "lsearch;TESTSUITE/aux-fixed/0464.domains"? no (end of list)
   end sublist special_domains
-xxx.domain1 in "+special_domains"? no (end of list)
+xxx.domain1 in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=abc domain=xxx.domain1
@@ -134,12 +134,12 @@ routing abc@domain1
 --------> r1 router <--------
 local_part=abc domain=domain1
 checking domains
-domain1 in "+special_domains"?
+domain1 in domains?
  list element: +special_domains
   start sublist special_domains
  cached yes match for +special_domains
  cached lookup data = data for domain1
- domain1 in "+special_domains"? yes (matched "+special_domains" - cached)
+ domain1 in domains? yes (matched "+special_domains" - cached)
 calling r1 router
 rda_interpret (string): '$local_part@xxx.$domain'
 expanded: 'abc@???' (tainted)
@@ -159,7 +159,7 @@ routing abc@???
 --------> r1 router <--------
 local_part=abc domain=xxx.domain1
 checking domains
-xxx.domain1 in "+special_domains"?
+xxx.domain1 in domains?
  list element: +special_domains
   start sublist special_domains
    xxx.domain1 in "lsearch;TESTSUITE/aux-fixed/0464.domains"?
@@ -178,7 +178,7 @@ xxx.domain1 in "+special_domains"?
    ╎lookup failed
    xxx.domain1 in "lsearch;TESTSUITE/aux-fixed/0464.domains"? no (end of list)
   end sublist special_domains
-xxx.domain1 in "+special_domains"? no (end of list)
+xxx.domain1 in domains? no (end of list)
 r1 router skipped: domains mismatch
 --------> r2 router <--------
 local_part=abc domain=xxx.domain1
diff --git a/test/stderr/0467 b/test/stderr/0467
index 888177562..c7658714e 100644
--- a/test/stderr/0467
+++ b/test/stderr/0467
@@ -16,7 +16,8 @@ LOG: MAIN
   <= CALLER@??? U=CALLER P=local S=sss
 delivering 10HmaZ-000000005vi-0000
 Transport port=25 replaced by host-specific port=PORT_S
-Connecting to localhost.test.ex [127.0.0.1]:PORT_S ...  connected
+Connecting to localhost.test.ex [127.0.0.1]:PORT_S ...
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
   SMTP<< 250-server id
diff --git a/test/stderr/0469 b/test/stderr/0469
index 948183066..c792d8a8a 100644
--- a/test/stderr/0469
+++ b/test/stderr/0469
@@ -18,9 +18,10 @@ local_part=x domain=mxt1c.test.ex
 calling r1 router
 r1 router called for x@???
   domain = mxt1c.test.ex
-mxt1c.test.ex in "*"?
+mxt1c.test.ex in dnssec_require_domains? no (option unset)
+mxt1c.test.ex in dnssec_request_domains?
  list element: *
- mxt1c.test.ex in "*"? yes (matched "*")
+ mxt1c.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of mxt1c.test.ex (MX) using fakens
 DNS lookup of mxt1c.test.ex (MX) succeeded
 DNS lookup of dontqualify (A) using fakens
diff --git a/test/stderr/0473 b/test/stderr/0473
index 1e943d0e8..1c92bcef2 100644
--- a/test/stderr/0473
+++ b/test/stderr/0473
@@ -4,6 +4,7 @@ trusted user
 admin user
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
+ in chunking_advertise_hosts? no (end of list)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying r11@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -12,7 +13,8 @@ Attempting full verification using callout
callout cache: found domain record for two.test.ex
callout cache: no address record found for r11@???
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO the.local.host.name
SMTP<< 250 OK
@@ -36,6 +38,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from CALLER
+ in chunking_advertise_hosts? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying r11@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -44,7 +47,8 @@ Attempting full verification using callout
callout cache: found domain record for two.test.ex
callout cache: no address record found for r11@???
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP(Connection timed out)<<
SMTP(close)>>
cmdlog: '(unset)'
diff --git a/test/stderr/0475 b/test/stderr/0475
index f080bfc0e..585e78d2a 100644
--- a/test/stderr/0475
+++ b/test/stderr/0475
@@ -15,7 +15,7 @@
>>> check hosts = 1.2.3.4 : <; 1.2.3.4::5.6.7.8
>>> host in "1.2.3.4 : <; 1.2.3.4::5.6.7.8"?
>>> list element: 1.2.3.4

->>> list element: <; 1.2.3.4:5.6.7.8
+>>> list element: <;░1.2.3.4:5.6.7.8
LOG: unknown lookup type "<" in host list item "<; 1.2.3.4:5.6.7.8"
>>> host in "1.2.3.4 : <; 1.2.3.4::5.6.7.8"? list match deferred for <; 1.2.3.4:5.6.7.8
>>> deny: condition test deferred in ACL "a1"

diff --git a/test/stderr/0476 b/test/stderr/0476
index d14e2dbd2..038e25078 100644
--- a/test/stderr/0476
+++ b/test/stderr/0476
@@ -18,7 +18,8 @@ checking retry status of 127.0.0.1
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
 set_process_info: pppp delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1]:PORT_S (userx@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
   SMTP<< 220 Server ready
   SMTP>> EHLO the.local.host.name
 cmd buf flush ddd bytes
@@ -85,7 +86,8 @@ checking retry status of 127.0.0.1
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (CALLER@???)
 set_process_info: pppp delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1]:PORT_S (CALLER@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+  failed: Connection refused
 LOG: MAIN
   H=127.0.0.1 [127.0.0.1] Connection refused
 set_process_info: pppp delivering 10HmaZ-000000005vi-0000: just tried 127.0.0.1 [127.0.0.1]:PORT_S for CALLER@???: result DEFER
diff --git a/test/stderr/0483 b/test/stderr/0483
index c38d537ea..a40b66a66 100644
--- a/test/stderr/0483
+++ b/test/stderr/0483
@@ -23,6 +23,7 @@ domain = domain2
 routed by r1 router
   envelope to: recip@domain2
   transport: t1
+other@domain2 in "lsearch;TESTSUITE/aux-fixed/0483.list"? no (end of list)
 LOG: MAIN REJECT
   U=CALLER F=<sender@domain1> rejected RCPT <other@domain2>
 LOG: smtp_connection MAIN
diff --git a/test/stderr/0499 b/test/stderr/0499
index 8a3733a50..3cf1c41b9 100644
--- a/test/stderr/0499
+++ b/test/stderr/0499
@@ -16,7 +16,7 @@ routing ph@???
 --------> r1 router <--------
 local_part=ph domain=mxt1.test.ex
 checking domains
-mxt1.test.ex in "+anymx"?
+mxt1.test.ex in domains?
  list element: +anymx
   start sublist anymx
    mxt1.test.ex in "@mx_any"?
@@ -31,7 +31,7 @@ host_find_bydns yield = HOST_FOUND_LOCAL (4); returned hosts:
    ╎mxt1.test.ex in "@mx_any"? yes (matched "@mx_any")
   end sublist anymx
  data from lookup saved for cache for +anymx: key 'mxt1.test.ex' value '@mx_any'
- mxt1.test.ex in "+anymx"? yes (matched "+anymx")
+ mxt1.test.ex in domains? yes (matched "+anymx")
 checking "condition" "${if match_domain{$domain}{+anymx}{yes}}"...
  mxt1.test.ex in "+anymx"?
   list element: +anymx
diff --git a/test/stderr/0512 b/test/stderr/0512
index 7bb550c81..7c0285ce1 100644
--- a/test/stderr/0512
+++ b/test/stderr/0512
@@ -4,6 +4,8 @@ admin user
 dropping to exim gid; retaining priv uid
 LOG: queue_run MAIN
   Start queue run: pid=p1234 -qf
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)

>>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>

--------> userx@??? <--------
t1 transport entered
@@ -15,7 +17,8 @@ no message retry record
127.0.0.1 [127.0.0.1]:1111 retry-status = usable
delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
hosts_max_try limit reached with this host
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2
@@ -27,7 +30,8 @@ no message retry record
127.0.0.1 [127.0.0.1]:1111 retry-status = usable
delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
hosts_max_try limit reached with this host
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2
@@ -39,7 +43,8 @@ no message retry record
127.0.0.1 [127.0.0.1]:1111 retry-status = usable
delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
hosts_max_try limit reached with this host
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2
@@ -51,7 +56,8 @@ no message retry record
127.0.0.1 [127.0.0.1]:1111 retry-status = usable
delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
hosts_max_try limit reached with this host
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2
@@ -95,6 +101,8 @@ admin user
dropping to exim gid; retaining priv uid
LOG: queue_run MAIN
Start queue run: pid=p1235 -qf
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
>>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>

--------> userx@??? <--------
t1 transport entered
@@ -106,7 +114,8 @@ no message retry record
127.0.0.1 [127.0.0.1]:1111 retry-status = usable
delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
hosts_max_try limit reached with this host
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2
@@ -118,7 +127,8 @@ no message retry record
127.0.0.1 [127.0.0.1]:1111 retry-status = usable
delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@???)
hosts_max_try limit reached with this host
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN
H=127.0.0.1 [127.0.0.1] Connection refused
added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2
diff --git a/test/stderr/0513 b/test/stderr/0513
index 12280cded..ebce3cc35 100644
--- a/test/stderr/0513
+++ b/test/stderr/0513
@@ -24,9 +24,10 @@
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing x@???
>>> calling r1 router

->>> mxt2.test.ex in "*"?
+>>> mxt2.test.ex in dnssec_require_domains? no (option unset)
+>>> mxt2.test.ex in dnssec_request_domains?
>>> list element: *

->>> mxt2.test.ex in "*"? yes (matched "*")
+>>> mxt2.test.ex in dnssec_request_domains? yes (matched "*")
>>> r1 router declined for x@???
>>> no more routers
>>> ----------- end verify ------------

diff --git a/test/stderr/0525 b/test/stderr/0525
index fa4f709a1..7c664e650 100644
--- a/test/stderr/0525
+++ b/test/stderr/0525
@@ -3,7 +3,8 @@ LOG: smtp_connection MAIN
 LOG: MAIN
   <= CALLER@??? U=CALLER P=local-smtp S=sss
 delivering 10HmaX-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
   SMTP<< 220 Welcome
   SMTP>> EHLO myhost.test.ex
   SMTP<< 250 Hi
diff --git a/test/stderr/0543 b/test/stderr/0543
index 5df9df63b..9cfdba77e 100644
--- a/test/stderr/0543
+++ b/test/stderr/0543
@@ -32,7 +32,7 @@ After routing:
   Failed addresses:
   Deferred addresses:
 locking TESTSUITE/spool/db/retry.lockfile
-locking TESTSUITE/spool/db/wait-smtp.lockfile
+ locking /home/jgh/local_git/exim/test/spool/db/wait-smtp.lockfile
 cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:DATA:354:.:250:QUIT+:250'
 LOG: MAIN
   => userx@domain1 R=smarthost T=smtp H=thisloop.test.ex [127.0.0.1] C="250 OK"
diff --git a/test/stderr/0544 b/test/stderr/0544
index a9879b1c7..f2e80499d 100644
--- a/test/stderr/0544
+++ b/test/stderr/0544
@@ -487,6 +487,7 @@ try option acl_smtp_helo
 try option acl_smtp_etrn
 try option acl_smtp_vrfy
 try option acl_smtp_expn
+ in chunking_advertise_hosts? no (end of list)
 try option acl_smtp_mail
  ╭considering: domain=$domain/sender_domain=$sender_address_domain
  ├───────text: domain=
@@ -500,6 +501,7 @@ try option acl_smtp_mail
  ├───expanded: domain=$domain/sender_domain=$sender_address_domain
  ╰─────result: domain=/sender_domain=sender.domain
             ╰──(tainted)
+ in "domain=/sender_domain=sender.domain"? no (end of list)
 try option acl_smtp_rcpt
  ╭considering: domain=$domain/sender_domain=$sender_address_domain
  ├───────text: domain=
@@ -514,6 +516,7 @@ try option acl_smtp_rcpt
  ├───expanded: domain=$domain/sender_domain=$sender_address_domain
  ╰─────result: domain=recipient.domain/sender_domain=sender.domain
             ╰──(tainted)
+recipient.domain in "domain=recipient.domain/sender_domain=sender.domain"? no (end of list)
  ╭considering: domain=$domain/sender_domain=$sender_address_domain
  ├───────text: domain=
  ├considering: $domain/sender_domain=$sender_address_domain
@@ -527,6 +530,7 @@ try option acl_smtp_rcpt
  ├───expanded: domain=$domain/sender_domain=$sender_address_domain
  ╰─────result: domain=recipient.domain/sender_domain=sender.domain
             ╰──(tainted)
+sender.domain in "domain=recipient.domain/sender_domain=sender.domain"? no (end of list)
 try option acl_smtp_quit
 LOG: smtp_connection MAIN
   SMTP connection from CALLER D=qqs closed by QUIT
diff --git a/test/stderr/0545 b/test/stderr/0545
index 94f313af8..99f56d761 100644
--- a/test/stderr/0545
+++ b/test/stderr/0545
@@ -18,9 +18,10 @@ local_part=userx domain=alias-eximtesthost
 calling dns router
 dns router called for userx@alias-eximtesthost
   domain = alias-eximtesthost
-alias-eximtesthost in "*"?
+alias-eximtesthost in dnssec_require_domains? no (option unset)
+alias-eximtesthost in dnssec_request_domains?
  list element: *
- alias-eximtesthost in "*"? yes (matched "*")
+ alias-eximtesthost in dnssec_request_domains? yes (matched "*")
 DNS lookup of alias-eximtesthost (MX) using fakens
 DNS lookup of alias-eximtesthost (MX) succeeded
 CNAME found: change to eximtesthost.test.ex
@@ -50,9 +51,10 @@ local_part=userx domain=alias-eximtesthost.test.ex
 calling dns router
 dns router called for userx@???
   domain = alias-eximtesthost.test.ex
-alias-eximtesthost.test.ex in "*"?
+alias-eximtesthost.test.ex in dnssec_require_domains? no (option unset)
+alias-eximtesthost.test.ex in dnssec_request_domains?
  list element: *
- alias-eximtesthost.test.ex in "*"? yes (matched "*")
+ alias-eximtesthost.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of alias-eximtesthost.test.ex (MX) using fakens
 DNS lookup of alias-eximtesthost.test.ex (MX) succeeded
 CNAME found: change to eximtesthost.test.ex
@@ -97,9 +99,10 @@ local_part=userx domain=alias-eximtesthost.test.ex
 calling dns router
 dns router called for userx@???
   domain = alias-eximtesthost.test.ex
-alias-eximtesthost.test.ex in "*"?
+alias-eximtesthost.test.ex in dnssec_require_domains? no (option unset)
+alias-eximtesthost.test.ex in dnssec_request_domains?
  list element: *
- alias-eximtesthost.test.ex in "*"? yes (matched "*")
+ alias-eximtesthost.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of alias-eximtesthost.test.ex (MX) using fakens
 DNS lookup of alias-eximtesthost.test.ex (MX) succeeded
 CNAME found: change to eximtesthost.test.ex
diff --git a/test/stderr/0554 b/test/stderr/0554
index 4e6690afb..8d77c745e 100644
--- a/test/stderr/0554
+++ b/test/stderr/0554
@@ -18,7 +18,7 @@ After routing:
 checking retry status of 127.0.0.1
 locking TESTSUITE/spool/db/retry.lockfile
 no retry data available
-added retry item for R:x@y:<CALLER@???>: errno=-44 more_errno=dd,A flags=0
+ added retry item for R:x@y:<jgh@???>: errno=-44 more_errno=51,A flags=0
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250'
 reading retry information for R:x@y:<CALLER@???> from subprocess
   added retry item
@@ -60,7 +60,7 @@ checking retry status of 127.0.0.1
 locking TESTSUITE/spool/db/retry.lockfile
 no host retry record
 no message retry record
-added retry item for R:x@y:<CALLER@???>: errno=dd more_errno=dd,A flags=1
+ added retry item for R:x@y:<jgh@???>: errno=0 more_errno=0,A flags=1
 added retry item for R:x@y: errno=dd more_errno=dd,A flags=1
 locking TESTSUITE/spool/db/wait-smtp.lockfile
 cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:DATA:354:.:250:QUIT+:250'
diff --git a/test/stderr/0563 b/test/stderr/0563
index e20d7cc93..09cc0d0df 100644
--- a/test/stderr/0563
+++ b/test/stderr/0563
@@ -17,7 +17,7 @@ routing joe-real@???
 --------> router1 router <--------
 local_part=joe-real domain=testexim.test.ex
 checking local_parts
-joe-real in "+aliases"?
+joe-real in local_parts?
  list element: +aliases
   start sublist aliases
    joe-real in "joe:sam:tom"?
@@ -26,20 +26,20 @@ joe-real in "+aliases"?
    ╎list element: tom
    joe-real in "joe:sam:tom"? no (end of list)
   end sublist aliases
-joe-real in "+aliases"? no (end of list)
+joe-real in local_parts? no (end of list)
 router1 router skipped: local_parts mismatch
 --------> router2 router <--------
 local_part=joe-real domain=testexim.test.ex
 stripped suffix -real
 checking local_parts
-joe in "+aliases"?
+joe in local_parts?
  list element: +aliases
   start sublist aliases
    joe in "joe:sam:tom"?
    ╎list element: joe
    ╎joe in "joe:sam:tom"? yes (matched "joe")
   end sublist aliases
- joe in "+aliases"? yes (matched "+aliases")
+ joe in local_parts? yes (matched "+aliases")
 calling router2 router
 router2 router called for joe-real@???
   domain = testexim.test.ex
diff --git a/test/stderr/0578 b/test/stderr/0578
index d804df43b..45d558ef9 100644
--- a/test/stderr/0578
+++ b/test/stderr/0578
@@ -4,6 +4,7 @@ trusted user
 admin user
 LOG: smtp_connection MAIN
   SMTP connection from root
+test in helo_lookup_domains? no (end of list)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -12,7 +13,8 @@ Attempting full verification using callout
callout cache: no domain record found for localhost
callout cache: no address record found for ok@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -29,6 +31,14 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for localhost:
result=1 postmaster=0 random=0
wrote positive callout cache address record for ok@localhost
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -38,6 +48,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -46,6 +57,14 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: found address record for ok@localhost
callout cache: address record is positive
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -55,6 +74,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -63,7 +83,8 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: address record expired for ok@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... failed: Connection refused
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ failed: Connection refused
LOG: MAIN REJECT
H=(test) [V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : Connection refused
created log directory TESTSUITE/spool/log
@@ -78,6 +99,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying bad@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -86,7 +108,8 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: no address record found for bad@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -116,6 +139,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying bad@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -137,6 +161,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -145,7 +170,8 @@ Attempting full verification using callout
callout cache: found domain record for localhost
callout cache: address record expired for ok@localhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -174,6 +200,7 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@localhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -194,6 +221,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -202,7 +231,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost
callout cache: no address record found for ok@otherhost
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -239,6 +269,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -259,6 +291,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -267,7 +301,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost2
callout cache: no address record found for ok@otherhost2
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -291,6 +326,13 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost2:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost2
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1243 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -300,6 +342,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -309,6 +353,13 @@ callout cache: found domain record for otherhost2
callout cache: domain accepts RCPT TO:<postmaster@domain>
callout cache: found address record for ok@otherhost2
callout cache: address record is positive
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1244 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -318,6 +369,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost3
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -326,7 +380,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost3
callout cache: no address record found for ok@otherhost3
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -342,8 +397,14 @@ Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost3:
result=1 postmaster=0 random=1
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1245 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -353,6 +414,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying otherok@otherhost3
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -360,8 +424,14 @@ Considering otherok@otherhost3
Attempting full verification using callout
callout cache: found domain record for otherhost3
callout cache: domain accepts random addresses
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1246 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -371,6 +441,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost4
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -379,7 +453,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost4
callout cache: no address record found for ok@otherhost4
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -395,8 +470,13 @@ Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost4:
result=1 postmaster=0 random=1
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1247 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -406,6 +486,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost4
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -413,8 +497,13 @@ Considering ok@otherhost4
Attempting full verification using callout
callout cache: found domain record for otherhost4
callout cache: domain accepts random addresses
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: MAIN
(random)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1248 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -424,6 +513,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost41
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -432,7 +525,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost41
callout cache: no address record found for ok@otherhost41
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -462,6 +556,11 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:RSET:250:MAIL|:RCPT:250:250:RSET:250:M
wrote callout cache domain record for otherhost41:
result=1 postmaster=1 random=2
wrote positive callout cache address record for ok@otherhost41
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1249 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -471,6 +570,10 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost41
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -481,6 +584,11 @@ callout cache: domain rejects random addresses
callout cache: domain accepts RCPT TO:<postmaster@domain>
callout cache: found address record for ok@otherhost41
callout cache: address record is positive
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1250 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -490,6 +598,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost21
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -498,7 +608,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost21
callout cache: no address record found for ok@otherhost21
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -522,6 +633,13 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost21
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1251 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -531,6 +649,8 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok2@otherhost21
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -540,7 +660,8 @@ callout cache: found domain record for otherhost21
callout cache: domain accepts RCPT TO:<postmaster@domain>
callout cache: no address record found for ok2@otherhost21
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -557,6 +678,13 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost21:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok2@otherhost21
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1252 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -566,6 +694,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost31
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -574,7 +705,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost31
callout cache: no address record found for ok@otherhost31
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -597,6 +729,12 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for ok@otherhost31
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1253 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -606,6 +744,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okok@otherhost31
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -615,7 +756,8 @@ callout cache: found domain record for otherhost31
callout cache: domain rejects random addresses
callout cache: no address record found for okok@otherhost31
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -632,6 +774,12 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okok@otherhost31
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1254 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -641,6 +789,9 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okokok@otherhost31
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -649,7 +800,8 @@ Attempting full verification using callout
callout cache: domain record expired for otherhost31
callout cache: no address record found for okokok@otherhost31
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -672,6 +824,12 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:550:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost31:
result=1 postmaster=0 random=2
wrote positive callout cache address record for okokok@otherhost31
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1255 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -681,6 +839,11 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okok@otherhost51
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -689,7 +852,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost51
callout cache: no address record found for okok@otherhost51
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -717,6 +881,12 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying okokok@otherhost52
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -725,7 +895,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost52
callout cache: no address record found for okokok@otherhost52
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -749,6 +920,9 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for otherhost52:
result=1 postmaster=1 random=0
wrote positive callout cache address record for okokok@otherhost52
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1257 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -758,6 +932,16 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
verifying Reply-To: header address abcd@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying abcd@???
@@ -767,7 +951,8 @@ Attempting full verification using callout
callout cache: no domain record found for x.y.z
callout cache: no address record found for abcd@???/<somesender@???>
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -784,6 +969,7 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:QUIT:250'
wrote callout cache domain record for x.y.z:
result=1 postmaster=0 random=0
wrote positive callout cache address record for abcd@???/<somesender@???>
+host in "V4NET.0.0.8"? no (end of list)
LOG: MAIN
<= ok7@otherhost53 H=(test) [V4NET.0.0.7] U=root P=smtp S=sss
LOG: smtp_connection MAIN
@@ -795,6 +981,17 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.7"? no (end of list)
verifying Reply-To: header address abcd@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying abcd@???
@@ -804,7 +1001,8 @@ Attempting full verification using callout
callout cache: found domain record for x.y.z
callout cache: no address record found for abcd@???
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -830,6 +1028,13 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying ok@otherhost9
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -838,7 +1043,8 @@ Attempting full verification using callout
callout cache: no domain record found for otherhost9
callout cache: no address record found for ok@otherhost9
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
@@ -864,6 +1070,8 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:RSET:250:MAIL|:RCPT:250:550:RCPT:250:Q
wrote callout cache domain record for otherhost9:
result=1 postmaster=1 random=0
wrote positive callout cache address record for ok@otherhost9
+host in "V4NET.0.0.10"? no (end of list)
+host in "V4NET.0.0.10"? no (end of list)
LOG: smtp_connection MAIN
SMTP connection from root D=qqs closed by QUIT
>>>>>>>>>>>>>>>> Exim pid=p1260 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -873,6 +1081,14 @@ trusted user
admin user
LOG: smtp_connection MAIN
SMTP connection from root
+test in helo_lookup_domains? no (end of list)
+host in "V4NET.0.0.1"? no (end of list)
+host in "V4NET.0.0.2"? no (end of list)
+host in "V4NET.0.0.3"? no (end of list)
+host in "V4NET.0.0.4"? no (end of list)
+host in "V4NET.0.0.5"? no (end of list)
+host in "V4NET.0.0.6"? no (end of list)
+host in "V4NET.0.0.9"? no (end of list)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Verifying z@???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -881,7 +1097,8 @@ Attempting full verification using callout
callout cache: no domain record found for test.ex
callout cache: no address record found for z@???/<postmaster@???>
interface=NULL port=PORT_S
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+ connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
SMTP<< 250-Yeah mate
diff --git a/test/stderr/0584 b/test/stderr/0584
index 32ce9e762..a15f0f048 100644
--- a/test/stderr/0584
+++ b/test/stderr/0584
@@ -15,9 +15,9 @@
>>> check verify = sender=userx@???
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling goodroute router
>>> routed by goodroute router
>>> ----------- end verify ------------

@@ -44,9 +44,9 @@ LOG: 10HmaX-000000005vi-0000 <= userx@??? H=(test) [127.0.0.1] P=smtp S=sss
>>> check verify = sender=fail@???
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing fail@???

->>> fail in "userx"?
+>>> fail in local_parts?
>>> list element: userx

->>> fail in "userx"? no (end of list)
+>>> fail in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> require: condition test failed in ACL "check_recipient"

@@ -71,9 +71,9 @@ LOG: H=(test) [127.0.0.1] F=<userx@???> rejected RCPT <userx@???>: Sende
 >>>              = sender=userx@???/defer_ok
 >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 >>> routing userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling goodroute router
>>> routed by goodroute router
>>> ----------- end verify ------------

diff --git a/test/stderr/0588 b/test/stderr/0588
index e1f5d4f29..d7b0d74f2 100644
--- a/test/stderr/0588
+++ b/test/stderr/0588
@@ -15,9 +15,10 @@
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing should_log@???
>>> calling all router

->>> delay1500.test.ex in "*"?
+>>> delay1500.test.ex in dnssec_require_domains? no (option unset)
+>>> delay1500.test.ex in dnssec_request_domains?
>>> list element: *

->>> delay1500.test.ex in "*"? yes (matched "*")
+>>> delay1500.test.ex in dnssec_request_domains? yes (matched "*")
LOG: Long A lookup for 'delay1500.test.ex': ssss msec
>>> local host found for non-MX address
>>> routed by all router

@@ -41,9 +42,10 @@ LOG: Long A lookup for 'delay1500.test.ex': ssss msec
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing should_not_log@???
>>> calling all router

->>> delay500.test.ex in "*"?
+>>> delay500.test.ex in dnssec_require_domains? no (option unset)
+>>> delay500.test.ex in dnssec_request_domains?
>>> list element: *

->>> delay500.test.ex in "*"? yes (matched "*")
+>>> delay500.test.ex in dnssec_request_domains? yes (matched "*")
>>> local host found for non-MX address
>>> routed by all router
>>> ----------- end verify ------------

diff --git a/test/stderr/0609 b/test/stderr/0609
index 2ea697f69..350764c32 100644
--- a/test/stderr/0609
+++ b/test/stderr/0609
@@ -19,6 +19,7 @@ p1235 LOG: smtp_connection MAIN
 p1235   SMTP connection from [127.0.0.1] (TCP/IP connection count = 1)
 p1235 Process p1235 is handling incoming connection from [127.0.0.1]
 p1235 Process p1235 is ready for new message
+p1235 test in helo_lookup_domains? no (end of list)
 p1235 using ACL "delay4_accept"
 p1235 processing "accept" (TESTSUITE/test-config 24)
 p1235 check delay = 4s
@@ -39,6 +40,7 @@ p1236 LOG: smtp_connection MAIN
 p1236   SMTP connection from [127.0.0.1] (TCP/IP connection count = 1)
 p1236 Process p1236 is handling incoming connection from [127.0.0.1]
 p1236 Process p1236 is ready for new message
+p1236 test in helo_lookup_domains? no (end of list)
 p1236 using ACL "delay4_accept"
 p1236 processing "accept" (TESTSUITE/test-config 24)
 p1236 check delay = 4s
diff --git a/test/stderr/0623 b/test/stderr/0623
index bb517b859..b4f564af9 100644
--- a/test/stderr/0623
+++ b/test/stderr/0623
@@ -17,7 +17,9 @@ getting address for 127.0.0.1
 checking retry status of 127.0.0.1
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (tempreject@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -83,7 +85,9 @@ no host retry record
 no message retry record
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmbA-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (permreject@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -149,7 +153,9 @@ no host retry record
 no message retry record
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmbB-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (permreject@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
diff --git a/test/stderr/0630 b/test/stderr/0630
index aef9cabb0..eccfd268e 100644
--- a/test/stderr/0630
+++ b/test/stderr/0630
@@ -13,12 +13,12 @@
 01:01:01 p1235   ├───expanded: /$local_part
 01:01:01 p1235   ╰─────result: /dest3
 01:01:01 p1235              ╰──(tainted)
-01:01:01 p1235  dest3 in "/dest3"?
+01:01:01 p1235  dest3 in local_parts?
 01:01:01 p1235   list element: /dest3
 01:01:01 p1235  LOG: MAIN PANIC
 01:01:01 p1235    Tainted filename '/dest3'
 01:01:01 p1235  LOG: MAIN PANIC DIE
-01:01:01 p1235    failed to open /dest3 when checking "/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
+01:01:01 p1235    failed to open /dest3 when checking local_parts: Permission denied (euid=uuuu egid=EXIM_GID)
 01:01:01 p1235   search_tidyup called
 01:01:01 p1235  >>>>>>>>>>>>>>>> Exim pid=p1235 (daemon-accept-delivery) terminating with rc=1 >>>>>>>>>>>>>>>>
 
diff --git a/test/stderr/0632 b/test/stderr/0632
index a01ed1b66..ce15ccd7a 100644
--- a/test/stderr/0632
+++ b/test/stderr/0632
@@ -49,6 +49,7 @@ p1235  ├──────value: Tue,░2░Mar░1999░09:44:33░+0000
 p1235  ├───expanded: $smtp_active_hostname░ESMTP░Exim░$version_number░$tod_full
 p1235  ╰─────result: myhost.test.ex░ESMTP░Exim░x.yz░Tue,░2░Mar░1999░09:44:33░+0000
 p1235 Process p1235 is ready for new message
+p1235 test.ex in helo_lookup_domains? no (end of list)
 p1235 try option acl_smtp_helo
 p1235 try option acl_smtp_mail
 p1235 try option acl_smtp_rcpt
@@ -62,6 +63,7 @@ p1235  ├considering: /exim_daemon_notify
 p1235  ├───────text: /exim_daemon_notify
 p1235  ├───expanded: $spool_directory/exim_daemon_notify
 p1235  ╰─────result: TESTSUITE/spool/exim_daemon_notify
+p1235 test.ex in "^nomatch_list"? no (end of list)
 p1235  ╭considering: ${if░match░{a_random_string}░{static_RE}}
 p1235   ╭considering: a_random_string}░{static_RE}}
 p1235   ├───────text: a_random_string
@@ -543,10 +545,12 @@ p1236  ├──────value: Tue,░2░Mar░1999░09:44:33░+0000
 p1236  ├───expanded: $smtp_active_hostname░ESMTP░Exim░$version_number░$tod_full
 p1236  ╰─────result: myhost.test.ex░ESMTP░Exim░x.yz░Tue,░2░Mar░1999░09:44:33░+0000
 p1236 Process p1236 is ready for new message
+p1236 test.ex in helo_lookup_domains? no (end of list)
 p1236 try option acl_smtp_helo
 p1236 try option acl_smtp_mail
 p1236 try option acl_smtp_rcpt
 p1236 compiled caseless RE '^nomatch_list' found in local cache
+p1236 test.ex in "^nomatch_list"? no (end of list)
 p1236  ╭considering: ${if░match░{a_random_string}░{static_RE}}
 p1236   ╭considering: a_random_string}░{static_RE}}
 p1236   ├───────text: a_random_string
diff --git a/test/stderr/0909 b/test/stderr/0909
index 730dc2c0a..c21b34b85 100644
--- a/test/stderr/0909
+++ b/test/stderr/0909
@@ -21,7 +21,9 @@ getting address for 127.0.0.1
 checking retry status of 127.0.0.1
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (good@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -87,7 +89,9 @@ getting address for 127.0.0.1
 checking retry status of 127.0.0.1
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmaY-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (nopipe@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -152,7 +156,9 @@ getting address for 127.0.0.1
 checking retry status of 127.0.0.1
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (tempreject@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -222,7 +228,9 @@ no host retry record
 no message retry record
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmbA-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (permreject@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -292,7 +300,9 @@ no host retry record
 no message retry record
 127.0.0.1 [127.0.0.1]:1111 retry-status = usable
 delivering 10HmbB-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (dataloss@???)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ TFO mode sendto, no data: EINPROGRESS
+connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
diff --git a/test/stderr/1000 b/test/stderr/1000
index 0eb94285d..65573e245 100644
--- a/test/stderr/1000
+++ b/test/stderr/1000
@@ -27,6 +27,8 @@ LOG: H=[2001:ab8:37f:20::1] rejected connection in "connect" ACL

>>> host in host_lookup? yes (matched "*")
>>> looking up host name for V6NET:1234:5:6:7:8:abc:d
>>> IP address lookup yielded "test3.ipv6.test.ex"

+>>> test3.ipv6.test.ex not in empty list (option unset? cannot trace name)
+>>> test3.ipv6.test.ex not in empty list (option unset? cannot trace name)
>>> checking addresses for test3.ipv6.test.ex
>>> V6NET:1234:5:6:7:8:abc:d OK
>>> host in host_reject_connection? no (option unset)

diff --git a/test/stderr/1006 b/test/stderr/1006
index 3fe18948a..27ff56df3 100644
--- a/test/stderr/1006
+++ b/test/stderr/1006
@@ -7,6 +7,7 @@ DNS lookup of mx46.test.ex (MX) succeeded
DNS lookup of 46.test.ex (AAAA) succeeded
DNS lookup of 46.test.ex (A) using fakens
DNS lookup of 46.test.ex (A) succeeded
+manualroute in local_parts? no (end of list)
DNS lookup of 46.test.ex (AAAA) succeeded
DNS lookup of 46.test.ex (A) using fakens
DNS lookup of 46.test.ex (A) succeeded
@@ -30,6 +31,7 @@ DNS lookup of mx46.test.ex (MX) using fakens
DNS lookup of mx46.test.ex (MX) succeeded
DNS lookup of 46.test.ex (A) using fakens
DNS lookup of 46.test.ex (A) succeeded
+manualroute in local_parts? no (end of list)
DNS lookup of 46.test.ex (A) using fakens
DNS lookup of 46.test.ex (A) succeeded
DNS lookup of v6.test.ex (MX) using fakens
@@ -42,6 +44,7 @@ DNS lookup of v6.test.ex (A) gave NO_DATA
returning DNS_NODATA
faking res_search(A) response length as 65535
writing neg-cache entry for v6.test.ex-A-xxxx, ttl 3000
+dnslookup in local_parts? no (end of list)
>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>


******** SERVER ********
diff --git a/test/stderr/1150 b/test/stderr/1150
index 4345670f9..5d06a61d2 100644
--- a/test/stderr/1150
+++ b/test/stderr/1150
@@ -1,7 +1,8 @@
LOG: queue_run MAIN
Start queue run: pid=p1234 -qf
delivering 10HmaX-000000005vi-0000 (queue run pid p1234)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> EHLO helo.data.changed
SMTP<< 250-myhost.test.ex Hello helo.data.changed [127.0.0.1]
@@ -38,7 +39,8 @@ LOG: MAIN
LOG: MAIN
Completed
delivering 10HmaY-000000005vi-0000 (queue run pid p1234)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> EHLO helo.data.changed
SMTP<< 250-myhost.test.ex Hello helo.data.changed [127.0.0.1]
@@ -76,7 +78,8 @@ LOG: MAIN
=> CALLER@??? R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-000000005vi-0000"
LOG: MAIN
-> xyz@??? R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-000000005vi-0000"
-Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ... connected
+Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ...
+connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> EHLO myhost.test.ex
SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
diff --git a/test/stderr/1157 b/test/stderr/1157
index aeb2273ec..cec9563c4 100644
--- a/test/stderr/1157
+++ b/test/stderr/1157
@@ -7,7 +7,8 @@ LOG: queue_run MAIN
>>>>>>>>>>>>>>>> Exim pid=p1242 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1243 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1244 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
@@ -21,6 +22,7 @@ cmd buf flush ddd bytes
SMTP>> STARTTLS
cmd buf flush ddd bytes
SMTP<< 220 TLS go ahead
+127.0.0.1 in tls_verify_cert_hostnames? no (end of list)
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
SMTP<< 250-myhost.test.ex Hello localhost [127.0.0.1]
@@ -38,6 +40,7 @@ cmd buf flush ddd bytes
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> .
SMTP<< 250 OK id=10HmbA-000000005vi-0000
+127.0.0.1 in hosts_noproxy_tls? no (end of list)
LOG: MAIN
=> userx@??? R=client T=send_to_server H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-000000005vi-0000"
LOG: MAIN
@@ -103,7 +106,8 @@ LOG: queue_run MAIN
>>>>>>>>>>>>>>>> Exim pid=p1249 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1250 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1251 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
@@ -117,6 +121,7 @@ cmd buf flush ddd bytes
SMTP>> STARTTLS
cmd buf flush ddd bytes
SMTP<< 220 TLS go ahead
+127.0.0.1 in tls_verify_cert_hostnames? no (end of list)
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
SMTP<< 250-myhost.test.ex Hello localhost [127.0.0.1]
@@ -134,6 +139,7 @@ cmd buf flush ddd bytes
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> .
SMTP<< 250 OK id=10HmbG-000000005vi-0000
+127.0.0.1 in hosts_noproxy_tls? no (end of list)
LOG: MAIN
=> usera@??? R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbG-000000005vi-0000"
LOG: MAIN
@@ -199,7 +205,8 @@ LOG: queue_run MAIN
>>>>>>>>>>>>>>>> Exim pid=p1256 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1257 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1258 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>

-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ connected
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -213,6 +220,7 @@ cmd buf flush ddd bytes
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
   SMTP<< 220 TLS go ahead
+127.0.0.1 in tls_verify_cert_hostnames? no (end of list)
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello localhost [127.0.0.1]
@@ -254,6 +262,7 @@ dropping to exim gid; retaining priv uid
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
   SMTP<< 220 TLS go ahead
+127.0.0.1 in tls_verify_cert_hostnames? no (end of list)
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello localhost [127.0.0.1]
@@ -295,6 +304,7 @@ dropping to exim gid; retaining priv uid
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
   SMTP<< 220 TLS go ahead
+127.0.0.1 in tls_verify_cert_hostnames? no (end of list)
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello localhost [127.0.0.1]
diff --git a/test/stderr/1160 b/test/stderr/1160
index 5683ab0d7..2cbfc2785 100644
--- a/test/stderr/1160
+++ b/test/stderr/1160
@@ -1,7 +1,8 @@
 LOG: queue_run MAIN
   Start queue run: pid=p1234 -qf
 delivering 10HmaX-000000005vi-0000 (queue run pid p1234)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+connected
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> EHLO helo.data.changed
   SMTP<< 250-myhost.test.ex Hello helo.data.changed [127.0.0.1]
@@ -28,7 +29,8 @@ LOG: MAIN
 LOG: MAIN
   Completed
 delivering 10HmaY-000000005vi-0000 (queue run pid p1234)
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+connected
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> EHLO helo.data.changed
   SMTP<< 250-myhost.test.ex Hello helo.data.changed [127.0.0.1]
@@ -56,7 +58,8 @@ LOG: MAIN
   => CALLER@??? R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-000000005vi-0000"
 LOG: MAIN
   -> xyz@??? R=client T=send_to_server1 H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbA-000000005vi-0000"
-Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ...  connected
+Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ...
+connected
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> EHLO myhost.test.ex
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
diff --git a/test/stderr/2135 b/test/stderr/2135
index 66f4d48b6..220d48670 100644
--- a/test/stderr/2135
+++ b/test/stderr/2135
@@ -3,7 +3,8 @@ configuration file is TESTSUITE/test-config
 admin user
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...  connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ connected
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
@@ -17,6 +18,7 @@ cmd buf flush ddd bytes
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
   SMTP<< 220 TLS go ahead
+127.0.0.1 in tls_verify_cert_hostnames? no (end of list)
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello localhost [127.0.0.1]
diff --git a/test/stderr/2201 b/test/stderr/2201
index cc1a37aed..30f49ff93 100644
--- a/test/stderr/2201
+++ b/test/stderr/2201
@@ -21,15 +21,15 @@ routing test.ex@???
 --------> r0 router <--------
 local_part=test.ex domain=test.ex
 checking senders
-CALLER@??? in "a@???"?
+CALLER@??? in senders?
  list element: a@???
  address match test: subject=CALLER@??? pattern=a@???
-CALLER@??? in "a@???"? no (end of list)
+CALLER@??? in senders? no (end of list)
 r0 router skipped: senders mismatch
 --------> r1 router <--------
 local_part=test.ex domain=test.ex
 checking domains
-test.ex in "dnsdb;test.ex"?
+test.ex in domains?
  list element: dnsdb;test.ex
  search_open: dnsdb "NULL"
  search_find: file="NULL"
@@ -44,9 +44,9 @@ DNS lookup of test.ex (TXT) using fakens
 DNS lookup of test.ex (TXT) succeeded
  creating new cache entry
  lookup yielded: A░TXT░record░for░test.ex.
- test.ex in "dnsdb;test.ex"? yes (matched "dnsdb;test.ex")
+ test.ex in domains? yes (matched "dnsdb;test.ex")
 checking local_parts
-test.ex in "dnsdb;test.ex"?
+test.ex in local_parts?
  list element: dnsdb;test.ex
  search_open: dnsdb "NULL"
    cached open
@@ -57,7 +57,7 @@ test.ex in "dnsdb;test.ex"?
    type=dnsdb key="test.ex" opts=NULL
  cached data used for lookup of test.ex
  lookup yielded: A░TXT░record░for░test.ex.
- test.ex in "dnsdb;test.ex"? yes (matched "dnsdb;test.ex")
+ test.ex in local_parts? yes (matched "dnsdb;test.ex")
 calling r1 router
 r1 router called for test.ex@???
   domain = test.ex
@@ -78,15 +78,15 @@ routing unknown@???
 --------> r0 router <--------
 local_part=unknown domain=test.ex
 checking senders
-CALLER@??? in "a@???"?
+CALLER@??? in senders?
  list element: a@???
  address match test: subject=CALLER@??? pattern=a@???
-CALLER@??? in "a@???"? no (end of list)
+CALLER@??? in senders? no (end of list)
 r0 router skipped: senders mismatch
 --------> r1 router <--------
 local_part=unknown domain=test.ex
 checking domains
-test.ex in "dnsdb;test.ex"?
+test.ex in domains?
  list element: dnsdb;test.ex
  search_open: dnsdb "NULL"
    cached open
@@ -97,9 +97,9 @@ test.ex in "dnsdb;test.ex"?
    type=dnsdb key="test.ex" opts=NULL
  cached data used for lookup of test.ex
  lookup yielded: A░TXT░record░for░test.ex.
- test.ex in "dnsdb;test.ex"? yes (matched "dnsdb;test.ex")
+ test.ex in domains? yes (matched "dnsdb;test.ex")
 checking local_parts
-unknown in "dnsdb;unknown"?
+unknown in local_parts?
  list element: dnsdb;unknown
  search_open: dnsdb "NULL"
    cached open
@@ -118,12 +118,12 @@ faking res_search(TXT) response length as 65535
  writing neg-cache entry for unknown-TXT-xxxx, ttl 3000
  creating new cache entry
  lookup failed
-unknown in "dnsdb;unknown"? no (end of list)
+unknown in local_parts? no (end of list)
 r1 router skipped: local_parts mismatch
 --------> r2 router <--------
 local_part=unknown domain=test.ex
 checking domains
-test.ex in "dnsdb;test.ex"?
+test.ex in domains?
  list element: dnsdb;test.ex
  search_open: dnsdb "NULL"
    cached open
@@ -134,9 +134,9 @@ test.ex in "dnsdb;test.ex"?
    type=dnsdb key="test.ex" opts=NULL
  cached data used for lookup of test.ex
  lookup yielded: A░TXT░record░for░test.ex.
- test.ex in "dnsdb;test.ex"? yes (matched "dnsdb;test.ex")
+ test.ex in domains? yes (matched "dnsdb;test.ex")
 checking senders
-CALLER@??? in "dnsdb;A=myhost.test.ex"?
+CALLER@??? in senders?
  list element: dnsdb;A=myhost.test.ex
  address match test: subject=CALLER@??? pattern=dnsdb;A=myhost.test.ex
  search_open: dnsdb "NULL"
@@ -152,7 +152,7 @@ DNS lookup of myhost.test.ex (A) using fakens
 DNS lookup of myhost.test.ex (A) succeeded
  creating new cache entry
  lookup yielded: V4NET.10.10.10
- CALLER@??? in "dnsdb;A=myhost.test.ex"? yes (matched "dnsdb;A=myhost.test.ex")
+ CALLER@??? in senders? yes (matched "dnsdb;A=myhost.test.ex")
 calling r2 router
 r2 router called for unknown@???
   domain = test.ex
@@ -231,6 +231,7 @@ p1238 Process p1238 is handling incoming connection from [127.0.0.1]
 p1238 Process p1238 is ready for new message
 1 SMTP accept process running
 Listening...
+p1238 host in chunking_advertise_hosts? no (end of list)
 p1238 dnslists check: rbl.test.ex/V4NET.11.12.14
 p1238 new DNS lookup for 14.12.11.V4NET.rbl.test.ex
 p1238 dnslists: wrote cache entry, ttl=2
diff --git a/test/stderr/2202 b/test/stderr/2202
index 9cd2772a2..08fccbd17 100644
--- a/test/stderr/2202
+++ b/test/stderr/2202
@@ -67,6 +67,8 @@ looking up host name for ip4.ip4.ip4.ip4
 DNS lookup of ip4-reverse.in-addr.arpa (PTR) using fakens
 DNS lookup of ip4-reverse.in-addr.arpa (PTR) succeeded
 IP address lookup yielded "the.local.host.name"
+ the.local.host.name not in empty list (option unset? cannot trace name)
+ the.local.host.name not in empty list (option unset? cannot trace name)
 DNS lookup of the.local.host.name (A) using fakens
 DNS lookup of the.local.host.name (A) succeeded
 local host found for non-MX address
diff --git a/test/stderr/2600 b/test/stderr/2600
index 3dec6dde1..ae1208ca6 100644
--- a/test/stderr/2600
+++ b/test/stderr/2600
@@ -193,7 +193,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'"?
-   ╎list element: sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'
+   ╎list element: sqlite,file=TESTSUITE/aux-fixed/sqlitedb;░select░*░from░them░where░id='10.0.0.0'
    ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb"
    ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb"
    ╎  key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb"
@@ -234,7 +234,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'"?
-   ╎list element: sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'
+   ╎list element: sqlite,file=TESTSUITE/aux-fixed/sqlitedb;░select░*░from░them░where░id='10.0.0.0'
    ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb"
    ╎  cached open
    ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb"
@@ -321,7 +321,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"?
-   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'
+   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.0.0.0'
    ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb"
    ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb"
    ╎  key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts=NULL
@@ -362,7 +362,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"?
-   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'
+   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.0.0.0'
    ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb"
    ╎  cached open
    ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb"
@@ -449,7 +449,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"?
-   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'
+   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.10.10.10'
    ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb"
    ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb"
    ╎  key="select * from them where id='10.10.10.10'" partial=-1 affix=NULL starflags=0 opts=NULL
@@ -485,7 +485,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"?
-   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'
+   ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.10.10.10'
    ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb"
    ╎  cached open
    ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb"
diff --git a/test/stderr/2610 b/test/stderr/2610
index 1dde7606f..c76b30338 100644
--- a/test/stderr/2610
+++ b/test/stderr/2610
@@ -574,7 +574,7 @@ close MYSQL connection: 127.0.0.1:PORT_N/test/root
 01:01:01 p1235   ╰─────result: net-mysql;select░*░from░them░where░id='c'
 01:01:01 p1235              ╰──(tainted, quoted:mysql)
 01:01:01 p1235  host in "net-mysql;select * from them where id='c'"?
-01:01:01 p1235   list element: net-mysql;select * from them where id='c'
+01:01:01 p1235   list element: net-mysql;select░*░from░them░where░id='c'
 01:01:01 p1235   search_open: mysql "NULL"
 01:01:01 p1235     cached open
 01:01:01 p1235   search_find: file="NULL"
@@ -612,7 +612,7 @@ close MYSQL connection: 127.0.0.1:PORT_N/test/root
 01:01:01 p1235   ╰─────result: <&░net-mysql;servers=127.0.0.1::PORT_N/test/root/pass;░select░*░from░them░where░id='c'
 01:01:01 p1235              ╰──(tainted, quoted:mysql)
 01:01:01 p1235  host in "<& net-mysql;servers=127.0.0.1::PORT_N/test/root/pass; select * from them where id='c'"?
-01:01:01 p1235   list element: net-mysql;servers=127.0.0.1::PORT_N/test/root/pass; select * from them where id='c'
+01:01:01 p1235   list element: net-mysql;servers=127.0.0.1::PORT_N/test/root/pass;░select░*░from░them░where░id='c'
 01:01:01 p1235   search_open: mysql "NULL"
 01:01:01 p1235     cached open
 01:01:01 p1235   search_find: file="NULL"
@@ -652,7 +652,7 @@ close MYSQL connection: 127.0.0.1:PORT_N/test/root
 01:01:01 p1235   ╰─────result: <&░net-mysql,servers=127.0.0.1::PORT_N/test/root/pass;░select░*░from░them░where░id='c'
 01:01:01 p1235              ╰──(tainted, quoted:mysql)
 01:01:01 p1235  host in "<& net-mysql,servers=127.0.0.1::PORT_N/test/root/pass; select * from them where id='c'"?
-01:01:01 p1235   list element: net-mysql,servers=127.0.0.1::PORT_N/test/root/pass; select * from them where id='c'
+01:01:01 p1235   list element: net-mysql,servers=127.0.0.1::PORT_N/test/root/pass;░select░*░from░them░where░id='c'
 01:01:01 p1235   search_open: mysql "NULL"
 01:01:01 p1235     cached open
 01:01:01 p1235   search_find: file="NULL"
@@ -693,7 +693,7 @@ close MYSQL connection: 127.0.0.1:PORT_N/test/root
 01:01:01 p1235     ╎├───expanded: net-mysql;select░*░from░them░where░id='$sender_host_address'
 01:01:01 p1235     ╎╰─────result: net-mysql;select░*░from░them░where░id='10.0.0.0'
 01:01:01 p1235     host in "net-mysql;select * from them where id='10.0.0.0'"?
-01:01:01 p1235     ╎list element: net-mysql;select * from them where id='10.0.0.0'
+01:01:01 p1235     ╎list element: net-mysql;select░*░from░them░where░id='10.0.0.0'
 01:01:01 p1235     ╎search_open: mysql "NULL"
 01:01:01 p1235     ╎  cached open
 01:01:01 p1235     ╎search_find: file="NULL"
diff --git a/test/stderr/2620 b/test/stderr/2620
index d4ae1bd4e..6f244223d 100644
--- a/test/stderr/2620
+++ b/test/stderr/2620
@@ -356,7 +356,7 @@ processing "warn" (TESTSUITE/test-config 41)
 check set acl_m0 = ok:   hostlist
 check hosts = net-pgsql;select * from them where id='${quote_pgsql:$local_part}'
 host in "net-pgsql;select * from them where id='c'"?
- list element: net-pgsql;select * from them where id='c'
+ list element: net-pgsql;select░*░from░them░where░id='c'
  search_open: pgsql "NULL"
    cached open
  search_find: file="NULL"
@@ -377,7 +377,7 @@ processing "warn" (TESTSUITE/test-config 44)
 check set acl_m0 = FAIL: hostlist
 check hosts = <& net-pgsql;servers=localhost::PORT_N/test/CALLER/; select * from them where id='${quote_pgsql:$local_part}'
 host in "<& net-pgsql;servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'"?
- list element: net-pgsql;servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'
+ list element: net-pgsql;servers=localhost::PORT_N/test/CALLER/;░select░*░from░them░where░id='c'
  search_open: pgsql "NULL"
    cached open
  search_find: file="NULL"
@@ -400,7 +400,7 @@ processing "warn" (TESTSUITE/test-config 49)
 check set acl_m0 = FAIL: hostlist
 check hosts = <& net-pgsql,servers=localhost::PORT_N/test/CALLER/; select * from them where id='${quote_pgsql:$local_part}'
 host in "<& net-pgsql,servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'"?
- list element: net-pgsql,servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'
+ list element: net-pgsql,servers=localhost::PORT_N/test/CALLER/;░select░*░from░them░where░id='c'
  search_open: pgsql "NULL"
    cached open
  search_find: file="NULL"
@@ -433,7 +433,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "net-pgsql;select * from them where id='10.0.0.0'"?
-   ╎list element: net-pgsql;select * from them where id='10.0.0.0'
+   ╎list element: net-pgsql;select░*░from░them░where░id='10.0.0.0'
    ╎search_open: pgsql "NULL"
    ╎  cached open
    ╎search_find: file="NULL"
@@ -551,7 +551,7 @@ processing "warn" (TESTSUITE/test-config 41)
 check set acl_m0 = ok:   hostlist
 check hosts = net-pgsql;select * from them where id='${quote_pgsql:$local_part}'
 host in "net-pgsql;select * from them where id='c'"?
- list element: net-pgsql;select * from them where id='c'
+ list element: net-pgsql;select░*░from░them░where░id='c'
  search_open: pgsql "NULL"
    cached open
  search_find: file="NULL"
@@ -567,7 +567,7 @@ processing "warn" (TESTSUITE/test-config 44)
 check set acl_m0 = FAIL: hostlist
 check hosts = <& net-pgsql;servers=localhost::PORT_N/test/CALLER/; select * from them where id='${quote_pgsql:$local_part}'
 host in "<& net-pgsql;servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'"?
- list element: net-pgsql;servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'
+ list element: net-pgsql;servers=localhost::PORT_N/test/CALLER/;░select░*░from░them░where░id='c'
  search_open: pgsql "NULL"
    cached open
  search_find: file="NULL"
@@ -590,7 +590,7 @@ processing "warn" (TESTSUITE/test-config 49)
 check set acl_m0 = FAIL: hostlist
 check hosts = <& net-pgsql,servers=localhost::PORT_N/test/CALLER/; select * from them where id='${quote_pgsql:$local_part}'
 host in "<& net-pgsql,servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'"?
- list element: net-pgsql,servers=localhost::PORT_N/test/CALLER/; select * from them where id='c'
+ list element: net-pgsql,servers=localhost::PORT_N/test/CALLER/;░select░*░from░them░where░id='c'
  search_open: pgsql "NULL"
    cached open
  search_find: file="NULL"
@@ -623,7 +623,7 @@ host in "+relay_hosts"?
  list element: +relay_hosts
   start sublist relay_hosts
   host in "net-pgsql;select * from them where id='10.0.0.0'"?
-   ╎list element: net-pgsql;select * from them where id='10.0.0.0'
+   ╎list element: net-pgsql;select░*░from░them░where░id='10.0.0.0'
    ╎search_open: pgsql "NULL"
    ╎  cached open
    ╎search_find: file="NULL"
diff --git a/test/stderr/3208 b/test/stderr/3208
index 441efed4f..7e9e4c3a6 100644
--- a/test/stderr/3208
+++ b/test/stderr/3208
@@ -33,10 +33,13 @@

>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
->>>   list element: !*relay.ex
->>>   list element: test.ex
->>>   test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
+>>>    ╎list element: !*relay.ex
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -74,10 +77,13 @@ LOG: H=(remote.host) [V4NET.0.0.1] F=<user@???> temporarily rejected RCP
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
->>>   list element: !*relay.ex
->>>   list element: test.ex
->>>   test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
+>>>    ╎list element: !*relay.ex
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -102,21 +108,27 @@ LOG: H=(remote.host) [V4NET.0.0.1] F=<user@???> temporarily rejected RCP
>>> check domains = +local_domains
>>> yesrelay.ex in "+local_domains"?
>>> list element: +local_domains

->>>  yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
->>>   list element: !*relay.ex
->>>   yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   start sublist local_domains
+>>>    yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
+>>>    ╎list element: !*relay.ex
+>>>    ╎yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'yesrelay.ex' value '*relay.ex'

>>> yesrelay.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 29)
>>> check domains = +relay_domains
>>> yesrelay.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
->>>   list element: test.ex
->>>   list element: testhack.ex
->>>   list element: testhack2.ex
->>>   list element: yesrelay.ex
->>>   yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? yes (matched "yesrelay.ex")
+>>>   start sublist relay_domains
+>>>    yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: testhack.ex
+>>>    ╎list element: testhack2.ex
+>>>    ╎list element: yesrelay.ex
+>>>    ╎yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? yes (matched "yesrelay.ex")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key 'yesrelay.ex' value 'yesrelay.ex'

>>> yesrelay.ex in "+relay_domains"? yes (matched "+relay_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -134,22 +146,27 @@ LOG: H=(remote.host) [V4NET.0.0.1] F=<user@???> temporarily rejected RCP
>>> check domains = +local_domains
>>> norelay.ex in "+local_domains"?
>>> list element: +local_domains

->>>  norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
->>>   list element: !*relay.ex
->>>   norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   start sublist local_domains
+>>>    norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
+>>>    ╎list element: !*relay.ex
+>>>    ╎norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'norelay.ex' value '*relay.ex'

>>> norelay.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 29)
>>> check domains = +relay_domains
>>> norelay.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
->>>   list element: test.ex
->>>   list element: testhack.ex
->>>   list element: testhack2.ex
->>>   list element: yesrelay.ex
->>>   list element: testdb;defer
->>>  norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? list match deferred for testdb;defer
+>>>   start sublist relay_domains
+>>>    norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: testhack.ex
+>>>    ╎list element: testhack2.ex
+>>>    ╎list element: yesrelay.ex
+>>>    ╎list element: testdb;defer
+>>>    norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? list match deferred for testdb;defer
+>>>   end sublist relay_domains

>>> norelay.ex in "+relay_domains"? list match deferred for +relay_domains
>>> accept: condition test deferred in ACL "check_recipient"

LOG: H=(remote.host) [V4NET.0.0.1] F=<user@???> temporarily rejected RCPT <a@???>: testdb lookup forced DEFER
@@ -172,21 +189,27 @@ LOG: H=(remote.host) [V4NET.0.0.1] F=<user@???> temporarily rejected RCP
>>> check domains = +local_domains
>>> yesrelay.ex in "+local_domains"?
>>> list element: +local_domains

->>>  yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
->>>   list element: !*relay.ex
->>>   yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   start sublist local_domains
+>>>    yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
+>>>    ╎list element: !*relay.ex
+>>>    ╎yesrelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'yesrelay.ex' value '*relay.ex'

>>> yesrelay.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 29)
>>> check domains = +relay_domains
>>> yesrelay.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
->>>   list element: test.ex
->>>   list element: testhack.ex
->>>   list element: testhack2.ex
->>>   list element: yesrelay.ex
->>>   yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? yes (matched "yesrelay.ex")
+>>>   start sublist relay_domains
+>>>    yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: testhack.ex
+>>>    ╎list element: testhack2.ex
+>>>    ╎list element: yesrelay.ex
+>>>    ╎yesrelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? yes (matched "yesrelay.ex")
+>>>   end sublist relay_domains
+>>>  data from lookup saved for cache for +relay_domains: key 'yesrelay.ex' value 'yesrelay.ex'

>>> yesrelay.ex in "+relay_domains"? yes (matched "+relay_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -209,22 +232,27 @@ LOG: H=(remote.host) [V4NET.0.0.1] F=<user@???> temporarily rejected RCP
>>> check domains = +local_domains
>>> norelay.ex in "+local_domains"?
>>> list element: +local_domains

->>>  norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
->>>   list element: !*relay.ex
->>>   norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   start sublist local_domains
+>>>    norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"?
+>>>    ╎list element: !*relay.ex
+>>>    ╎norelay.ex in "!*relay.ex : test.ex : testhack.ex : testhack2.ex : testdb;defer"? no (matched "!*relay.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'norelay.ex' value '*relay.ex'

>>> norelay.ex in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 29)
>>> check domains = +relay_domains
>>> norelay.ex in "+relay_domains"?
>>> list element: +relay_domains

->>>  norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
->>>   list element: test.ex
->>>   list element: testhack.ex
->>>   list element: testhack2.ex
->>>   list element: yesrelay.ex
->>>   list element: testdb;defer
->>>  norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? list match deferred for testdb;defer
+>>>   start sublist relay_domains
+>>>    norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: testhack.ex
+>>>    ╎list element: testhack2.ex
+>>>    ╎list element: yesrelay.ex
+>>>    ╎list element: testdb;defer
+>>>    norelay.ex in "test.ex : testhack.ex : testhack2.ex : yesrelay.ex : testdb;defer"? list match deferred for testdb;defer
+>>>   end sublist relay_domains

>>> norelay.ex in "+relay_domains"? list match deferred for +relay_domains
>>> accept: condition test deferred in ACL "check_recipient"

 LOG: H=(remote.host) [V4NET.0.0.1] F=<user@???> temporarily rejected RCPT <a%norelay.ex@???>: testdb lookup forced DEFER
diff --git a/test/stderr/3210 b/test/stderr/3210
index 48dfeaaa3..65bf3955b 100644
--- a/test/stderr/3210
+++ b/test/stderr/3210
@@ -18,8 +18,8 @@ routing userx@???
 --------> r1 router <--------
 local_part=userx domain=test.ex
 checking domains
-test.ex in "! +local_domains"?
- list element: ! +local_domains
+test.ex in domains?
+ list element: !░+local_domains
   start sublist local_domains
    test.ex in "+defer_lookup : test.ex"?
    ╎list element: +defer_lookup
@@ -39,7 +39,7 @@ test.ex in "! +local_domains"?
    ╎ end sublist defer_lookup
    test.ex in "+defer_lookup : test.ex"? list match deferred for +defer_lookup
   end sublist local_domains
-test.ex in "! +local_domains"? list match deferred for ! +local_domains
+test.ex in domains? list match deferred for ! +local_domains
 domains check lookup or other defer
 search_tidyup called

>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>

diff --git a/test/stderr/3211 b/test/stderr/3211
index 54f791dc4..0b8f8c0cf 100644
--- a/test/stderr/3211
+++ b/test/stderr/3211
@@ -19,10 +19,12 @@
>>> calling skipped router
>>> skipped router declined for userx@???
>>> calling temp router

->>> test.again.dns in "*"?
+>>> test.again.dns in dnssec_require_domains? no (option unset)
+>>> test.again.dns in dnssec_request_domains?
>>> list element: *

->>> test.again.dns in "*"? yes (matched "*")
+>>> test.again.dns in dnssec_request_domains? yes (matched "*")
>>> test.again.dns in dns_again_means_nonexist? no (option unset)

+>>> test.again.dns not in empty list (option unset? cannot trace name)
>>> temp router: defer for userx@???
>>> message: host lookup did not complete
>>> ----------- end verify ------------

@@ -45,14 +47,16 @@ LOG: H=(test) [1.2.3.4] F=<userx@???> temporarily rejected RCPT <userx@test.
>>> check verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing r1-userx@???

->>> test.again.dns in "!testdb;fail"?
+>>> test.again.dns in domains?
>>> list element: !testdb;fail

->>> test.again.dns in "!testdb;fail"? yes (end of list)
+>>> test.again.dns in domains? yes (end of list)
>>> calling r1 router

->>> test.again.dns in "*"?
+>>> test.again.dns in dnssec_require_domains? no (option unset)
+>>> test.again.dns in dnssec_request_domains?
>>> list element: *

->>> test.again.dns in "*"? yes (matched "*")
+>>> test.again.dns in dnssec_request_domains? yes (matched "*")
>>> test.again.dns in dns_again_means_nonexist? no (option unset)

+>>> test.again.dns not in empty list (option unset? cannot trace name)
>>> r1 router: defer for r1-userx@???
>>> message: host lookup did not complete
>>> ----------- end verify ------------

diff --git a/test/stderr/3400 b/test/stderr/3400
index c8b9ba1e2..27eebf0a1 100644
--- a/test/stderr/3400
+++ b/test/stderr/3400
@@ -28,9 +28,11 @@
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

->>>  host in "10.0.0.1"?
->>>   list element: 10.0.0.1
->>>  host in "10.0.0.1"? no (end of list)
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    host in "10.0.0.1"? no (end of list)
+>>>   end sublist auth_hosts

>>> host in "+auth_hosts"? no (end of list)
>>> deny: condition test failed in ACL "check_vrfy"
>>> processing "accept" (TESTSUITE/test-config 70)

@@ -38,15 +40,18 @@
>>> end of ACL "check_vrfy": ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "userx"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?

>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> using ACL "check_expn"

@@ -54,6 +59,9 @@
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached no match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? no (end of list)
>>> deny: condition test failed in ACL "check_expn"
>>> processing "accept" (TESTSUITE/test-config 64)

@@ -65,15 +73,18 @@
>>> end of ACL "check_expn": ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing list@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> list in "userx"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> list in local_parts?

>>> list element: userx

->>> list in "userx"? no (end of list)
+>>> list in local_parts? no (end of list)
>>> no more routers

LOG: ETRN #abcd received from (test) [10.0.0.2]
>>> using ACL "check_etrn"

@@ -81,6 +92,9 @@ LOG: ETRN #abcd received from (test) [10.0.0.2]
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached no match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? no (end of list)
>>> deny: condition test failed in ACL "check_etrn"
>>> processing "require" (TESTSUITE/test-config 56)

@@ -128,9 +142,11 @@ LOG: H=(test) [10.0.0.2] Warning: accepted ETRN #abcd
>>> host in pipelining_advertise_hosts? yes (matched "*")
>>> host in auth_advertise_hosts?
>>> list element: +auth_hosts

->>>  host in "10.0.0.1"?
->>>   list element: 10.0.0.1
->>>   host in "10.0.0.1"? yes (matched "10.0.0.1")
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    ╎host in "10.0.0.1"? yes (matched "10.0.0.1")
+>>>   end sublist auth_hosts

>>> host in auth_advertise_hosts? yes (matched "+auth_hosts")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)

@@ -142,6 +158,9 @@ LOG: H=(test) [10.0.0.2] Warning: accepted ETRN #abcd
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -153,6 +172,9 @@ LOG: H=(test.host) [10.0.0.1] rejected VRFY userx@???: authentication requir
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -165,6 +187,9 @@ LOG: ETRN abcd received from (test.host) [10.0.0.1]
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -194,6 +219,9 @@ LOG: H=(test.host) [10.0.0.1] rejected ETRN abcd: authentication required
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -228,6 +256,9 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> rejected RCPT <userx@te
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -239,9 +270,12 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> rejected RCPT <userx@te
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -268,6 +302,9 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> rejected RCPT <userx@te
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -279,29 +316,35 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> rejected RCPT <userx@te
>>> check domains = +local_domains
>>> cus.cam.ac.uk in "+local_domains"?
>>> list element: +local_domains

->>>  cus.cam.ac.uk in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>  cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> cus.cam.ac.uk in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 45)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

->>>  host in "10.0.0.4"?
->>>   list element: 10.0.0.4
->>>  host in "10.0.0.4"? no (end of list)
+>>>   start sublist relay_hosts
+>>>    host in "10.0.0.4"?
+>>>    ╎list element: 10.0.0.4
+>>>    host in "10.0.0.4"? no (end of list)
+>>>   end sublist relay_hosts

>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 46)
>>> check hosts = +auth_relay_hosts
>>> host in "+auth_relay_hosts"?
>>> list element: +auth_relay_hosts

->>>  host in "10.0.0.3 : 10.0.0.4"?
->>>   list element: 10.0.0.3
->>>   list element: 10.0.0.4
->>>  host in "10.0.0.3 : 10.0.0.4"? no (end of list)
+>>>   start sublist auth_relay_hosts
+>>>    host in "10.0.0.3 : 10.0.0.4"?
+>>>    ╎list element: 10.0.0.3
+>>>    ╎list element: 10.0.0.4
+>>>    host in "10.0.0.3 : 10.0.0.4"? no (end of list)
+>>>   end sublist auth_relay_hosts

>>> host in "+auth_relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 50)

@@ -314,6 +357,9 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> A=mylogin rejected RCPT
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -326,15 +372,18 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> A=mylogin rejected RCPT
>>> end of ACL "check_vrfy": ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "userx"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?

>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling localuser router
>>> routed by localuser router
>>> using ACL "check_expn"

@@ -342,6 +391,9 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> A=mylogin rejected RCPT
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -358,15 +410,18 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@???> A=mylogin rejected RCPT
>>> end of ACL "check_expn": ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing list@???

->>> test.ex in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>>  test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> list in "userx"?
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> list in local_parts?

>>> list element: userx

->>> list in "userx"? no (end of list)
+>>> list in local_parts? no (end of list)
>>> no more routers

LOG: ETRN #abcd received from (test.host) [10.0.0.1]
>>> using ACL "check_etrn"

@@ -374,6 +429,9 @@ LOG: ETRN #abcd received from (test.host) [10.0.0.1]
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -426,17 +484,23 @@ LOG: H=(test.host) [10.0.0.1] Warning: accepted ETRN #abcd
>>> host in pipelining_advertise_hosts? yes (matched "*")
>>> host in auth_advertise_hosts?
>>> list element: +auth_hosts

->>>  host in "10.0.0.1"?
->>>   list element: 10.0.0.1
->>>  host in "10.0.0.1"? no (end of list)
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    host in "10.0.0.1"? no (end of list)
+>>>   end sublist auth_hosts

>>> list element: !+relay_hosts

->>>  host in "10.0.0.4"?
->>>   list element: 10.0.0.4
->>>  host in "10.0.0.4"? no (end of list)
+>>>   start sublist relay_hosts
+>>>    host in "10.0.0.4"?
+>>>    ╎list element: 10.0.0.4
+>>>    host in "10.0.0.4"? no (end of list)
+>>>   end sublist relay_hosts

>>> list element: +auth_relay_hosts

->>>  host in "10.0.0.3 : 10.0.0.4"?
->>>   list element: 10.0.0.3
->>>   host in "10.0.0.3 : 10.0.0.4"? yes (matched "10.0.0.3")
+>>>   start sublist auth_relay_hosts
+>>>    host in "10.0.0.3 : 10.0.0.4"?
+>>>    ╎list element: 10.0.0.3
+>>>    ╎host in "10.0.0.3 : 10.0.0.4"? yes (matched "10.0.0.3")
+>>>   end sublist auth_relay_hosts

>>> host in auth_advertise_hosts? yes (matched "+auth_relay_hosts")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)

@@ -463,28 +527,39 @@ LOG: H=(test.host) [10.0.0.1] Warning: accepted ETRN #abcd
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached no match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? no (end of list)
>>> deny: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 44)
>>> check domains = +local_domains
>>> cus.cam.ac.uk in "+local_domains"?
>>> list element: +local_domains

->>>  cus.cam.ac.uk in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>  cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> cus.cam.ac.uk in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 45)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

+>>> start sublist relay_hosts
+>>> cached no match for +relay_hosts
+>>> cached lookup data = NULL
>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 46)
>>> check hosts = +auth_relay_hosts
>>> host in "+auth_relay_hosts"?
>>> list element: +auth_relay_hosts

+>>> start sublist auth_relay_hosts
+>>> cached yes match for +auth_relay_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_relay_hosts"? yes (matched "+auth_relay_hosts" - cached)
>>> message: authentication required
>>> check authenticated = *

@@ -519,28 +594,39 @@ LOG: H=(test.host) [10.0.0.3] F=<junk@???> rejected RCPT <userx@cu
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached no match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? no (end of list)
>>> deny: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 44)
>>> check domains = +local_domains
>>> cus.cam.ac.uk in "+local_domains"?
>>> list element: +local_domains

->>>  cus.cam.ac.uk in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>  cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   start sublist local_domains
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains

>>> cus.cam.ac.uk in "+local_domains"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 45)
>>> check hosts = +relay_hosts
>>> host in "+relay_hosts"?
>>> list element: +relay_hosts

+>>> start sublist relay_hosts
+>>> cached no match for +relay_hosts
+>>> cached lookup data = NULL
>>> host in "+relay_hosts"? no (end of list)
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 46)
>>> check hosts = +auth_relay_hosts
>>> host in "+auth_relay_hosts"?
>>> list element: +auth_relay_hosts

+>>> start sublist auth_relay_hosts
+>>> cached yes match for +auth_relay_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_relay_hosts"? yes (matched "+auth_relay_hosts" - cached)
>>> message: authentication required
>>> check authenticated = *

@@ -579,13 +665,17 @@ LOG: H=(test.host) [10.0.0.3] F=<junk@???> rejected RCPT <userx@cu
>>> host in pipelining_advertise_hosts? yes (matched "*")
>>> host in auth_advertise_hosts?
>>> list element: +auth_hosts

->>>  host in "10.0.0.1"?
->>>   list element: 10.0.0.1
->>>  host in "10.0.0.1"? no (end of list)
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    host in "10.0.0.1"? no (end of list)
+>>>   end sublist auth_hosts

>>> list element: !+relay_hosts

->>>  host in "10.0.0.4"?
->>>   list element: 10.0.0.4
->>>   host in "10.0.0.4"? yes (matched "10.0.0.4")
+>>>   start sublist relay_hosts
+>>>    host in "10.0.0.4"?
+>>>    ╎list element: 10.0.0.4
+>>>    ╎host in "10.0.0.4"? yes (matched "10.0.0.4")
+>>>   end sublist relay_hosts

>>> host in auth_advertise_hosts? no (matched "!+relay_hosts")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)

diff --git a/test/stderr/3404 b/test/stderr/3404
index cf2811e62..d2fb903ad 100644
--- a/test/stderr/3404
+++ b/test/stderr/3404
@@ -1,7 +1,8 @@
LOG: MAIN
<= CALLER@??? U=CALLER P=local S=sss
delivering 10HmaX-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 ESMTP
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
@@ -30,7 +31,8 @@ LOG: MAIN
LOG: MAIN
<= CALLER@??? U=CALLER P=local S=sss
delivering 10HmaY-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 ESMTP
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
@@ -59,7 +61,8 @@ LOG: MAIN
LOG: MAIN
<= CALLER@??? U=CALLER P=local S=sss
delivering 10HmaZ-000000005vi-0000
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ...
+connected
SMTP<< 220 ESMTP
SMTP>> EHLO myhost.test.ex
SMTP<< 250-OK
diff --git a/test/stderr/3408 b/test/stderr/3408
index 4a1132fec..9ba9b2e1f 100644
--- a/test/stderr/3408
+++ b/test/stderr/3408
@@ -154,9 +154,9 @@ LOG: 10HmaX-000000005vi-0000 <= postmaster@??? H=(exim.test.ex) [V4NET.
>>> routing userx@???
>>> calling system_aliases router
>>> system_aliases router declined for userx@???

->>> userx in "userx"?
+>>> userx in local_parts?
>>> list element: userx

->>> userx in "userx"? yes (matched "userx")
+>>> userx in local_parts? yes (matched "userx")
>>> calling list router
>>> routed by list router
>>> ----------- end verify ------------

@@ -165,9 +165,12 @@ LOG: 10HmaX-000000005vi-0000 <= postmaster@??? H=(exim.test.ex) [V4NET.
>>> check domains = +local_domains
>>> exim.test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  exim.test.ex in "exim.test.ex"?
->>>   list element: exim.test.ex
->>>   exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   start sublist local_domains
+>>>    exim.test.ex in "exim.test.ex"?
+>>>    ╎list element: exim.test.ex
+>>>    ╎exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'exim.test.ex' value 'exim.test.ex'

>>> exim.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

diff --git a/test/stderr/3500 b/test/stderr/3500
index 1e6f32852..997fd6090 100644
--- a/test/stderr/3500
+++ b/test/stderr/3500
@@ -18,14 +18,18 @@
>>> host in pipelining_advertise_hosts? yes (matched "*")
>>> host in auth_advertise_hosts?
>>> list element: +auth_hosts

->>>  host in "10.0.0.1 : 10.0.0.5"?
->>>   list element: 10.0.0.1
->>>   list element: 10.0.0.5
->>>  host in "10.0.0.1 : 10.0.0.5"? no (end of list)
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1 : 10.0.0.5"?
+>>>    ╎list element: 10.0.0.1
+>>>    ╎list element: 10.0.0.5
+>>>    host in "10.0.0.1 : 10.0.0.5"? no (end of list)
+>>>   end sublist auth_hosts

>>> list element: !+relay_hosts

->>>  host in "10.0.0.4"?
->>>   list element: 10.0.0.4
->>>   host in "10.0.0.4"? yes (matched "10.0.0.4")
+>>>   start sublist relay_hosts
+>>>    host in "10.0.0.4"?
+>>>    ╎list element: 10.0.0.4
+>>>    ╎host in "10.0.0.4"? yes (matched "10.0.0.4")
+>>>   end sublist relay_hosts

>>> host in auth_advertise_hosts? no (matched "!+relay_hosts")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)

@@ -49,9 +53,11 @@
>>> host in pipelining_advertise_hosts? yes (matched "*")
>>> host in auth_advertise_hosts?
>>> list element: +auth_hosts

->>>  host in "10.0.0.1 : 10.0.0.5"?
->>>   list element: 10.0.0.1
->>>   host in "10.0.0.1 : 10.0.0.5"? yes (matched "10.0.0.1")
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1 : 10.0.0.5"?
+>>>    ╎list element: 10.0.0.1
+>>>    ╎host in "10.0.0.1 : 10.0.0.5"? yes (matched "10.0.0.1")
+>>>   end sublist auth_hosts

>>> host in auth_advertise_hosts? yes (matched "+auth_hosts")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)

@@ -88,6 +94,9 @@
>>> check hosts = +auth_hosts
>>> host in "+auth_hosts"?
>>> list element: +auth_hosts

+>>> start sublist auth_hosts
+>>> cached yes match for +auth_hosts
+>>> cached lookup data = NULL
>>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
>>> message: authentication required
>>> check !authenticated = *

@@ -99,9 +108,12 @@
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>> list element: +local_domains

->>>  test.ex in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'

>>> test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT

@@ -127,10 +139,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@??? H=(test.host) [10.0.0.1] P=esm
>>> host in pipelining_advertise_hosts? yes (matched "*")
>>> host in auth_advertise_hosts?
>>> list element: +auth_hosts

->>>  host in "10.0.0.1 : 10.0.0.5"?
->>>   list element: 10.0.0.1
->>>   list element: 10.0.0.5
->>>   host in "10.0.0.1 : 10.0.0.5"? yes (matched "10.0.0.5")
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1 : 10.0.0.5"?
+>>>    ╎list element: 10.0.0.1
+>>>    ╎list element: 10.0.0.5
+>>>    ╎host in "10.0.0.1 : 10.0.0.5"? yes (matched "10.0.0.5")
+>>>   end sublist auth_hosts

>>> host in auth_advertise_hosts? yes (matched "+auth_hosts")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)

diff --git a/test/stderr/4052 b/test/stderr/4052
index 93efa009a..03065db8d 100644
--- a/test/stderr/4052
+++ b/test/stderr/4052
@@ -29,8 +29,9 @@ not using DSN
SMTP|> RCPT TO:<extchange@???>
SMTP>> DATA
cmd buf flush ddd bytes
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ... sending dd nonTFO early-data
- connected
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
+ sending dd nonTFO early-data
+connected
smtp_reap_early_pipe expect banner
SMTP<< 220 banner
smtp_reap_early_pipe expect ehlo
diff --git a/test/stderr/4510 b/test/stderr/4510
index fae0093b7..ff04e9c97 100644
--- a/test/stderr/4510
+++ b/test/stderr/4510
@@ -8,7 +8,8 @@ configuration file is TESTSUITE/test-config
trusted user
admin user
dropping to exim gid; retaining priv uid
-Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ... connected
+Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ...
+ connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
diff --git a/test/stderr/4530 b/test/stderr/4530
index 05f5a0468..fa38719fd 100644
--- a/test/stderr/4530
+++ b/test/stderr/4530
@@ -8,7 +8,8 @@ configuration file is TESTSUITE/test-config
trusted user
admin user
dropping to exim gid; retaining priv uid
-Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ... connected
+Connecting to ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4]:PORT_D ...
+ connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
@@ -22,6 +23,7 @@ cmd buf flush ddd bytes
SMTP>> STARTTLS
cmd buf flush ddd bytes
SMTP<< 220 TLS go ahead
+ip4.ip4.ip4.ip4 in tls_verify_cert_hostnames? no (end of list)
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
diff --git a/test/stderr/5204 b/test/stderr/5204
index 6f3c13e10..895c87e7b 100644
--- a/test/stderr/5204
+++ b/test/stderr/5204
@@ -9,10 +9,14 @@ routing "DECLINE cannot route this one (DECLINE)"@???
--------> b router <--------
local_part=decline cannot route this one (decline) domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=DECLINE cannot route this one (DECLINE) domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for "DECLINE cannot route this one (DECLINE)"@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -30,10 +34,14 @@ routing "FAIL cannot route this one (FAIL)"@???
--------> b router <--------
local_part=fail cannot route this one (fail) domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=FAIL cannot route this one (FAIL) domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for "FAIL cannot route this one (FAIL)"@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -49,10 +57,14 @@ routing "ERROR cannot route this one (ERROR)"@???
--------> b router <--------
local_part=error cannot route this one (error) domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=ERROR cannot route this one (ERROR) domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for "ERROR cannot route this one (ERROR)"@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -71,10 +83,14 @@ routing "DEFER cannot route this one (DEFER)"@???
--------> b router <--------
local_part=defer cannot route this one (defer) domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=DEFER cannot route this one (DEFER) domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for "DEFER cannot route this one (DEFER)"@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -91,10 +107,14 @@ routing "ACCEPT transport = other_smtp hosts=ten-1.test.ex"@???
--------> b router <--------
local_part=accept transport = other_smtp hosts=ten-1.test.ex domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=ACCEPT transport = other_smtp hosts=ten-1.test.ex domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for "ACCEPT transport = other_smtp hosts=ten-1.test.ex"@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -119,10 +139,14 @@ routing PASS@???
--------> b router <--------
local_part=pass domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=PASS domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for PASS@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -131,6 +155,7 @@ q router passed for PASS@???
--------> s router <--------
local_part=pass domain=some.host
checking domains
+some.host in domains? yes (end of list)
calling s router
s router called for PASS@???
domain = some.host
@@ -159,10 +184,14 @@ routing "FREEZE cannot route this one (FREEZE)"@???
--------> b router <--------
local_part=freeze cannot route this one (freeze) domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=FREEZE cannot route this one (FREEZE) domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for "FREEZE cannot route this one (FREEZE)"@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -179,10 +208,14 @@ routing "REDIRECT postmaster@???
--------> b router <--------
local_part=redirect postmaster@??? domain=some.host
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=REDIRECT postmaster@??? domain=some.host
checking domains
+some.host in "test.ex"? no (end of list)
+some.host in domains? yes (end of list)
calling q router
q router called for "REDIRECT postmaster@???: domain = some.host
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
@@ -201,6 +234,8 @@ routing postmaster@???
--------> b router <--------
local_part=postmaster domain=test.ex
checking senders
+myhost.test.ex in ""? no (end of list)
+CALLER@??? in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=postmaster domain=test.ex
@@ -257,21 +292,23 @@ routing "FAIL cannot route this one (FAIL)"@???
--------> b router <--------
local_part=fail cannot route this one (fail) domain=some.host
checking senders
-x@y in ":"?
+x@y in senders?
list element:
y in ""?
y in ""? no (end of list)
-x@y in ":"? no (end of list)
+x@y in senders? no (end of list)
b router skipped: senders mismatch
--------> q router <--------
local_part=FAIL cannot route this one (FAIL) domain=some.host
checking domains
-some.host in "! +local_domains"?
- list element: ! +local_domains
- some.host in "test.ex"?
- list element: test.ex
- some.host in "test.ex"? no (end of list)
-some.host in "! +local_domains"? yes (end of list)
+some.host in domains?
+ list element: !░+local_domains
+ start sublist local_domains
+ some.host in "test.ex"?
+ ╎list element: test.ex
+ some.host in "test.ex"? no (end of list)
+ end sublist local_domains
+some.host in domains? yes (end of list)
calling q router
q router called for "FAIL cannot route this one (FAIL)"@???: domain = some.host
requires uid=CALLER_UID gid=CALLER_GID current_directory=/
diff --git a/test/stderr/5403 b/test/stderr/5403
index 3de6f4024..eafc41309 100644
--- a/test/stderr/5403
+++ b/test/stderr/5403
@@ -68,18 +68,20 @@ LOG: rcpt for verify@???
>>> check verify = recipient/callout=use_sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing verify@???

->>> domain.com in "localhost.test.ex : localhost4.test.ex : thishost.test.ex"?
+>>> domain.com in domains?
>>> list element: localhost.test.ex
>>> list element: localhost4.test.ex
>>> list element: thishost.test.ex

->>> domain.com in "localhost.test.ex : localhost4.test.ex : thishost.test.ex"? no (end of list)
->>> domain.com in "! +local_domains"?
->>>  list element: ! +local_domains
->>>  domain.com in "test.ex : *.test.ex"?
->>>   list element: test.ex
->>>   list element: *.test.ex
->>>  domain.com in "test.ex : *.test.ex"? no (end of list)
->>> domain.com in "! +local_domains"? yes (end of list)
+>>> domain.com in domains? no (end of list)
+>>> domain.com in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    domain.com in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    domain.com in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains
+>>> domain.com in domains? yes (end of list)

>>> calling all router
>>> domain.com in "special.com"?
>>> list element: special.com

@@ -96,9 +98,10 @@ MUNGED: ::1 will be omitted in what follows
>>> Attempting full verification using callout
>>> callout cache: disabled by no_cache
>>> interface=ip4.ip4.ip4.ip4 port=PORT_S

->>> Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from ip4.ip4.ip4.ip4 ... 127.0.0.1 in hosts_try_fastopen?
->>> list element:
->>> >>> connected
+>>> Connecting to 127.0.0.1 [127.0.0.1]:PORT_S from ip4.ip4.ip4.ip4 ...
+>>> 127.0.0.1 in hosts_try_fastopen?
+>>> list element:
+>>> >>> connected
>>> SMTP<< 220 server ready
>>> 127.0.0.1 in hosts_avoid_esmtp? no (option unset)
>>> SMTP>> EHLO myhost.test.ex

diff --git a/test/stderr/5410 b/test/stderr/5410
index 7002a7efb..fda622012 100644
--- a/test/stderr/5410
+++ b/test/stderr/5410
@@ -72,15 +72,15 @@ using ACL "cutthrough"
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
-domain.com in "! +local_domains"?
- list element: ! +local_domains
+domain.com in domains?
+ list element: !░+local_domains
   start sublist local_domains
    domain.com in "test.ex : *.test.ex"?
    ╎list element: test.ex
    ╎list element: *.test.ex
    domain.com in "test.ex : *.test.ex"? no (end of list)
   end sublist local_domains
-domain.com in "! +local_domains"? yes (end of list)
+domain.com in domains? yes (end of list)
 try option router_home_directory
 try option set
 processing address_data
@@ -100,15 +100,15 @@ try option unseen
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
-domain.com in "! +local_domains"?
- list element: ! +local_domains
+domain.com in domains?
+ list element: !░+local_domains
   start sublist local_domains
    domain.com in "test.ex : *.test.ex"?
    ╎list element: test.ex
    ╎list element: *.test.ex
    domain.com in "test.ex : *.test.ex"? no (end of list)
   end sublist local_domains
-domain.com in "! +local_domains"? yes (end of list)
+domain.com in domains? yes (end of list)
 try option router_home_directory
 try option set
 processing address_data
@@ -125,9 +125,10 @@ try option transport
 try option unseen
 try option unseen
 try option interface
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... try option dscp
-127.0.0.1 in hosts_try_fastopen?
- list element: 
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
+try option dscp
+ 127.0.0.1 in hosts_try_fastopen?
+  list element: 
  connected
 try option helo_data
  ╭considering: $primary_hostname
@@ -635,7 +636,6 @@ try option received_header_text
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
 try option acl_smtp_dkim
-try option acl_smtp_mime
 try option acl_smtp_data
  ╭considering: ${tod_full}
  ├───expanded: ${tod_full}
@@ -731,15 +731,15 @@ using ACL "cutthrough"
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
-domain.com in "! +local_domains"?
- list element: ! +local_domains
+domain.com in domains?
+ list element: !░+local_domains
   start sublist local_domains
    domain.com in "test.ex : *.test.ex"?
    ╎list element: test.ex
    ╎list element: *.test.ex
    domain.com in "test.ex : *.test.ex"? no (end of list)
   end sublist local_domains
-domain.com in "! +local_domains"? yes (end of list)
+domain.com in domains? yes (end of list)
 try option router_home_directory
 try option set
 processing address_data
@@ -759,15 +759,15 @@ try option unseen
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
-domain.com in "! +local_domains"?
- list element: ! +local_domains
+domain.com in domains?
+ list element: !░+local_domains
   start sublist local_domains
    domain.com in "test.ex : *.test.ex"?
    ╎list element: test.ex
    ╎list element: *.test.ex
    domain.com in "test.ex : *.test.ex"? no (end of list)
   end sublist local_domains
-domain.com in "! +local_domains"? yes (end of list)
+domain.com in domains? yes (end of list)
 try option router_home_directory
 try option set
 processing address_data
@@ -784,9 +784,10 @@ try option transport
 try option unseen
 try option unseen
 try option interface
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... try option dscp
-127.0.0.1 in hosts_try_fastopen?
- list element: 
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
+try option dscp
+ 127.0.0.1 in hosts_try_fastopen?
+  list element: 
  connected
 try option helo_data
  ╭considering: $primary_hostname
@@ -1244,7 +1245,6 @@ try option received_header_text
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
 try option acl_smtp_dkim
-try option acl_smtp_mime
 try option acl_smtp_data
  ╭considering: ${tod_full}
  ├───expanded: ${tod_full}
@@ -1340,15 +1340,15 @@ using ACL "cutthrough"
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
-domain.com in "! +local_domains"?
- list element: ! +local_domains
+domain.com in domains?
+ list element: !░+local_domains
   start sublist local_domains
    domain.com in "test.ex : *.test.ex"?
    ╎list element: test.ex
    ╎list element: *.test.ex
    domain.com in "test.ex : *.test.ex"? no (end of list)
   end sublist local_domains
-domain.com in "! +local_domains"? yes (end of list)
+domain.com in domains? yes (end of list)
 try option router_home_directory
 try option set
 processing address_data
@@ -1368,15 +1368,15 @@ try option unseen
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
-domain.com in "! +local_domains"?
- list element: ! +local_domains
+domain.com in domains?
+ list element: !░+local_domains
   start sublist local_domains
    domain.com in "test.ex : *.test.ex"?
    ╎list element: test.ex
    ╎list element: *.test.ex
    domain.com in "test.ex : *.test.ex"? no (end of list)
   end sublist local_domains
-domain.com in "! +local_domains"? yes (end of list)
+domain.com in domains? yes (end of list)
 try option router_home_directory
 try option set
 processing address_data
@@ -1393,9 +1393,10 @@ try option transport
 try option unseen
 try option unseen
 try option interface
-Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... try option dscp
-127.0.0.1 in hosts_try_fastopen?
- list element: 
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
+try option dscp
+ 127.0.0.1 in hosts_try_fastopen?
+  list element: 
  connected
 try option helo_data
  ╭considering: $primary_hostname
@@ -1853,7 +1854,6 @@ try option received_header_text
 ----------- start cutthrough headers send -----------
 ----------- done cutthrough headers send ------------
 try option acl_smtp_dkim
-try option acl_smtp_mime
 try option acl_smtp_data
  ╭considering: ${tod_full}
  ├───expanded: ${tod_full}
diff --git a/test/stderr/5840 b/test/stderr/5840
index 59e479de6..03248556d 100644
--- a/test/stderr/5840
+++ b/test/stderr/5840
@@ -18,9 +18,10 @@

>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing rcptuser@???
>>> calling client router

->>> dane256ee.test.ex in "*"?
+>>> dane256ee.test.ex in dnssec_require_domains? no (option unset)
+>>> dane256ee.test.ex in dnssec_request_domains?
>>> list element: *

->>> dane256ee.test.ex in "*"? yes (matched "*")
+>>> dane256ee.test.ex in dnssec_request_domains? yes (matched "*")
>>> local host found for non-MX address
>>> routed by client router
>>> Attempting full verification using callout

@@ -30,9 +31,10 @@
>>> list element: ip4.ip4.ip4.ip4
>>> ip4.ip4.ip4.ip4 in hosts_require_dane? yes (matched "ip4.ip4.ip4.ip4")
>>> interface=NULL port=PORT_D

->>> Connecting to dane256ee.test.ex [ip4.ip4.ip4.ip4]:PORT_D ... ip4.ip4.ip4.ip4 in hosts_try_fastopen?
->>> list element:
->>> >>> connected
+>>> Connecting to dane256ee.test.ex [ip4.ip4.ip4.ip4]:PORT_D ...
+>>> ip4.ip4.ip4.ip4 in hosts_try_fastopen?
+>>> list element:
+>>> >>> connected
>>> SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
>>> ip4.ip4.ip4.ip4 in hosts_avoid_esmtp? no (option unset)
>>> SMTP>> EHLO myhost.test.ex


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-cvs.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-cvs-unsubscribe@???
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/