From: Jeremy Harris Date: Thu, 9 May 2024 14:38:27 +0000 (+0100) Subject: Docs: clarify helo_allow_chars option X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/HEAD?hp=64226a31616e631b9e10f7897d603cdf9847a458 Docs: clarify helo_allow_chars option --- diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index d71d3696f..dbbed7cde 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -6901,8 +6901,8 @@ key is found. The first key that matches is used; there is no attempt to find a lookup types support only literal keys. &*Warning 2*&: In a host list, you must always use &(net-iplsearch)& so that -the implicit key is the host's IP address rather than its name (see section -&<>&). +the implicit key is the host's IP address rather than its name +(see section &<>&). &*Warning 3*&: Do not use an IPv4-mapped IPv6 address for a key; use the IPv4, in dotted-quad form. (Exim converts IPv4-mapped IPv6 addresses to this @@ -9235,8 +9235,9 @@ is not used. &*Reminder*&: With this kind of pattern, you must have host &'names'& as keys in the file, not IP addresses. If you want to do lookups based on IP -addresses, you must precede the search type with &"net-"& (see section -&<>&). There is, however, no reason why you could not use +addresses, you must precede the search type with &"net-"& +(see section &<>&). +There is, however, no reason why you could not use two items in the same list, one doing an address lookup and one doing a name lookup, both using the same file. @@ -12056,7 +12057,8 @@ where the first item in the list is the empty string. .next The item @[] matches any of the local host's interface addresses. .next -Single-key lookups are assumed to be like &"net-"& style lookups in host lists, +Single-key lookups are assumed to be like &"net-"& style lookups in host lists +(see section &<>&), even if &`net-`& is not specified. There is never any attempt to turn the IP address into a host name. The most common type of linear search for &*match_ip*& is likely to be &*iplsearch*&, in which the file can contain CIDR @@ -16194,11 +16196,13 @@ set. .cindex "EHLO" "underscores in" .cindex "underscore in EHLO/HELO" This option can be set to a string of rogue characters that are permitted in -all EHLO and HELO names in addition to the standard letters, digits, -hyphens, and dots. If you really must allow underscores, you can set +non-ip-literal EHLO and HELO names in addition to the standard letters, digits, +hyphens, and dots. For examplem if you really must allow underscores, +you can set .code helo_allow_chars = _ .endd +This option does not apply to names that look like ip-literals. Note that the value is one string, not a list. @@ -30540,12 +30544,17 @@ Section 4.3 of that document. .subsection General Under GnuTLS, DANE is only supported from version 3.0.0 onwards. -DANE is specified in published RFCs and decouples certificate authority trust +DANE is specified in RFC 6698. It decouples certificate authority trust selection from a "race to the bottom" of "you must trust everything for mail to get through". -There is an alternative technology called MTA-STS, which -instead publishes MX trust anchor information on an HTTPS website. At the -time this text was last updated, MTA-STS was still a draft, not yet an RFC. +It does retain the need to trust the assurances provided by the DNSSEC tree. + +There is an alternative technology called MTA-STS (RFC 8461), which +instead publishes MX trust anchor information on an HTTPS website. +The discovery of the address for that website does not (per standard) +require DNSSEC, and could be regarded as being less secure than DANE +as a result. + Exim has no support for MTA-STS as a client, but Exim mail server operators can choose to publish information describing their TLS configuration using MTA-STS to let those clients who do use that protocol derive trust @@ -31071,7 +31080,8 @@ option to do this.) .section "Format of an ACL" "SECID199" .cindex "&ACL;" "format of" .cindex "&ACL;" "verbs, definition of" -An individual ACL consists of a number of statements. Each statement starts +An individual ACL definition consists of a number of statements. +Each statement starts with a verb, optionally followed by a number of conditions and &"modifiers"&. Modifiers can change the way the verb operates, define error and log messages, set variables, insert delays, and vary the processing of accepted messages. @@ -31090,6 +31100,9 @@ happens then depends on the verb (and in one case, on a special modifier). Not all the conditions make sense at every testing point. For example, you cannot test a sender address in the ACL that is run for a VRFY command. +The definition of an ACL ends where another starts, +or a different configuration section starts. + .section "ACL verbs" "SECID200" The ACL verbs are as follows: @@ -42418,7 +42431,8 @@ Example usage: allow_fail data = :fail: Invalid SRS recipient address - #... further routers here + #... further routers here get inbound_srs-redirected recipients + # and any that were not SRS'd # transport; should look like the non-forward outbound @@ -43004,10 +43018,13 @@ Events have names which correspond to the point in process at which they fire. The name is placed in the variable &$event_name$& and the event action expansion must check this, as it will be called for every possible event type. +.new The current list of events is: +.wen .itable all 0 0 4 25* left 10* center 15* center 50* left .row auth:fail after both "per driver per authentication attempt" .row dane:fail after transport "per connection" +.row dns:fail after both "per lookup" .row msg:complete after main "per message" .row msg:defer after transport "per message per delivery try" .row msg:delivery after transport "per recipient" @@ -43041,6 +43058,7 @@ with the event type: .itable all 0 0 2 20* left 80* left .row auth:fail "smtp response" .row dane:fail "failure reason" +.row dns:fail "failure reason, key and lookup-type" .row msg:defer "error string" .row msg:delivery "smtp confirmation message" .row msg:fail:internal "failure reason" @@ -43090,6 +43108,11 @@ chain element received on the connection. For OpenSSL it will trigger for every chain element including those loaded locally. +.new +For dns:fail events from dnsdb lookups, a &"defer_never"& option does not +affect the reporting of DNS_AGAIN. +.wen + . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index a6da95001..98c7a9584 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -128,6 +128,33 @@ JH/24 Bug 3081: Fix a delivery process crash. When the router "errors_to" JH/25 Bug 3079: Fix crash in dbmnz. When a key was present for zero-length data a null pointer was followed. Find and testcase by Sebastian Bugge. +JH/26 Fix encoding for an AUTH parameter on a MAIL FROM command. Previously + decimal 127 chars were not encoded, and lowercase hex was used for + encoded values. Outstanding since at least 1999. + +JH/27 Fix crash in logging. When a message with a large number of recipients + had been received, and logging of recipients is enabled, the buffer used + for logging could reach limit. A read using a null pointer would then + be done, resulting in a crash of the receiving process before an SMTP + ACK for the message was returned to the sending system. Duplicate + messages were created as a result. + Find and debug help by Mateusz Krawczyk + +JH/28 Bug 3086: Fix exinext for ipv6. Change the format of keys in the retry + DB, wrapping transport record bare-ip "host names" and ipv6 + "host addresses" in square-brackets. This makes the parsing that + exinext does more reliable. + +JH/29 Bug 3087: Fix SRS encode. A zero-length quoted element in the local-part + would cause a crash. + +JH/30 Bug 3029: Avoid feeding Resent-From: to DMARC. + +JH/31 Bug 3027: For -bh / -bhc tests change to using the compressed form of + ipv6 addresses for the sender. Previously the uncompressed form was + used, and if used in textual form this would result in behavior difference + versus non-bh. + Exim version 4.97 ----------------- diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff index 58ab945be..1781e05b1 100644 --- a/doc/doc-txt/NewStuff +++ b/doc/doc-txt/NewStuff @@ -13,13 +13,15 @@ Version 4.98 2. The dkim_verbose logging control also enables logging of signing 3. The dkim_timestamps signing option now accepts zero to include a current - timestamp but no extiry timestamp. Code by Simon Arlott; testsuite + timestamp but no expiry timestamp. Code by Simon Arlott; testsuite additions by jgh. 4. The recipients_max main option is now expanded. 5. Setting variables for "exim -be" can set a tainted value. + 6. A dns:fail event. + Version 4.97 ------------ diff --git a/src/exim_monitor/em_log.c b/src/exim_monitor/em_log.c index fbcb6b1c0..49f649d7e 100644 --- a/src/exim_monitor/em_log.c +++ b/src/exim_monitor/em_log.c @@ -294,7 +294,7 @@ if (LOG != NULL) if ((p = Ustrstr(buffer, "==")) != NULL) { - queue_item *qq = find_queue(id, queue_noop, 0); + queue_item * qq = find_queue(id, queue_noop, 0); if (qq) { dest_item *d; @@ -302,14 +302,12 @@ if (LOG != NULL) p += 2; while (isspace(*p)) p++; q = p; - while (*p != 0 && !isspace(*p)) + while (*p && !isspace(*p)) { if (*p++ != '\"') continue; - while (*p != 0) - { + while (*p) if (*p == '\\') p += 2; - else if (*p++ == '\"') break; - } + else if (*p++ == '\"') break; } *p++ = 0; if ((r = strstric(q, qualify_domain, FALSE)) != NULL && diff --git a/src/src/EDITME b/src/src/EDITME index 85d24f73f..4a33677d5 100644 --- a/src/src/EDITME +++ b/src/src/EDITME @@ -60,8 +60,8 @@ # for you by the OS-specific configuration. If Exim compiles without any # problems, you probably do not have to worry about the DBM library. If you # do want or need to change it, you should first read the discussion in the -# file doc/dbm.discuss.txt, which also contains instructions for testing Exim's -# interface to the DBM library. +# file doc/doc-txt/dbm.discuss.txt, which also contains instructions for testing +# Exim's interface to the DBM library. # In Local/Makefiles blank lines and lines starting with # are ignored. It is # also permitted to use the # character to add a comment to a setting, for diff --git a/src/src/acl.c b/src/src/acl.c index 29441dfc1..4e88fc1ac 100644 --- a/src/src/acl.c +++ b/src/src/acl.c @@ -1366,7 +1366,7 @@ uschar * target = store_get(TARGET_SIZE, GET_TAINTED); client's HELO domain. If the client has not said HELO, use its IP address instead. If it's a local client (exim -bs), CSA isn't applicable. */ -while (isspace(*domain) && *domain != '\0') ++domain; +while (isspace(*domain) && *domain) ++domain; if (*domain == '\0') domain = sender_helo_name; if (!domain) domain = sender_host_address; if (!sender_host_address) return CSA_UNKNOWN; @@ -1867,9 +1867,10 @@ switch(vp->value) verify_sender_address = sender_address; else { - while (isspace(*s)) s++; - if (*s++ != '=') goto BAD_VERIFY; - while (isspace(*s)) s++; + if (Uskip_whitespace(&s) != '=') + goto BAD_VERIFY; + s++; + Uskip_whitespace(&s); verify_sender_address = string_copy(s); } } @@ -1911,13 +1912,13 @@ while ((ss = string_nextinlist(&list, &sep, NULL, 0))) callout = CALLOUT_TIMEOUT_DEFAULT; if (*(ss += 7)) { - while (isspace(*ss)) ss++; + Uskip_whitespace(&ss); if (*ss++ == '=') { const uschar * sublist = ss; int optsep = ','; - while (isspace(*sublist)) sublist++; + Uskip_whitespace(&sublist); for (uschar * opt; opt = string_nextinlist(&sublist, &optsep, NULL, 0); ) { callout_opt_t * op; @@ -1931,14 +1932,14 @@ while ((ss = string_nextinlist(&list, &sep, NULL, 0))) if (op->has_option) { opt += Ustrlen(op->name); - while (isspace(*opt)) opt++; + Uskip_whitespace(&opt); if (*opt++ != '=') { *log_msgptr = string_sprintf("'=' expected after " "\"%s\" in ACL verify condition \"%s\"", op->name, arg); return ERROR; } - while (isspace(*opt)) opt++; + Uskip_whitespace(&opt); } if (op->timeval && (period = v_period(opt, arg, log_msgptr)) < 0) return ERROR; @@ -1981,14 +1982,14 @@ while ((ss = string_nextinlist(&list, &sep, NULL, 0))) quota = TRUE; if (*(ss += 5)) { - while (isspace(*ss)) ss++; + Uskip_whitespace(&ss); if (*ss++ == '=') { const uschar * sublist = ss; int optsep = ','; int period; - while (isspace(*sublist)) sublist++; + Uskip_whitespace(&sublist); for (uschar * opt; opt = string_nextinlist(&sublist, &optsep, NULL, 0); ) if (Ustrncmp(opt, "cachepos=", 9) == 0) if ((period = v_period(opt += 9, arg, log_msgptr)) < 0) @@ -3892,7 +3893,7 @@ for (; cb; cb = cb->next) } s++; } - while (isspace(*s)) s++; + Uskip_whitespace(&s); if (logbits == 0) logbits = LOG_MAIN; log_write(0, logbits, "%s", string_printing(s)); @@ -4316,19 +4317,17 @@ if (!s) /* At top level, we expand the incoming string. At lower levels, it has already been expanded as part of condition processing. */ -if (acl_level == 0) +if (acl_level != 0) + ss = s; +else if (!(ss = expand_string(s))) { - if (!(ss = expand_string(s))) - { - if (f.expand_string_forcedfail) return OK; - *log_msgptr = string_sprintf("failed to expand ACL string \"%s\": %s", s, - expand_string_message); - return ERROR; - } + if (f.expand_string_forcedfail) return OK; + *log_msgptr = string_sprintf("failed to expand ACL string \"%s\": %s", s, + expand_string_message); + return ERROR; } -else ss = s; -while (isspace(*ss)) ss++; +Uskip_whitespace(&ss); /* If we can't find a named ACL, the default is to parse it as an inline one. (Unless it begins with a slash; non-existent files give rise to an error.) */ @@ -4451,7 +4450,7 @@ while ((acl_current = acl)) verbs[acl->verb], acl_name); if (basic_errno != ERRNO_CALLOUTDEFER) { - if (search_error_message != NULL && *search_error_message != 0) + if (search_error_message && *search_error_message) *log_msgptr = search_error_message; if (smtp_return_error_details) f.acl_temp_details = TRUE; } @@ -4617,8 +4616,8 @@ if (!(tmp = string_dequote(&s)) || !(name = expand_string(tmp))) for (i = 0; i < 9; i++) { - while (*s && isspace(*s)) s++; - if (!*s) break; + if (!Uskip_whitespace(&s)) + break; if (!(tmp = string_dequote(&s)) || !(tmp_arg[i] = expand_string(tmp))) { tmp = name; diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c index 8f00ee498..5817be7c9 100644 --- a/src/src/auths/cram_md5.c +++ b/src/src/auths/cram_md5.c @@ -198,7 +198,7 @@ The former is now the preferred variable; the latter is the original one. Then check that the remaining length is 32. */ auth_vars[0] = expand_nstring[1] = clear; -while (*clear && !isspace(*clear)) clear++; +Uskip_nonwhite(&clear); if (!isspace(*clear)) return FAIL; *clear++ = 0; diff --git a/src/src/auths/xtextencode.c b/src/src/auths/xtextencode.c index c08288831..75be18161 100644 --- a/src/src/auths/xtextencode.c +++ b/src/src/auths/xtextencode.c @@ -29,31 +29,14 @@ Returns: a pointer to the zero-terminated xtext string, which uschar * auth_xtextencode(uschar *clear, int len) { -uschar *code; -uschar *p = US clear; -uschar *pp; -int c = len; -int count = 1; -register int x; - -/* We have to do a prepass to find out how many specials there are, -in order to get the right amount of store. */ - -while (c -- > 0) - count += ((x = *p++) < 33 || x > 127 || x == '+' || x == '=')? 3 : 1; - -pp = code = store_get(count, clear); - -p = US clear; -c = len; -while (c-- > 0) - if ((x = *p++) < 33 || x > 127 || x == '+' || x == '=') - pp += sprintf(CS pp, "+%.02x", x); /* There's always room */ - else - *pp++ = x; - -*pp = 0; -return code; +gstring * g = NULL; +for(uschar ch; len > 0; len--, clear++) + g = (ch = *clear) < 33 || ch > 126 || ch == '+' || ch == '=' + ? string_fmt_append(g, "+%.02X", ch) + : string_catn(g, clear, 1); +gstring_release_unused(g); +return string_from_gstring(g); } + /* End of xtextencode.c */ diff --git a/src/src/dbfn.c b/src/src/dbfn.c index 460fd8bb7..389d1518e 100644 --- a/src/src/dbfn.c +++ b/src/src/dbfn.c @@ -490,7 +490,7 @@ while (Ufgets(buffer, 256, stdin) != NULL) { count = Uatoi(cmd); while (isdigit((uschar)*cmd)) cmd++; - while (isspace((uschar)*cmd)) cmd++; + Uskip_whitespace(&cmd); } if (Ustrncmp(cmd, "open", 4) == 0) @@ -498,7 +498,7 @@ while (Ufgets(buffer, 256, stdin) != NULL) int i; open_db *odb; uschar *s = cmd + 4; - while (isspace((uschar)*s)) s++; + Uskip_whitespace(&s); for (i = 0; i < max_db; i++) if (dbblock[i].dbptr == NULL) break; @@ -534,8 +534,7 @@ while (Ufgets(buffer, 256, stdin) != NULL) else if (Ustrncmp(cmd, "write", 5) == 0) { int rc = 0; - uschar *key = cmd + 5; - uschar *data; + uschar * key = cmd + 5, * data; if (current < 0) { @@ -543,11 +542,11 @@ while (Ufgets(buffer, 256, stdin) != NULL) continue; } - while (isspace((uschar)*key)) key++; + Uskip_whitespace(&key); data = key; - while (*data != 0 && !isspace((uschar)*data)) data++; - *data++ = 0; - while (isspace((uschar)*data)) data++; + Uskip_nonwhite(&data); + *data++ = '\0'; + Uskip_whitespace(&data); dbwait = (dbdata_wait *)(&structbuffer); Ustrcpy(dbwait->text, data); @@ -562,13 +561,13 @@ while (Ufgets(buffer, 256, stdin) != NULL) else if (Ustrncmp(cmd, "read", 4) == 0) { - uschar *key = cmd + 4; + uschar * key = cmd + 4; if (current < 0) { printf("No current database\n"); continue; } - while (isspace((uschar)*key)) key++; + Uskip_whitespace(&key); start = clock(); while (count-- > 0) dbwait = (dbdata_wait *)dbfn_read_with_length(dbblock+ current, key, NULL); @@ -578,13 +577,13 @@ while (Ufgets(buffer, 256, stdin) != NULL) else if (Ustrncmp(cmd, "delete", 6) == 0) { - uschar *key = cmd + 6; + uschar * key = cmd + 6; if (current < 0) { printf("No current database\n"); continue; } - while (isspace((uschar)*key)) key++; + Uskip_whitespace(&key); dbfn_delete(dbblock + current, key); } @@ -614,8 +613,8 @@ while (Ufgets(buffer, 256, stdin) != NULL) else if (Ustrncmp(cmd, "close", 5) == 0) { - uschar *s = cmd + 5; - while (isspace((uschar)*s)) s++; + uschar * s = cmd + 5; + Uskip_whitespace(&s); i = Uatoi(s); if (i >= max_db || dbblock[i].dbptr == NULL) printf("Not open\n"); else { @@ -629,8 +628,8 @@ while (Ufgets(buffer, 256, stdin) != NULL) else if (Ustrncmp(cmd, "file", 4) == 0) { - uschar *s = cmd + 4; - while (isspace((uschar)*s)) s++; + uschar * s = cmd + 4; + Uskip_whitespace(&s); i = Uatoi(s); if (i >= max_db || dbblock[i].dbptr == NULL) printf("Not open\n"); else current = i; @@ -682,3 +681,5 @@ return 0; #endif /* End of dbfn.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/deliver.c b/src/src/deliver.c index 70f44535f..f3c9203e4 100644 --- a/src/src/deliver.c +++ b/src/src/deliver.c @@ -859,9 +859,10 @@ Return: string expansion from listener, or NULL */ uschar * -event_raise(uschar * action, const uschar * event, uschar * ev_data, int * errnop) +event_raise(const uschar * action, const uschar * event, const uschar * ev_data, + int * errnop) { -uschar * s; +const uschar * s; if (action) { DEBUG(D_deliver) @@ -872,7 +873,7 @@ if (action) event_name = event; event_data = ev_data; - if (!(s = expand_string(action)) && *expand_string_message) + if (!(s = expand_cstring(action)) && *expand_string_message) log_write(0, LOG_MAIN|LOG_PANIC, "failed to expand event_action %s in %s: %s\n", event, transport_name ? transport_name : US"main", expand_string_message); @@ -880,7 +881,8 @@ if (action) event_name = event_data = NULL; /* If the expansion returns anything but an empty string, flag for - the caller to modify his normal processing + the caller to modify his normal processing. Copy the string to + de-const it. */ if (s && *s) { @@ -888,7 +890,7 @@ if (action) debug_printf("Event(%s): event_action returned \"%s\"\n", event, s); if (errnop) *errnop = ERRNO_EVENT; - return s; + return string_copy(s); } } return NULL; @@ -901,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; @@ -937,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*/ @@ -2039,7 +2043,7 @@ static BOOL previously_transported(address_item *addr, BOOL testing) { uschar * s = string_sprintf("%s/%s", - addr->unique + (testflag(addr, af_homonym)? 3:0), addr->transport->name); + addr->unique + (testflag(addr, af_homonym) ? 3:0), addr->transport->name); if (tree_search(tree_nonrecipients, s) != 0) { @@ -3142,7 +3146,7 @@ while (addr_local) if (result == DEFER || testflag(addr2, af_lt_retry_exists)) { int flags = result == DEFER ? 0 : rf_delete; - uschar *retry_key = string_copy(tp->retry_use_local_part + uschar * retry_key = string_copy(tp->retry_use_local_part ? addr2->address_retry_key : addr2->domain_retry_key); *retry_key = 'T'; retry_add_item(addr2, retry_key, flags); @@ -7292,7 +7296,7 @@ while (addr_new) /* Loop until all addresses dealt with */ addr->unique = string_sprintf("%s:%s", addr->address, addr->parent->unique + - (testflag(addr->parent, af_homonym)? 3:0)); + (testflag(addr->parent, af_homonym) ? 3:0)); addr->address_retry_key = addr->domain_retry_key = string_sprintf("T:%s", addr->unique); @@ -7729,7 +7733,7 @@ while (addr_new) /* Loop until all addresses dealt with */ else if (testflag(addr, af_dr_retry_exists)) { - uschar *altkey = string_sprintf("%s:<%s>", addr->address_retry_key, + uschar * altkey = string_sprintf("%s:<%s>", addr->address_retry_key, sender_address); retry_add_item(addr, altkey, rf_delete); retry_add_item(addr, addr->address_retry_key, rf_delete); diff --git a/src/src/dns.c b/src/src/dns.c index 74c5a58c5..5a8c23d62 100644 --- a/src/src/dns.c +++ b/src/src/dns.c @@ -62,7 +62,7 @@ if (stat(CS utilname, &statbuf) >= 0) int infd, outfd, rc; uschar *argv[5]; - DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) using fakens\n", + DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) using fakens\n", name, dns_text_type(type)); argv[0] = utilname; @@ -105,17 +105,17 @@ if (stat(CS utilname, &statbuf) >= 0) case 3: h_errno = NO_RECOVERY; return -1; case 4: h_errno = NO_DATA; return -1; case 5: /* Pass on to res_search() */ - DEBUG(D_dns) debug_printf("fakens returned PASS_ON\n"); + DEBUG(D_dns) debug_printf_indent("fakens returned PASS_ON\n"); } } else { - DEBUG(D_dns) debug_printf("fakens (%s) not found\n", utilname); + DEBUG(D_dns) debug_printf_indent("fakens (%s) not found\n", utilname); } /* fakens utility not found, or it returned "pass on" */ -DEBUG(D_dns) debug_printf("passing %s on to res_search()\n", domain); +DEBUG(D_dns) debug_printf_indent("passing %s on to res_search()\n", domain); return res_search(CS domain, C_IN, type, answerptr, size); } @@ -165,13 +165,13 @@ if (dns_use_edns0 >= 0) else resp->options &= ~RES_USE_EDNS0; DEBUG(D_resolver) - debug_printf("Coerced resolver EDNS0 support %s.\n", + debug_printf_indent("Coerced resolver EDNS0 support %s.\n", dns_use_edns0 ? "on" : "off"); } #else if (dns_use_edns0 >= 0) DEBUG(D_resolver) - debug_printf("Unable to %sset EDNS0 without resolver support.\n", + debug_printf_indent("Unable to %sset EDNS0 without resolver support.\n", dns_use_edns0 ? "" : "un"); #endif @@ -187,7 +187,7 @@ if (dns_dnssec_ok >= 0) if (dns_use_edns0 == 0 && dns_dnssec_ok != 0) { DEBUG(D_resolver) - debug_printf("CONFLICT: dns_use_edns0 forced false, dns_dnssec_ok forced true, ignoring latter!\n"); + debug_printf_indent("CONFLICT: dns_use_edns0 forced false, dns_dnssec_ok forced true, ignoring latter!\n"); } else { @@ -195,18 +195,18 @@ if (dns_dnssec_ok >= 0) resp->options |= RES_USE_DNSSEC; else resp->options &= ~RES_USE_DNSSEC; - DEBUG(D_resolver) debug_printf("Coerced resolver DNSSEC support %s.\n", + DEBUG(D_resolver) debug_printf_indent("Coerced resolver DNSSEC support %s.\n", dns_dnssec_ok ? "on" : "off"); } } # else if (dns_dnssec_ok >= 0) DEBUG(D_resolver) - debug_printf("Unable to %sset DNSSEC without resolver support.\n", + debug_printf_indent("Unable to %sset DNSSEC without resolver support.\n", dns_dnssec_ok ? "" : "un"); if (use_dnssec) DEBUG(D_resolver) - debug_printf("Unable to set DNSSEC without resolver support.\n"); + debug_printf_indent("Unable to set DNSSEC without resolver support.\n"); # endif #endif /* DISABLE_DNSSEC */ @@ -353,7 +353,7 @@ char * trace = NULL; if (reset != RESET_NEXT) { dnss->rrcount = ntohs(h->qdcount); - TRACE debug_printf("%s: reset (Q rrcount %d)\n", __FUNCTION__, dnss->rrcount); + TRACE debug_printf_indent("%s: reset (Q rrcount %d)\n", __FUNCTION__, dnss->rrcount); dnss->aptr = dnsa->answer + sizeof(HEADER); /* Skip over questions; failure to expand the name just gives up */ @@ -372,7 +372,7 @@ if (reset != RESET_NEXT) /* Get the number of answer records. */ dnss->rrcount = ntohs(h->ancount); - TRACE debug_printf("%s: reset (A rrcount %d)\n", __FUNCTION__, dnss->rrcount); + TRACE debug_printf_indent("%s: reset (A rrcount %d)\n", __FUNCTION__, dnss->rrcount); /* Skip over answers if we want to look at the authority section. Also skip the NS records (i.e. authority section) if wanting to look at the additional @@ -380,15 +380,15 @@ if (reset != RESET_NEXT) if (reset == RESET_ADDITIONAL) { - TRACE debug_printf("%s: additional\n", __FUNCTION__); + TRACE debug_printf_indent("%s: additional\n", __FUNCTION__); dnss->rrcount += ntohs(h->nscount); - TRACE debug_printf("%s: reset (NS rrcount %d)\n", __FUNCTION__, dnss->rrcount); + TRACE debug_printf_indent("%s: reset (NS rrcount %d)\n", __FUNCTION__, dnss->rrcount); } if (reset == RESET_AUTHORITY || reset == RESET_ADDITIONAL) { TRACE if (reset == RESET_AUTHORITY) - debug_printf("%s: authority\n", __FUNCTION__); + debug_printf_indent("%s: authority\n", __FUNCTION__); while (dnss->rrcount-- > 0) { TRACE trace = "A-namelen"; @@ -409,13 +409,13 @@ if (reset != RESET_NEXT) } dnss->rrcount = reset == RESET_AUTHORITY ? ntohs(h->nscount) : ntohs(h->arcount); - TRACE debug_printf("%s: reset (%s rrcount %d)\n", __FUNCTION__, + TRACE debug_printf_indent("%s: reset (%s rrcount %d)\n", __FUNCTION__, reset == RESET_AUTHORITY ? "NS" : "AR", dnss->rrcount); } - TRACE debug_printf("%s: %d RRs to read\n", __FUNCTION__, dnss->rrcount); + TRACE debug_printf_indent("%s: %d RRs to read\n", __FUNCTION__, dnss->rrcount); } else - TRACE debug_printf("%s: next (%d left)\n", __FUNCTION__, dnss->rrcount); + TRACE debug_printf_indent("%s: next (%d left)\n", __FUNCTION__, dnss->rrcount); /* The variable dnss->aptr is now pointing at the next RR, and dnss->rrcount contains the number of RR records left. */ @@ -458,11 +458,11 @@ if (dnss_inc_aptr(dnsa, dnss, dnss->srr.size)) /* Return a pointer to the dns_record structure within the dns_answer. This is for convenience so that the scans can use nice-looking for loops. */ -TRACE debug_printf("%s: return %s\n", __FUNCTION__, dns_text_type(dnss->srr.type)); +TRACE debug_printf_indent("%s: return %s\n", __FUNCTION__, dns_text_type(dnss->srr.type)); return &dnss->srr; null_return: - TRACE debug_printf("%s: terminate (%d RRs left). Last op: %s; errno %d %s\n", + TRACE debug_printf_indent("%s: terminate (%d RRs left). Last op: %s; errno %d %s\n", __FUNCTION__, dnss->rrcount, trace, errno, strerror(errno)); dnss->rrcount = 0; return NULL; @@ -515,7 +515,7 @@ dns_is_secure(const dns_answer * dnsa) { #ifdef DISABLE_DNSSEC DEBUG(D_dns) - debug_printf("DNSSEC support disabled at build-time; dns_is_secure() false\n"); + debug_printf_indent("DNSSEC support disabled at build-time; dns_is_secure() false\n"); return FALSE; #else const HEADER * h = (const HEADER *) dnsa->answer; @@ -542,7 +542,7 @@ if ( !h->aa ) return FALSE; -DEBUG(D_dns) debug_printf("DNS faked the AD bit " +DEBUG(D_dns) debug_printf_indent("DNS faked the AD bit " "(got AA and matched with dns_trust_aa (%s in %s))\n", auth_name, dns_trust_aa); @@ -666,7 +666,7 @@ else (void)tree_insertnode(&tree_dns_fails, new); } -DEBUG(D_dns) debug_printf(" %s neg-cache entry for %s, ttl %d\n", +DEBUG(D_dns) debug_printf_indent(" %s neg-cache entry for %s, ttl %d\n", previous ? "update" : "writing", node_name, expiry ? (int)(expiry - time(NULL)) : -1); e->expiry = expiry; @@ -693,7 +693,7 @@ e = previous->data.ptr; val = e->data.val; rc = e->expiry && e->expiry <= time(NULL) ? -1 : val; -DEBUG(D_dns) debug_printf("DNS lookup of %.255s (%s): %scached value %s%s\n", +DEBUG(D_dns) debug_printf_indent("DNS lookup of %.255s (%s): %scached value %s%s\n", name, dns_text_type(type), rc == -1 ? "" : "using ", dns_rc_names[val], @@ -731,12 +731,12 @@ if ( h->qr == 1 /* a response */ && ntohs(h->ancount) == 0 /* no answer records */ && ntohs(h->nscount) >= 1) /* authority records */ { - DEBUG(D_dns) debug_printf("faking res_search(%s) response length as %d\n", + DEBUG(D_dns) debug_printf_indent("faking res_search(%s) response length as %d\n", dns_text_type(type), (int)sizeof(dnsa->answer)); dnsa->answerlen = sizeof(dnsa->answer); return TRUE; } -DEBUG(D_dns) debug_printf("DNS: couldn't fake dnsa len\n"); +DEBUG(D_dns) debug_printf_indent("DNS: couldn't fake dnsa len\n"); /* Maybe we should just do a second lookup for an SOA? */ return FALSE; } @@ -783,7 +783,7 @@ if (fake_dnsa_len_for_fail(dnsa, type)) return time(NULL) + ttl; } -DEBUG(D_dns) debug_printf("DNS: no SOA record found for neg-TTL\n"); +DEBUG(D_dns) debug_printf_indent("DNS: no SOA record found for neg-TTL\n"); return 0; } @@ -844,11 +844,11 @@ if ((rc = dns_fail_cache_hit(name, type)) > 0) uschar * alabel; uschar * errstr = NULL; DEBUG(D_dns) if (string_is_utf8(name)) - debug_printf("convert utf8 '%s' to alabel for for lookup\n", name); + debug_printf_indent("convert utf8 '%s' to alabel for for lookup\n", name); if ((alabel = string_domain_utf8_to_alabel(name, &errstr)), errstr) { DEBUG(D_dns) - debug_printf("DNS name '%s' utf8 conversion to alabel failed: %s\n", name, + debug_printf_indent("DNS name '%s' utf8 conversion to alabel failed: %s\n", name, errstr); f.host_find_failed_syntax = TRUE; return DNS_NOMATCH; @@ -877,7 +877,7 @@ if (check_dns_names_pattern[0] != 0 && type != T_PTR && type != T_TXT) if (!regex_match(regex_check_dns_names, name, -1, NULL)) { DEBUG(D_dns) - debug_printf("DNS name syntax check failed: %s (%s)\n", name, + debug_printf_indent("DNS name syntax check failed: %s (%s)\n", name, dns_text_type(type)); f.host_find_failed_syntax = TRUE; return DNS_NOMATCH; @@ -909,7 +909,7 @@ dnsa->answerlen = f.running_in_test_harness if (dnsa->answerlen > (int) sizeof(dnsa->answer)) { - DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) resulted in overlong packet" + DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) resulted in overlong packet" " (size %d), truncating to %u.\n", name, dns_text_type(type), dnsa->answerlen, (unsigned int) sizeof(dnsa->answer)); dnsa->answerlen = sizeof(dnsa->answer); @@ -918,12 +918,12 @@ if (dnsa->answerlen > (int) sizeof(dnsa->answer)) if (dnsa->answerlen < 0) switch (h_errno) { case HOST_NOT_FOUND: - DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) gave HOST_NOT_FOUND\n" + DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) gave HOST_NOT_FOUND\n" "returning DNS_NOMATCH\n", name, dns_text_type(type)); return dns_fail_return(name, type, dns_expire_from_soa(dnsa, type), DNS_NOMATCH); case TRY_AGAIN: - DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) gave TRY_AGAIN\n", + DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) gave TRY_AGAIN\n", name, dns_text_type(type)); /* Cut this out for various test programs */ @@ -955,10 +955,10 @@ if (dnsa->answerlen < 0) switch (h_errno) if (rc != OK) { - DEBUG(D_dns) debug_printf("returning DNS_AGAIN\n"); + DEBUG(D_dns) debug_printf_indent("returning DNS_AGAIN\n"); return dns_fail_return(name, type, 0, DNS_AGAIN); } - DEBUG(D_dns) debug_printf("%s is in dns_again_means_nonexist: returning " + DEBUG(D_dns) debug_printf_indent("%s is in dns_again_means_nonexist: returning " "DNS_NOMATCH\n", name); return dns_fail_return(name, type, dns_expire_from_soa(dnsa, type), DNS_NOMATCH); @@ -967,22 +967,22 @@ if (dnsa->answerlen < 0) switch (h_errno) #endif case NO_RECOVERY: - DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) gave NO_RECOVERY\n" + DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) gave NO_RECOVERY\n" "returning DNS_FAIL\n", name, dns_text_type(type)); return dns_fail_return(name, type, 0, DNS_FAIL); case NO_DATA: - DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) gave NO_DATA\n" + DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) gave NO_DATA\n" "returning DNS_NODATA\n", name, dns_text_type(type)); return dns_fail_return(name, type, dns_expire_from_soa(dnsa, type), DNS_NODATA); default: - DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) gave unknown DNS error %d\n" + DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) gave unknown DNS error %d\n" "returning DNS_FAIL\n", name, dns_text_type(type), h_errno); return dns_fail_return(name, type, 0, DNS_FAIL); } -DEBUG(D_dns) debug_printf("DNS lookup of %s (%s) succeeded\n", +DEBUG(D_dns) debug_printf_indent("DNS lookup of %s (%s) succeeded\n", name, dns_text_type(type)); return DNS_SUCCEED; @@ -1010,7 +1010,7 @@ won't return any. If fully_qualified_name is not NULL, set it to point to the full name returned by the resolver, if this is different to what it is given, unless the returned name starts with "*" as some nameservers seem to be returning -wildcards in this form. In international mode "different" means "alabel +wildcards in this form. In international mode "different" means "a-label forms are different". Arguments: @@ -1028,11 +1028,13 @@ Returns: DNS_SUCCEED successful lookup */ int -dns_lookup(dns_answer *dnsa, const uschar *name, int type, - const uschar **fully_qualified_name) +dns_lookup(dns_answer * dnsa, const uschar * name, int type, + const uschar ** fully_qualified_name) { -const uschar *orig_name = name; +const uschar * orig_name = name; BOOL secure_so_far = TRUE; +int rc = DNS_FAIL; +const uschar * errstr = NULL; /* By default, assume the resolver follows CNAME chains (and returns NODATA for an unterminated one). If it also does that for a CNAME loop, fine; if it returns @@ -1046,12 +1048,11 @@ for (int i = 0; i <= dns_cname_loops; i++) uschar * data; dns_record cname_rr, type_rr; dns_scan dnss; - int rc; /* DNS lookup failures get passed straight back. */ if ((rc = dns_basic_lookup(dnsa, name, type)) != DNS_SUCCEED) - return rc; + goto not_good; /* We should have either records of the required type, or a CNAME record, or both. We need to know whether both exist for getting the fully qualified @@ -1105,26 +1106,69 @@ for (int i = 0; i <= dns_cname_loops; i++) its not existing. */ if (!cname_rr.data) - return DNS_FAIL; + { + errstr = US"no_hit_yet_no_cname"; + goto not_good; + } /* DNS data comes from the outside, hence tainted */ data = store_get(256, GET_TAINTED); if (dn_expand(dnsa->answer, dnsa->answer + dnsa->answerlen, cname_rr.data, (DN_EXPAND_ARG4_TYPE)data, 256) < 0) - return DNS_FAIL; + { + errstr = US"bad_expand"; + goto not_good; + } name = data; if (!dns_is_secure(dnsa)) secure_so_far = FALSE; - DEBUG(D_dns) debug_printf("CNAME found: change to %s\n", name); + DEBUG(D_dns) debug_printf_indent("CNAME found: change to %s\n", name); } /* Loop back to do another lookup */ -/*Control reaches here after 10 times round the CNAME loop. Something isn't +/* Control reaches here after 10 times round the CNAME loop. Something isn't right... */ log_write(0, LOG_MAIN, "CNAME loop for %s encountered", orig_name); -return DNS_FAIL; +errstr = US"cname_loop"; + +not_good: + { + const uschar * s = NULL; + BOOL save_flag = f.search_find_defer; + uschar * save_serr = search_error_message; + + if (!transport_name) + s = event_action; + else + for(transport_instance * tp = transports; tp; tp = tp->next) + if (Ustrcmp(tp->name, transport_name) == 0) + { s = tp->event_action; break; } + + if (s) + { + if (Ustrchr(name, ':')) /* unlikely, but may as well bugproof */ + { + gstring * g = NULL; + while (*name) + { + if (*name == ':') g = string_catn(g, name, 1); + g = string_catn(g, name++, 1); + } + name = string_from_gstring(g); + } + event_raise(s, US"dns:fail", + string_sprintf("%s:%s:%s", + errstr ? errstr : dns_rc_names[rc], name, dns_text_type(type)), + NULL); + } + + /*XXX what other state could an expansion in the eventhandler mess up? */ + search_error_message = save_serr; + f.search_find_defer = save_flag; + return rc; + } } @@ -1172,12 +1216,12 @@ switch (type) case T_SOA: { const uschar *d = name; - while (d != 0) + while (d) { int rc = dns_lookup(dnsa, d, type, fully_qualified_name); if (rc != DNS_NOMATCH && rc != DNS_NODATA) return rc; - while (*d != 0 && *d != '.') d++; - if (*d++ == 0) break; + while (*d && *d != '.') d++; + if (!*d++) break; } return DNS_NOMATCH; } @@ -1197,7 +1241,7 @@ switch (type) dns_record *rr; dns_scan dnss; - DEBUG(D_dns) debug_printf("CSA lookup of %s\n", name); + DEBUG(D_dns) debug_printf_indent("CSA lookup of %s\n", name); srvname = string_sprintf("_client._smtp.%s", name); rc = dns_lookup(dnsa, srvname, T_SRV, NULL); @@ -1235,7 +1279,7 @@ switch (type) limit = 3; } - DEBUG(D_dns) debug_printf("CSA TLD %s\n", tld); + DEBUG(D_dns) debug_printf_indent("CSA TLD %s\n", tld); /* Do not perform the search if the top level or 2nd level domains do not exist. This is quite common, and when it occurs all the search queries would @@ -1262,7 +1306,7 @@ switch (type) if (--namesuff <= name) return DNS_NOMATCH; while (*namesuff != '.'); - DEBUG(D_dns) debug_printf("CSA parent search at %s\n", namesuff + 1); + DEBUG(D_dns) debug_printf_indent("CSA parent search at %s\n", namesuff + 1); srvname = string_sprintf("_client._smtp.%s", namesuff + 1); rc = dns_lookup(dnsa, srvname, T_SRV, NULL); diff --git a/src/src/exim.c b/src/src/exim.c index 3170bef98..040df2cd0 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -2339,9 +2339,9 @@ on the second character (the one after '-'), to save some effort. */ /* -bh: Host checking - an IP address must follow. */ case 'h': - if (!*argrest || Ustrcmp(argrest, "c") == 0) + if ( (!*argrest || Ustrcmp(argrest, "c") == 0) + && ++i < argc) { - if (++i >= argc) { badarg = TRUE; break; } sender_host_address = string_copy_taint( exim_str_fail_toolong(argv[i], EXIM_IPADDR_MAX, "-bh"), GET_TAINTED); @@ -2349,7 +2349,8 @@ on the second character (the one after '-'), to save some effort. */ f.host_checking_callout = *argrest == 'c'; message_logs = FALSE; } - else badarg = TRUE; + else + badarg = TRUE; break; /* -bi: This option is used by sendmail to initialize *the* alias file, @@ -2632,14 +2633,11 @@ on the second character (the one after '-'), to save some effort. */ reset_point = store_mark(); while (Ufgets(big_buffer, big_buffer_size, trust_list)) { - uschar *start = big_buffer, *nl; - while (*start && isspace(*start)) - start++; - if (*start != '/') + uschar * start = big_buffer, * nl; + if (Uskip_whitespace(&start) != '/') continue; - nl = Ustrchr(start, '\n'); - if (nl) - *nl = 0; + if ((nl = Ustrchr(start, '\n'))) + *nl = '\0'; trusted_configs[nr_configs++] = string_copy(start); if (nr_configs == nelem(trusted_configs)) break; @@ -2698,7 +2696,7 @@ on the second character (the one after '-'), to save some effort. */ const uschar * s = argrest; opt_D_used = TRUE; - while (isspace(*s)) s++; + Uskip_whitespace(&s); if (*s < 'A' || *s > 'Z') exim_fail("exim: macro name set by -D must start with " @@ -2711,11 +2709,10 @@ on the second character (the one after '-'), to save some effort. */ } name[ptr] = 0; if (ptr == 0) { badarg = TRUE; break; } - while (isspace(*s)) s++; - if (*s != 0) + if (Uskip_whitespace(&s)) { if (*s++ != '=') { badarg = TRUE; break; } - while (isspace(*s)) s++; + Uskip_whitespace(&s); } for (m = macros_user; m; m = m->next) @@ -5447,11 +5444,14 @@ if (host_checking) } /* In case the given address is a non-canonical IPv6 address, canonicalize - it. The code works for both IPv4 and IPv6, as it happens. */ + it. Use the compressed form for IPv6. */ size = host_aton(sender_host_address, x); sender_host_address = store_get(48, GET_UNTAINTED); /* large enough for full IPv6 */ - (void)host_nmtoa(size, x, -1, sender_host_address, ':'); + if (size == 1) + (void) host_nmtoa(size, x, -1, sender_host_address, ':'); + else + (void) ipv6_nmtoa(x, sender_host_address); /* Now set up for testing */ @@ -5918,7 +5918,7 @@ for (BOOL more = TRUE; more; ) receive_add_recipient(string_copy_taint(recipient, GET_TAINTED), -1); s = ss; if (!finished) - while (*(++s) != 0 && (*s == ',' || isspace(*s))); + while (*++s && (*s == ',' || isspace(*s))); } } @@ -6193,3 +6193,5 @@ return 0; /* To stop compiler warning */ /* End of exim.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/exim_dbmbuild.c b/src/src/exim_dbmbuild.c index 9f5f2f042..bd24faa5b 100644 --- a/src/src/exim_dbmbuild.c +++ b/src/src/exim_dbmbuild.c @@ -379,7 +379,7 @@ while (Ufgets(line, max_insize, f) != NULL) else { keystart = s; - while (*s != 0 && *s != ':' && !isspace(*s)) s++; + while (*s && *s != ':' && !isspace(*s)) s++; exim_datum_size_set(&key, s - keystart + add_zero); } @@ -401,11 +401,11 @@ while (Ufgets(line, max_insize, f) != NULL) keybuffer[i] = 0; started = 1; - while (isspace(*s))s++; + while (isspace(*s)) s++; if (*s == ':') { s++; - while (isspace(*s))s++; + while (isspace(*s)) s++; } if (*s != 0) { diff --git a/src/src/exim_dbutil.c b/src/src/exim_dbutil.c index 4d213773b..c868832b1 100644 --- a/src/src/exim_dbutil.c +++ b/src/src/exim_dbutil.c @@ -628,7 +628,7 @@ for (uschar * key = dbfn_scan(dbm, TRUE, &cursor); print_time(retry->first_failed)); printf("%s ", print_time(retry->last_try)); printf("%s %s\n", print_time(retry->next_try), - (retry->expired)? "*" : ""); + retry->expired ? "*" : ""); break; case type_wait: diff --git a/src/src/exinext.src b/src/src/exinext.src index 882ad5f60..5724812c4 100644 --- a/src/src/exinext.src +++ b/src/src/exinext.src @@ -195,45 +195,18 @@ perl - $exim_path "$eximmacdef" $argone $spool_directory $qualify_domain $config $printed = 1; if (/^\s*T:[^:\s]*:/) { + # We rely on non-space-containing strings, for parsing + ($key,$error,$error2,$text) = /^\s*T:(\S+)\s+(\S+)\s+(\S+)\s*(.*)$/; - # Parsing the keys is a nightmare because of IPv6. The design of the - # format for the keys is a complete shambles. All my fault (PH). But - # I don't want to change it just for this purpose. If they key - # contains more than 3 colons, we have an IPv6 address, because - # an IPv6 address must contain at least two colons. - - # Deal with IPv4 addresses (3 colons or fewer) - - if ($key !~ /:([^:]*?:){3}/) - { - ($host,$ip,$port,$msgid) = $key =~ - /^([^:]*):([^:]*)(?::([^:]*)(?::(\S*)|)|)/; - } - - # Deal with IPv6 addresses; sorting out the colons is a complete - # mess. We should be able to find the host name and IP address from - # further in the message. That seems the easiest escape plan here. We - # can use those to match the rest of the key. - - else - { - ($host,$ip) = $text =~ /host\s(\S+)\s\[([^]]+)\]/; - if (defined $host) - { - ($port,$msgid) = $key =~ - /^$host:$ip(?::([^:]*)(?::(\S*)|)|)/; - } - - # This will probably be wrong... - - else - { - ($host,$ip) = $key =~ /([^:]*):(.*)/; - } - } - - printf("Transport: %s [%s]", $host, $ip); + ($host,$ip,$port,$msgid) = $key =~ + /^([^:[]*|\[[^]]*\]) # host (could be an ip) + :([^:[]*|\[[^]]*\]) # ip + (?::(\d{1,5}))? # maybe port + (?::(\S{23}))? # maybe msgid + $/x; + + printf("Transport: %s %s", $host, $ip); print ":$port" if defined $port; print " $msgid" if defined $msgid; print " error $error: $text\n"; diff --git a/src/src/expand.c b/src/src/expand.c index a916eee64..1d121756d 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -1262,7 +1262,8 @@ while (*s) while (*s && *s != '=' && !isspace(*s)) s++; dkeylength = s - dkey; - if (Uskip_whitespace(&s) == '=') while (isspace(*++s)); + if (Uskip_whitespace(&s) == '=') + while (isspace(*++s)) ; data = string_dequote(&s); if (length == dkeylength && strncmpic(key, dkey, length) == 0) @@ -4114,7 +4115,7 @@ if (!*error) if (*s != ')') *error = US"expecting closing parenthesis"; else - while (isspace(*++s)); + while (isspace(*++s)) ; else if (*s) *error = US"expecting operator"; *sptr = s; @@ -7116,7 +7117,7 @@ while (*s) gstring_release_unused(h); s = string_from_gstring(h); } - g = string_cat(g, s); + if (s) g = string_cat(g, s); } /* Assume that if the original local_part had quotes diff --git a/src/src/filter.c b/src/src/filter.c index b56b593b8..8f29eda3e 100644 --- a/src/src/filter.c +++ b/src/src/filter.c @@ -71,35 +71,6 @@ enum { had_neither, had_else, had_elif, had_endif }; static BOOL read_command_list(const uschar **, filter_cmd ***, BOOL); -/* The string arguments for the mail command. The header line ones (that are -permitted to include \n followed by white space) first, and then the body text -one (it can have \n anywhere). Then the file names and once_repeat, which may -not contain \n. */ - -static const char *mailargs[] = { /* "to" must be first, and */ - "to", /* "cc" and "bcc" must follow */ - "cc", - "bcc", - "from", - "reply_to", - "subject", - "extra_headers", /* miscellaneous added header lines */ - "text", - "file", - "log", - "once", - "once_repeat" -}; - -/* The count of string arguments */ - -#define MAILARGS_STRING_COUNT (nelem(mailargs)) - -/* The count of string arguments that are actually passed over as strings -(once_repeat is converted to an int). */ - -#define mailargs_string_passed (MAILARGS_STRING_COUNT - 1) - /* This defines the offsets for the arguments; first the string ones, and then the non-string ones. The order must be as above. */ @@ -120,21 +91,50 @@ enum { mailarg_index_to, mailargs_total /* total number of arguments */ }; +/* The string arguments for the mail command. The header line ones (that are +permitted to include \n followed by white space) first, and then the body text +one (it can have \n anywhere). Then the file names and once_repeat, which may +not contain \n. */ + +static const char *mailargs[] = { /* "to" must be first, and */ + [mailarg_index_to] = "to", /* "cc" and "bcc" must follow */ + [mailarg_index_cc] = "cc", + [mailarg_index_bcc] = "bcc", + [mailarg_index_from] = "from", + [mailarg_index_reply_to] = "reply_to", + [mailarg_index_subject] = "subject", + [mailarg_index_headers] = "extra_headers", /* misc added header lines */ + [mailarg_index_text] = "text", + [mailarg_index_file] = "file", + [mailarg_index_log] = "log", + [mailarg_index_once] = "once", + [mailarg_index_once_repeat] = "once_repeat" +}; + +/* The count of string arguments */ + +#define MAILARGS_STRING_COUNT (nelem(mailargs)) + +/* The count of string arguments that are actually passed over as strings +(once_repeat is converted to an int). */ + +#define mailargs_string_passed (MAILARGS_STRING_COUNT - 1) + /* Offsets in the data structure for the string arguments (note that once_repeat isn't a string argument at this point.) */ -static int reply_offsets[] = { /* must be in same order as above */ - offsetof(reply_item, to), - offsetof(reply_item, cc), - offsetof(reply_item, bcc), - offsetof(reply_item, from), - offsetof(reply_item, reply_to), - offsetof(reply_item, subject), - offsetof(reply_item, headers), - offsetof(reply_item, text), - offsetof(reply_item, file), - offsetof(reply_item, logfile), - offsetof(reply_item, oncelog), +static int reply_offsets[] = { + [mailarg_index_to] = offsetof(reply_item, to), + [mailarg_index_cc] = offsetof(reply_item, cc), + [mailarg_index_bcc] = offsetof(reply_item, bcc), + [mailarg_index_from] = offsetof(reply_item, from), + [mailarg_index_reply_to] = offsetof(reply_item, reply_to), + [mailarg_index_subject] = offsetof(reply_item, subject), + [mailarg_index_headers] = offsetof(reply_item, headers), + [mailarg_index_text] = offsetof(reply_item, text), + [mailarg_index_file] = offsetof(reply_item, file), + [mailarg_index_log] = offsetof(reply_item, logfile), + [mailarg_index_once] = offsetof(reply_item, oncelog), }; /* Condition identities and names, with negated versions for some @@ -147,20 +147,48 @@ enum { cond_and, cond_or, cond_personal, cond_begins, cond_BEGINS, cond_manualthaw, cond_foranyaddress }; static const char *cond_names[] = { - "and", "or", "personal", - "begins", "BEGINS", "ends", "ENDS", - "is", "IS", "matches", "MATCHES", "contains", - "CONTAINS", "delivered", "above", "below", "error_message", - "first_delivery", "manually_thawed", "foranyaddress" }; + [cond_and] = "and", + [cond_or] = "or", + [cond_personal] = "personal", + [cond_begins] = "begins", + [cond_BEGINS] = "BEGINS", + [cond_ends] = "ends", + [cond_ENDS] = "ENDS", + [cond_is] = "is", + [cond_IS] = "IS", + [cond_matches] = "matches", + [cond_MATCHES] = "MATCHES", + [cond_contains] = "contains", + [cond_CONTAINS] = "CONTAINS", + [cond_delivered] = "delivered", + [cond_above] = "above", + [cond_below] = "below", + [cond_errormsg] = "error_message", + [cond_firsttime] = "first_delivery", + [cond_manualthaw] = "manually_thawed", + [cond_foranyaddress] = "foranyaddress" }; static const char *cond_not_names[] = { - "", "", "not personal", - "does not begin", "does not BEGIN", - "does not end", "does not END", - "is not", "IS not", "does not match", - "does not MATCH", "does not contain", "does not CONTAIN", - "not delivered", "not above", "not below", "not error_message", - "not first_delivery", "not manually_thawed", "not foranyaddress" }; + [cond_and] = "", + [cond_or] = "", + [cond_personal] = "not personal", + [cond_begins] = "does not begin", + [cond_BEGINS] = "does not BEGIN", + [cond_ends] = "does not end", + [cond_ENDS] = "does not END", + [cond_is] = "is not", + [cond_IS] = "IS not", + [cond_matches] = "does not match", + [cond_MATCHES] = "does not MATCH", + [cond_contains] = "does not contain", + [cond_CONTAINS] = "does not CONTAIN", + [cond_delivered] = "not delivered", + [cond_above] = "not above", + [cond_below] = "not below", + [cond_errormsg] = "not error_message", + [cond_firsttime] = "not first_delivery", + [cond_manualthaw] = "not manually_thawed", + [cond_foranyaddress] = "not foranyaddress" }; /* Tables of binary condition words and their corresponding types. Not easy to amalgamate with the above because of the different variants. */ @@ -196,34 +224,34 @@ static int cond_types[] = { cond_BEGINS, cond_BEGINS, cond_CONTAINS, /* Command identities */ -enum { add_command, defer_command, deliver_command, elif_command, else_command, - endif_command, finish_command, fail_command, freeze_command, - headers_command, if_command, logfile_command, logwrite_command, - mail_command, noerror_command, pipe_command, save_command, seen_command, - testprint_command, unseen_command, vacation_command }; +enum { ADD_COMMAND, DEFER_COMMAND, DELIVER_COMMAND, ELIF_COMMAND, ELSE_COMMAND, + ENDIF_COMMAND, FINISH_COMMAND, FAIL_COMMAND, FREEZE_COMMAND, + HEADERS_COMMAND, IF_COMMAND, LOGFILE_COMMAND, LOGWRITE_COMMAND, + MAIL_COMMAND, NOERROR_COMMAND, PIPE_COMMAND, SAVE_COMMAND, SEEN_COMMAND, + TESTPRINT_COMMAND, UNSEEN_COMMAND, VACATION_COMMAND }; static const char * command_list[] = { - [add_command] = "add", - [defer_command] = "defer", - [deliver_command] = "deliver", - [elif_command] = "elif", - [else_command] = "else", - [endif_command] = "endif", - [finish_command] = "finish", - [fail_command] = "fail", - [freeze_command] = "freeze", - [headers_command] = "headers", - [if_command] = "if", - [logfile_command] = "logfile", - [logwrite_command] = "logwrite", - [mail_command] = "mail", - [noerror_command] = "noerror", - [pipe_command] = "pipe", - [save_command] = "save", - [seen_command] = "seen", - [testprint_command] = "testprint", - [unseen_command] = "unseen", - [vacation_command] = "vacation" + [ADD_COMMAND] = "add", + [DEFER_COMMAND] = "defer", + [DELIVER_COMMAND] = "deliver", + [ELIF_COMMAND] = "elif", + [ELSE_COMMAND] = "else", + [ENDIF_COMMAND] = "endif", + [FINISH_COMMAND] = "finish", + [FAIL_COMMAND] = "fail", + [FREEZE_COMMAND] = "freeze", + [HEADERS_COMMAND] = "headers", + [IF_COMMAND] = "if", + [LOGFILE_COMMAND] = "logfile", + [LOGWRITE_COMMAND] = "logwrite", + [MAIL_COMMAND] = "mail", + [NOERROR_COMMAND] = "noerror", + [PIPE_COMMAND] = "pipe", + [SAVE_COMMAND] = "save", + [SEEN_COMMAND] = "seen", + [TESTPRINT_COMMAND] = "testprint", + [UNSEEN_COMMAND] = "unseen", + [VACATION_COMMAND] = "vacation" }; static int command_list_count = nelem(command_list); @@ -232,27 +260,27 @@ static int command_list_count = nelem(command_list); If the top bit is set, it means that the default for the command is "seen". */ static uschar command_exparg_count[] = { - [add_command] = 2, - [defer_command] = 1, - [deliver_command] = 128+2, - [elif_command] = 0, - [else_command] = 0, - [endif_command] = 0, - [finish_command] = 0, - [fail_command] = 1, - [freeze_command] = 1, - [headers_command] = 1, - [if_command] = 0, - [logfile_command] = 1, - [logwrite_command] = 1, - [mail_command] = MAILARGS_STRING_COUNT, - [noerror_command] = 0, - [pipe_command] = 128+0, - [save_command] = 128+1, - [seen_command] = 0, - [testprint_command] = 1, - [unseen_command] = 0, - [vacation_command] = MAILARGS_STRING_COUNT + [ADD_COMMAND] = 2, + [DEFER_COMMAND] = 1, + [DELIVER_COMMAND] = 128+2, + [ELIF_COMMAND] = 0, + [ELSE_COMMAND] = 0, + [ENDIF_COMMAND] = 0, + [FINISH_COMMAND] = 0, + [FAIL_COMMAND] = 1, + [FREEZE_COMMAND] = 1, + [HEADERS_COMMAND] = 1, + [IF_COMMAND] = 0, + [LOGFILE_COMMAND] = 1, + [LOGWRITE_COMMAND] = 1, + [MAIL_COMMAND] = MAILARGS_STRING_COUNT, + [NOERROR_COMMAND] = 0, + [PIPE_COMMAND] = 128+0, + [SAVE_COMMAND] = 128+1, + [SEEN_COMMAND] = 0, + [TESTPRINT_COMMAND] = 1, + [UNSEEN_COMMAND] = 0, + [VACATION_COMMAND] = MAILARGS_STRING_COUNT }; @@ -276,16 +304,11 @@ nextsigchar(const uschar *ptr, BOOL comment_allowed) for (;;) { while (isspace(*ptr)) - { - if (*ptr == '\n') line_number++; - ptr++; - } + if (*ptr++ == '\n') line_number++; if (comment_allowed && *ptr == '#') - { - while (*(++ptr) != '\n' && *ptr != 0); - continue; - } - else break; + while (*++ptr != '\n' && *ptr) ; + else + break; } return ptr; } @@ -311,18 +334,19 @@ Returns: pointer to the next significant character after the word static const uschar * nextword(const uschar *ptr, uschar *buffer, int size, BOOL bracket) { -uschar *bp = buffer; -while (*ptr != 0 && !isspace(*ptr) && +uschar * bp = buffer; +while (*ptr && !isspace(*ptr) && (!bracket || (*ptr != '(' && *ptr != ')'))) - { - if (bp - buffer < size - 1) *bp++ = *ptr++; else + if (bp - buffer < size - 1) + *bp++ = *ptr++; + else { *error_pointer = string_sprintf("word is too long in line %d of " "filter file (max = %d chars)", line_number, size); break; } - } -*bp = 0; + +*bp = '\0'; return nextsigchar(ptr, TRUE); } @@ -410,8 +434,8 @@ int value, count; if (sscanf(CS s, "%i%n", &value, &count) != 1) return 0; if (tolower(s[count]) == 'k') { value *= 1024; count++; } if (tolower(s[count]) == 'm') { value *= 1024*1024; count++; } -while (isspace((s[count]))) count++; -if (s[count] != 0) return 0; +while (isspace(s[count])) count++; +if (s[count]) return 0; *ok = TRUE; return value; } @@ -799,8 +823,8 @@ switch(c->type) case cond_errormsg: case cond_firsttime: case cond_manualthaw: - debug_printf("%s", name); - break; + debug_printf("%s", name); + break; case cond_is: case cond_IS: @@ -814,31 +838,31 @@ switch(c->type) case cond_ENDS: case cond_above: case cond_below: - debug_printf("%s %s %s", c->left.u, name, c->right.u); - break; + debug_printf("%s %s %s", c->left.u, name, c->right.u); + break; case cond_and: - if (!c->testfor) debug_printf("not ("); - print_condition(c->left.c, FALSE); - debug_printf(" %s ", cond_names[c->type]); - print_condition(c->right.c, FALSE); - if (!c->testfor) debug_printf(")"); - break; + if (!c->testfor) debug_printf("not ("); + print_condition(c->left.c, FALSE); + debug_printf(" %s ", cond_names[c->type]); + print_condition(c->right.c, FALSE); + if (!c->testfor) debug_printf(")"); + break; case cond_or: - if (!c->testfor) debug_printf("not ("); - else if (!toplevel) debug_printf("("); - print_condition(c->left.c, FALSE); - debug_printf(" %s ", cond_names[c->type]); - print_condition(c->right.c, FALSE); - if (!toplevel || !c->testfor) debug_printf(")"); - break; + if (!c->testfor) debug_printf("not ("); + else if (!toplevel) debug_printf("("); + print_condition(c->left.c, FALSE); + debug_printf(" %s ", cond_names[c->type]); + print_condition(c->right.c, FALSE); + if (!toplevel || !c->testfor) debug_printf(")"); + break; case cond_foranyaddress: - debug_printf("%s %s (", name, c->left.u); - print_condition(c->right.c, FALSE); - debug_printf(")"); - break; + debug_printf("%s %s (", name, c->left.u); + print_condition(c->right.c, FALSE); + debug_printf(")"); + break; } } @@ -908,15 +932,15 @@ switch (command) stored in the second argument slot. Neither may be preceded by seen, unseen or noerror. */ - case add_command: - case headers_command: - if (seen_force || noerror_force) - { - *error_pointer = string_sprintf("\"seen\", \"unseen\", or \"noerror\" " - "found before an \"%s\" command near line %d", - command_list[command], line_number); - yield = FALSE; - } + case ADD_COMMAND: + case HEADERS_COMMAND: + if (seen_force || noerror_force) + { + *error_pointer = string_sprintf("\"seen\", \"unseen\", or \"noerror\" " + "found before an \"%s\" command near line %d", + command_list[command], line_number); + yield = FALSE; + } /* Fall through */ /* Logwrite, logfile, pipe, and testprint all take a single argument, save @@ -924,303 +948,303 @@ switch (command) have "errors_to
" in a system filter, or in a user filter if the address is the current one. */ - case deliver_command: - case logfile_command: - case logwrite_command: - case pipe_command: - case save_command: - case testprint_command: + case DELIVER_COMMAND: + case LOGFILE_COMMAND: + case LOGWRITE_COMMAND: + case PIPE_COMMAND: + case SAVE_COMMAND: + case TESTPRINT_COMMAND: - ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); - if (!*buffer) - *error_pointer = string_sprintf("\"%s\" requires an argument " - "near line %d of filter file", command_list[command], line_number); + ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); + if (!*buffer) + *error_pointer = string_sprintf("\"%s\" requires an argument " + "near line %d of filter file", command_list[command], line_number); - if (*error_pointer) yield = FALSE; else - { - union argtypes argument, second_argument; + if (*error_pointer) yield = FALSE; else + { + union argtypes argument, second_argument; - argument.u = second_argument.u = NULL; + argument.u = second_argument.u = NULL; - if (command == add_command) - { - argument.u = string_copy(buffer); - ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); - if (!*buffer || Ustrcmp(buffer, "to") != 0) - *error_pointer = string_sprintf("\"to\" expected in \"add\" command " - "near line %d of filter file", line_number); - else - { - ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); - if (!*buffer) - *error_pointer = string_sprintf("value missing after \"to\" " - "near line %d of filter file", line_number); - else second_argument.u = string_copy(buffer); - } - } + if (command == ADD_COMMAND) + { + argument.u = string_copy(buffer); + ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); + if (!*buffer || Ustrcmp(buffer, "to") != 0) + *error_pointer = string_sprintf("\"to\" expected in \"add\" command " + "near line %d of filter file", line_number); + else + { + ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); + if (!*buffer) + *error_pointer = string_sprintf("value missing after \"to\" " + "near line %d of filter file", line_number); + else second_argument.u = string_copy(buffer); + } + } - else if (command == headers_command) - { - if (Ustrcmp(buffer, "add") == 0) - second_argument.b = TRUE; - else - if (Ustrcmp(buffer, "remove") == 0) second_argument.b = FALSE; - else - if (Ustrcmp(buffer, "charset") == 0) - second_argument.b = TRUE_UNSET; - else - { - *error_pointer = string_sprintf("\"add\", \"remove\", or \"charset\" " - "expected after \"headers\" near line %d of filter file", - line_number); - yield = FALSE; - } + else if (command == HEADERS_COMMAND) + { + if (Ustrcmp(buffer, "add") == 0) + second_argument.b = TRUE; + else + if (Ustrcmp(buffer, "remove") == 0) second_argument.b = FALSE; + else + if (Ustrcmp(buffer, "charset") == 0) + second_argument.b = TRUE_UNSET; + else + { + *error_pointer = string_sprintf("\"add\", \"remove\", or \"charset\" " + "expected after \"headers\" near line %d of filter file", + line_number); + yield = FALSE; + } - if (!f.system_filtering && second_argument.b != TRUE_UNSET) - { - *error_pointer = string_sprintf("header addition and removal is " - "available only in system filters: near line %d of filter file", - line_number); - yield = FALSE; - break; - } + if (!f.system_filtering && second_argument.b != TRUE_UNSET) + { + *error_pointer = string_sprintf("header addition and removal is " + "available only in system filters: near line %d of filter file", + line_number); + yield = FALSE; + break; + } - if (yield) - { - ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); - if (!*buffer) - *error_pointer = string_sprintf("value missing after \"add\", " - "\"remove\", or \"charset\" near line %d of filter file", - line_number); - else argument.u = string_copy(buffer); - } - } + if (yield) + { + ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); + if (!*buffer) + *error_pointer = string_sprintf("value missing after \"add\", " + "\"remove\", or \"charset\" near line %d of filter file", + line_number); + else argument.u = string_copy(buffer); + } + } - /* The argument for the logwrite command must end in a newline, and the save - and logfile commands can have an optional mode argument. The deliver - command can have an optional "errors_to
" for a system filter, - or for a user filter if the address is the user's address. Accept the - syntax here - the check is later. */ + /* The argument for the logwrite command must end in a newline, and the save + and logfile commands can have an optional mode argument. The deliver + command can have an optional "errors_to
" for a system filter, + or for a user filter if the address is the user's address. Accept the + syntax here - the check is later. */ - else - { - if (command == logwrite_command) - { - int len = Ustrlen(buffer); - if (len == 0 || buffer[len-1] != '\n') Ustrcat(buffer, US"\n"); - } + else + { + if (command == LOGWRITE_COMMAND) + { + int len = Ustrlen(buffer); + if (len == 0 || buffer[len-1] != '\n') Ustrcat(buffer, US"\n"); + } - argument.u = string_copy(buffer); + argument.u = string_copy(buffer); - if (command == save_command || command == logfile_command) - { - if (isdigit(*ptr)) - { - ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); - second_argument.i = (int)Ustrtol(buffer, NULL, 8); - } - else second_argument.i = -1; - } + if (command == SAVE_COMMAND || command == LOGFILE_COMMAND) + { + if (isdigit(*ptr)) + { + ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); + second_argument.i = (int)Ustrtol(buffer, NULL, 8); + } + else second_argument.i = -1; + } - else if (command == deliver_command) - { - const uschar *save_ptr = ptr; - ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); - if (Ustrcmp(buffer, "errors_to") == 0) - { - ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); - second_argument.u = string_copy(buffer); - } - else ptr = save_ptr; - } - } + else if (command == DELIVER_COMMAND) + { + const uschar *save_ptr = ptr; + ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); + if (Ustrcmp(buffer, "errors_to") == 0) + { + ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); + second_argument.u = string_copy(buffer); + } + else ptr = save_ptr; + } + } - /* Set up the command block. Seen defaults TRUE for delivery commands, - FALSE for logging commands, and it doesn't matter for testprint, as - that doesn't change the "delivered" status. */ + /* Set up the command block. Seen defaults TRUE for delivery commands, + FALSE for logging commands, and it doesn't matter for testprint, as + that doesn't change the "delivered" status. */ - if (*error_pointer) yield = FALSE; - else - { - new = store_get(sizeof(filter_cmd) + sizeof(union argtypes), GET_UNTAINTED); - new->next = NULL; - **lastcmdptr = new; - *lastcmdptr = &(new->next); - new->command = command; - new->seen = seen_force? seen_value : command_exparg_count[command] >= 128; - new->noerror = noerror_force; - new->args[0] = argument; - new->args[1] = second_argument; + if (*error_pointer) yield = FALSE; + else + { + new = store_get(sizeof(filter_cmd) + sizeof(union argtypes), GET_UNTAINTED); + new->next = NULL; + **lastcmdptr = new; + *lastcmdptr = &(new->next); + new->command = command; + new->seen = seen_force? seen_value : command_exparg_count[command] >= 128; + new->noerror = noerror_force; + new->args[0] = argument; + new->args[1] = second_argument; + } } - } - break; + break; /* Elif, else and endif just set a flag if expected. */ - case elif_command: - case else_command: - case endif_command: - if (seen_force || noerror_force) - { - *error_pointer = string_sprintf("\"seen\", \"unseen\", or \"noerror\" " - "near line %d is not followed by a command", line_number); - yield = FALSE; - } + case ELIF_COMMAND: + case ELSE_COMMAND: + case ENDIF_COMMAND: + if (seen_force || noerror_force) + { + *error_pointer = string_sprintf("\"seen\", \"unseen\", or \"noerror\" " + "near line %d is not followed by a command", line_number); + yield = FALSE; + } - if (expect_endif > 0) - had_else_endif = (command == elif_command)? had_elif : - (command == else_command)? had_else : had_endif; - else - { - *error_pointer = string_sprintf("unexpected \"%s\" command near " - "line %d of filter file", buffer, line_number); - yield = FALSE; - } - break; + if (expect_endif > 0) + had_else_endif = (command == ELIF_COMMAND)? had_elif : + (command == ELSE_COMMAND)? had_else : had_endif; + else + { + *error_pointer = string_sprintf("unexpected \"%s\" command near " + "line %d of filter file", buffer, line_number); + yield = FALSE; + } + break; /* Defer, freeze, and fail are available only if permitted. */ - case defer_command: - cmd_bit = RDO_DEFER; - goto DEFER_FREEZE_FAIL; + case DEFER_COMMAND: + cmd_bit = RDO_DEFER; + goto DEFER_FREEZE_FAIL; - case fail_command: - cmd_bit = RDO_FAIL; - goto DEFER_FREEZE_FAIL; + case FAIL_COMMAND: + cmd_bit = RDO_FAIL; + goto DEFER_FREEZE_FAIL; - case freeze_command: - cmd_bit = RDO_FREEZE; + case FREEZE_COMMAND: + cmd_bit = RDO_FREEZE; DEFER_FREEZE_FAIL: - if ((filter_options & cmd_bit) == 0) - { - *error_pointer = string_sprintf("filtering command \"%s\" is disabled: " - "near line %d of filter file", buffer, line_number); - yield = FALSE; - break; - } + if ((filter_options & cmd_bit) == 0) + { + *error_pointer = string_sprintf("filtering command \"%s\" is disabled: " + "near line %d of filter file", buffer, line_number); + yield = FALSE; + break; + } - /* A text message can be provided after the "text" keyword, or - as a string in quotes. */ + /* A text message can be provided after the "text" keyword, or + as a string in quotes. */ - saveptr = ptr; - ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); - if (*saveptr != '\"' && (!*buffer || Ustrcmp(buffer, "text") != 0)) - { - ptr = saveptr; - fmsg = US""; - } - else - { - if (*saveptr != '\"') - ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); - fmsg = string_copy(buffer); - } + saveptr = ptr; + ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); + if (*saveptr != '\"' && (!*buffer || Ustrcmp(buffer, "text") != 0)) + { + ptr = saveptr; + fmsg = US""; + } + else + { + if (*saveptr != '\"') + ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); + fmsg = string_copy(buffer); + } - /* Drop through and treat as "finish", but never set "seen". */ + /* Drop through and treat as "finish", but never set "seen". */ - seen_value = FALSE; + seen_value = FALSE; - /* Finish has no arguments; fmsg defaults to NULL */ + /* Finish has no arguments; fmsg defaults to NULL */ - case finish_command: - new = store_get(sizeof(filter_cmd), GET_UNTAINTED); - new->next = NULL; - **lastcmdptr = new; - *lastcmdptr = &(new->next); - new->command = command; - new->seen = seen_force ? seen_value : FALSE; - new->args[0].u = fmsg; - break; + case FINISH_COMMAND: + new = store_get(sizeof(filter_cmd), GET_UNTAINTED); + new->next = NULL; + **lastcmdptr = new; + *lastcmdptr = &(new->next); + new->command = command; + new->seen = seen_force ? seen_value : FALSE; + new->args[0].u = fmsg; + break; /* Seen, unseen, and noerror are not allowed before if, which takes a condition argument and then and else sub-commands. */ - case if_command: - if (seen_force || noerror_force) - { - *error_pointer = string_sprintf("\"seen\", \"unseen\", or \"noerror\" " - "found before an \"if\" command near line %d", - line_number); - yield = FALSE; - } + case IF_COMMAND: + if (seen_force || noerror_force) + { + *error_pointer = string_sprintf("\"seen\", \"unseen\", or \"noerror\" " + "found before an \"if\" command near line %d", + line_number); + yield = FALSE; + } - /* Set up the command block for if */ + /* Set up the command block for if */ - new = store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes), GET_UNTAINTED); - new->next = NULL; - **lastcmdptr = new; - *lastcmdptr = &new->next; - new->command = command; - new->seen = FALSE; - new->args[0].u = NULL; - new->args[1].u = new->args[2].u = NULL; - new->args[3].u = ptr; + new = store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes), GET_UNTAINTED); + new->next = NULL; + **lastcmdptr = new; + *lastcmdptr = &new->next; + new->command = command; + new->seen = FALSE; + new->args[0].u = NULL; + new->args[1].u = new->args[2].u = NULL; + new->args[3].u = ptr; - /* Read the condition */ + /* Read the condition */ - ptr = read_condition(ptr, &new->args[0].c, TRUE); - if (*error_pointer) { yield = FALSE; break; } + ptr = read_condition(ptr, &new->args[0].c, TRUE); + if (*error_pointer) { yield = FALSE; break; } - /* Read the commands to be obeyed if the condition is true */ + /* Read the commands to be obeyed if the condition is true */ - newlastcmdptr = &(new->args[1].f); - if (!read_command_list(&ptr, &newlastcmdptr, TRUE)) yield = FALSE; + newlastcmdptr = &(new->args[1].f); + if (!read_command_list(&ptr, &newlastcmdptr, TRUE)) yield = FALSE; - /* If commands were successfully read, handle the various possible - terminators. There may be a number of successive "elif" sections. */ + /* If commands were successfully read, handle the various possible + terminators. There may be a number of successive "elif" sections. */ - else - { - while (had_else_endif == had_elif) + else { - filter_cmd *newnew = - store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes), GET_UNTAINTED); - new->args[2].f = newnew; - new = newnew; - new->next = NULL; - new->command = command; - new->seen = FALSE; - new->args[0].u = NULL; - new->args[1].u = new->args[2].u = NULL; - new->args[3].u = ptr; - - ptr = read_condition(ptr, &new->args[0].c, TRUE); - if (*error_pointer) { yield = FALSE; break; } - newlastcmdptr = &(new->args[1].f); - if (!read_command_list(&ptr, &newlastcmdptr, TRUE)) - yield = FALSE; - } + while (had_else_endif == had_elif) + { + filter_cmd *newnew = + store_get(sizeof(filter_cmd) + 4 * sizeof(union argtypes), GET_UNTAINTED); + new->args[2].f = newnew; + new = newnew; + new->next = NULL; + new->command = command; + new->seen = FALSE; + new->args[0].u = NULL; + new->args[1].u = new->args[2].u = NULL; + new->args[3].u = ptr; + + ptr = read_condition(ptr, &new->args[0].c, TRUE); + if (*error_pointer) { yield = FALSE; break; } + newlastcmdptr = &(new->args[1].f); + if (!read_command_list(&ptr, &newlastcmdptr, TRUE)) + yield = FALSE; + } - if (yield == FALSE) break; + if (yield == FALSE) break; - /* Handle termination by "else", possibly following one or more - "elsif" sections. */ + /* Handle termination by "else", possibly following one or more + "elsif" sections. */ - if (had_else_endif == had_else) - { - newlastcmdptr = &(new->args[2].f); - if (!read_command_list(&ptr, &newlastcmdptr, TRUE)) - yield = FALSE; - else if (had_else_endif != had_endif) - { - *error_pointer = string_sprintf("\"endif\" missing near line %d of " - "filter file", line_number); - yield = FALSE; - } - } + if (had_else_endif == had_else) + { + newlastcmdptr = &(new->args[2].f); + if (!read_command_list(&ptr, &newlastcmdptr, TRUE)) + yield = FALSE; + else if (had_else_endif != had_endif) + { + *error_pointer = string_sprintf("\"endif\" missing near line %d of " + "filter file", line_number); + yield = FALSE; + } + } - /* Otherwise the terminator was "endif" - this is checked by - read_command_list(). The pointer is already set to NULL. */ - } + /* Otherwise the terminator was "endif" - this is checked by + read_command_list(). The pointer is already set to NULL. */ + } - /* Reset the terminator flag. */ + /* Reset the terminator flag. */ - had_else_endif = had_neither; - break; + had_else_endif = had_neither; + break; /* The mail & vacation commands have a whole slew of keyworded arguments. @@ -1229,150 +1253,150 @@ switch (command) are logically booleans, because they are stored in a uschar * value, we use NULL and not FALSE, to keep 64-bit compilers happy. */ - case mail_command: - case vacation_command: - new = store_get(sizeof(filter_cmd) + mailargs_total * sizeof(union argtypes), GET_UNTAINTED); - new->next = NULL; - new->command = command; - new->seen = seen_force ? seen_value : FALSE; - new->noerror = noerror_force; - for (i = 0; i < mailargs_total; i++) new->args[i].u = NULL; - - /* Read keyword/value pairs until we hit one that isn't. The data - must contain only printing chars plus tab, though the "text" value - can also contain newlines. The "file" keyword can be preceded by the - word "expand", and "return message" has no data. */ - - for (;;) - { - const uschar *saveptr = ptr; - ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); - if (*error_pointer) - { yield = FALSE; break; } - - /* Ensure "return" is followed by "message"; that's a complete option */ - - if (Ustrcmp(buffer, "return") == 0) + case MAIL_COMMAND: + case VACATION_COMMAND: + new = store_get(sizeof(filter_cmd) + mailargs_total * sizeof(union argtypes), GET_UNTAINTED); + new->next = NULL; + new->command = command; + new->seen = seen_force ? seen_value : FALSE; + new->noerror = noerror_force; + for (i = 0; i < mailargs_total; i++) new->args[i].u = NULL; + + /* Read keyword/value pairs until we hit one that isn't. The data + must contain only printing chars plus tab, though the "text" value + can also contain newlines. The "file" keyword can be preceded by the + word "expand", and "return message" has no data. */ + + for (;;) { - new->args[mailarg_index_return].u = US""; /* not NULL => TRUE */ + const uschar *saveptr = ptr; ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); - if (Ustrcmp(buffer, "message") != 0) - { - *error_pointer = string_sprintf("\"return\" not followed by \"message\" " - " near line %d of filter file", line_number); - yield = FALSE; - break; - } - continue; - } + if (*error_pointer) + { yield = FALSE; break; } - /* Ensure "expand" is followed by "file", then fall through to process the - file keyword. */ + /* Ensure "return" is followed by "message"; that's a complete option */ - if (Ustrcmp(buffer, "expand") == 0) - { - new->args[mailarg_index_expand].u = US""; /* not NULL => TRUE */ - ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); - if (Ustrcmp(buffer, "file") != 0) - { - *error_pointer = string_sprintf("\"expand\" not followed by \"file\" " - " near line %d of filter file", line_number); - yield = FALSE; - break; - } - } + if (Ustrcmp(buffer, "return") == 0) + { + new->args[mailarg_index_return].u = US""; /* not NULL => TRUE */ + ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); + if (Ustrcmp(buffer, "message") != 0) + { + *error_pointer = string_sprintf("\"return\" not followed by \"message\" " + " near line %d of filter file", line_number); + yield = FALSE; + break; + } + continue; + } - /* Scan for the keyword */ + /* Ensure "expand" is followed by "file", then fall through to process the + file keyword. */ - for (i = 0; i < MAILARGS_STRING_COUNT; i++) - if (Ustrcmp(buffer, mailargs[i]) == 0) break; + if (Ustrcmp(buffer, "expand") == 0) + { + new->args[mailarg_index_expand].u = US""; /* not NULL => TRUE */ + ptr = nextword(ptr, buffer, sizeof(buffer), FALSE); + if (Ustrcmp(buffer, "file") != 0) + { + *error_pointer = string_sprintf("\"expand\" not followed by \"file\" " + " near line %d of filter file", line_number); + yield = FALSE; + break; + } + } - /* Not found keyword; assume end of this command */ + /* Scan for the keyword */ - if (i >= MAILARGS_STRING_COUNT) - { - ptr = saveptr; - break; - } + for (i = 0; i < MAILARGS_STRING_COUNT; i++) + if (Ustrcmp(buffer, mailargs[i]) == 0) break; - /* Found keyword, read the data item */ + /* Not found keyword; assume end of this command */ - ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); - if (*error_pointer) - { yield = FALSE; break; } - else new->args[i].u = string_copy(buffer); - } + if (i >= MAILARGS_STRING_COUNT) + { + ptr = saveptr; + break; + } - /* If this is the vacation command, apply some default settings to - some of the arguments. */ + /* Found keyword, read the data item */ - if (command == vacation_command) - { - if (!new->args[mailarg_index_file].u) + ptr = nextitem(ptr, buffer, sizeof(buffer), FALSE); + if (*error_pointer) + { yield = FALSE; break; } + else new->args[i].u = string_copy(buffer); + } + + /* If this is the vacation command, apply some default settings to + some of the arguments. */ + + if (command == VACATION_COMMAND) { - new->args[mailarg_index_file].u = string_copy(US".vacation.msg"); - new->args[mailarg_index_expand].u = US""; /* not NULL => TRUE */ + if (!new->args[mailarg_index_file].u) + { + new->args[mailarg_index_file].u = string_copy(US".vacation.msg"); + new->args[mailarg_index_expand].u = US""; /* not NULL => TRUE */ + } + if (!new->args[mailarg_index_log].u) + new->args[mailarg_index_log].u = string_copy(US".vacation.log"); + if (!new->args[mailarg_index_once].u) + new->args[mailarg_index_once].u = string_copy(US".vacation"); + if (!new->args[mailarg_index_once_repeat].u) + new->args[mailarg_index_once_repeat].u = string_copy(US"7d"); + if (!new->args[mailarg_index_subject].u) + new->args[mailarg_index_subject].u = string_copy(US"On vacation"); } - if (!new->args[mailarg_index_log].u) - new->args[mailarg_index_log].u = string_copy(US".vacation.log"); - if (!new->args[mailarg_index_once].u) - new->args[mailarg_index_once].u = string_copy(US".vacation"); - if (!new->args[mailarg_index_once_repeat].u) - new->args[mailarg_index_once_repeat].u = string_copy(US"7d"); - if (!new->args[mailarg_index_subject].u) - new->args[mailarg_index_subject].u = string_copy(US"On vacation"); - } - /* Join the address on to the chain of generated addresses */ + /* Join the address on to the chain of generated addresses */ - **lastcmdptr = new; - *lastcmdptr = &(new->next); - break; + **lastcmdptr = new; + *lastcmdptr = &(new->next); + break; /* Seen and unseen just set flags */ - case seen_command: - case unseen_command: - if (!*ptr) - { - *error_pointer = string_sprintf("\"seen\" or \"unseen\" " - "near line %d is not followed by a command", line_number); - yield = FALSE; - } - if (seen_force) - { - *error_pointer = string_sprintf("\"seen\" or \"unseen\" repeated " - "near line %d", line_number); - yield = FALSE; - } - seen_value = (command == seen_command); - seen_force = TRUE; - was_seen_or_unseen = TRUE; - break; + case SEEN_COMMAND: + case UNSEEN_COMMAND: + if (!*ptr) + { + *error_pointer = string_sprintf("\"seen\" or \"unseen\" " + "near line %d is not followed by a command", line_number); + yield = FALSE; + } + if (seen_force) + { + *error_pointer = string_sprintf("\"seen\" or \"unseen\" repeated " + "near line %d", line_number); + yield = FALSE; + } + seen_value = (command == SEEN_COMMAND); + seen_force = TRUE; + was_seen_or_unseen = TRUE; + break; /* So does noerror */ - case noerror_command: - if (!*ptr) - { - *error_pointer = string_sprintf("\"noerror\" " - "near line %d is not followed by a command", line_number); - yield = FALSE; - } - noerror_force = TRUE; - was_noerror = TRUE; - break; + case NOERROR_COMMAND: + if (!*ptr) + { + *error_pointer = string_sprintf("\"noerror\" " + "near line %d is not followed by a command", line_number); + yield = FALSE; + } + noerror_force = TRUE; + was_noerror = TRUE; + break; /* Oops */ default: - *error_pointer = string_sprintf("unknown filtering command \"%s\" " - "near line %d of filter file", buffer, line_number); - yield = FALSE; - break; + *error_pointer = string_sprintf("unknown filtering command \"%s\" " + "near line %d of filter file", buffer, line_number); + yield = FALSE; + break; } if (!was_seen_or_unseen && !was_noerror) @@ -1716,7 +1740,7 @@ while (commands) switch(commands->command) { - case add_command: + case ADD_COMMAND: for (i = 0; i < 2; i++) { const uschar *ss = expargs[i]; @@ -1748,7 +1772,7 @@ while (commands) /* A deliver command's argument must be a valid address. Its optional second argument (system filter only) must also be a valid address. */ - case deliver_command: + case DELIVER_COMMAND: for (i = 0; i < 2; i++) { s = expargs[i]; @@ -1824,7 +1848,7 @@ while (commands) } break; - case save_command: + case SAVE_COMMAND: s = expargs[0]; mode = commands->args[1].i; @@ -1867,7 +1891,7 @@ while (commands) } break; - case pipe_command: + case PIPE_COMMAND: s = string_copy(commands->args[0].u); if (filter_test != FTEST_NONE) { @@ -1917,7 +1941,7 @@ while (commands) /* Set up the file name and mode, and close any previously open file. */ - case logfile_command: + case LOGFILE_COMMAND: log_mode = commands->args[1].i; if (log_mode == -1) log_mode = 0600; if (log_fd >= 0) @@ -1933,7 +1957,7 @@ while (commands) } break; - case logwrite_command: + case LOGWRITE_COMMAND: s = expargs[0]; if (filter_test != FTEST_NONE) @@ -1992,7 +2016,7 @@ while (commands) command is rejected at parse time otherwise. However "headers charset" is always permitted. */ - case headers_command: + case HEADERS_COMMAND: { int subtype = commands->args[1].i; s = expargs[0]; @@ -2006,8 +2030,7 @@ while (commands) if (subtype == TRUE) { - while (isspace(*s)) s++; - if (*s) + if (Uskip_whitespace(&s)) { header_add(htype_other, "%s%s", s, s[Ustrlen(s)-1] == '\n' ? "" : "\n"); @@ -2037,17 +2060,17 @@ while (commands) very long by the inclusion of message headers; truncate if it is, and also ensure printing characters so as not to mess up log files. */ - case defer_command: + case DEFER_COMMAND: ff_name = US"defer"; ff_ret = FF_DEFER; goto DEFERFREEZEFAIL; - case fail_command: + case FAIL_COMMAND: ff_name = US"fail"; ff_ret = FF_FAIL; goto DEFERFREEZEFAIL; - case freeze_command: + case FREEZE_COMMAND: ff_name = US"freeze"; ff_ret = FF_FREEZE; @@ -2067,7 +2090,7 @@ while (commands) DEBUG(D_filter) debug_printf_indent("Filter: %s \"%s\"\n", ff_name, fmsg); return ff_ret; - case finish_command: + case FINISH_COMMAND: if (filter_test != FTEST_NONE) { indent(); @@ -2079,7 +2102,7 @@ while (commands) finish_obeyed = TRUE; return filter_delivered ? FF_DELIVERED : FF_NOTDELIVERED; - case if_command: + case IF_COMMAND: { uschar *save_address = filter_thisaddress; int ok = FF_DELIVERED; @@ -2104,8 +2127,8 @@ while (commands) return path is unset or if a non-trusted user supplied -f <> as the return path. */ - case mail_command: - case vacation_command: + case MAIL_COMMAND: + case VACATION_COMMAND: if (!return_path || !*return_path) { if (filter_test != FTEST_NONE) @@ -2201,7 +2224,7 @@ while (commands) indent(); printf("%sail to: %s%s%s\n", (commands->seen)? "Seen m" : "M", to ? to : US"", - commands->command == vacation_command ? " (vacation)" : "", + commands->command == VACATION_COMMAND ? " (vacation)" : "", commands->noerror ? " (noerror)" : ""); for (i = 1; i < MAILARGS_STRING_COUNT; i++) { @@ -2226,7 +2249,7 @@ while (commands) gstring * log_addr = NULL; if (!to) to = expand_string(US"$reply_address"); - while (isspace(*to)) to++; + Uskip_whitespace(&to); for (tt = to; *tt; tt++) /* Get rid of newlines */ if (*tt == '\n') @@ -2243,7 +2266,7 @@ while (commands) debug_printf_indent("Filter: %smail to: %s%s%s\n", commands->seen ? "seen " : "", to, - commands->command == vacation_command ? " (vacation)" : "", + commands->command == VACATION_COMMAND ? " (vacation)" : "", commands->noerror ? " (noerror)" : ""); for (i = 1; i < MAILARGS_STRING_COUNT; i++) { @@ -2298,7 +2321,7 @@ while (commands) /* Move on past this address */ tt = ss + (*ss ? 1 : 0); - while (isspace(*tt)) tt++; + Uskip_whitespace(&tt); } if (log_addr) @@ -2349,7 +2372,7 @@ while (commands) } break; - case testprint_command: + case TESTPRINT_COMMAND: if (filter_test != FTEST_NONE || (debug_selector & D_filter) != 0) { const uschar *s = string_printing(expargs[0]); @@ -2612,3 +2635,5 @@ return yield; /* End of filter.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/functions.h b/src/src/functions.h index 0e657d7c4..08fa24f3d 100644 --- a/src/src/functions.h +++ b/src/src/functions.h @@ -253,7 +253,7 @@ extern BOOL dscp_lookup(const uschar *, int, int *, int *, int *); extern void enq_end(uschar *); extern BOOL enq_start(uschar *, unsigned); #ifndef DISABLE_EVENT -extern uschar *event_raise(uschar *, const uschar *, uschar *, int *); +extern uschar *event_raise(const uschar *, const uschar *, const uschar *, int *); extern void msg_event_raise(const uschar *, const address_item *); #endif @@ -311,7 +311,7 @@ extern BOOL host_is_tls_on_connect_port(int); extern int host_item_get_port(host_item *); extern void host_mask(int, int *, int); extern int host_name_lookup(void); -extern int host_nmtoa(int, int *, int, uschar *, int); +extern int host_nmtoa(int, const int *, int, uschar *, int); extern uschar *host_ntoa(int, const void *, uschar *, int *); extern int host_scan_for_local_hosts(host_item *, host_item **, BOOL *); @@ -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); @@ -454,11 +454,14 @@ extern BOOL regex_match_and_setup(const pcre2_code *, const uschar *, int, in extern const pcre2_code *regex_compile(const uschar *, mcs_flags, uschar **, pcre2_compile_context *); extern const pcre2_code *regex_must_compile(const uschar *, mcs_flags, BOOL); -extern void retry_add_item(address_item *, uschar *, int); + +extern void retry_add_item(address_item *, const uschar *, int); extern BOOL retry_check_address(const uschar *, host_item *, uschar *, BOOL, - uschar **, uschar **); + const uschar **, const uschar **); extern retry_config *retry_find_config(const uschar *, const uschar *, int, int); -extern BOOL retry_ultimate_address_timeout(uschar *, const uschar *, +extern const uschar *retry_host_key_build(const host_item *, BOOL, + const uschar *); +extern BOOL retry_ultimate_address_timeout(const uschar *, const uschar *, dbdata_retry *, time_t); extern void retry_update(address_item **, address_item **, address_item **); extern const uschar *rewrite_address(const uschar *, BOOL, BOOL, rewrite_rule *, int); @@ -567,7 +570,6 @@ extern gstring *string_append_listele_n(gstring *, uschar, const uschar *, unsig extern gstring *string_append2_listele_n(gstring *, const uschar *, const uschar *, unsigned) WARN_UNUSED_RESULT; extern uschar *string_base62_32(unsigned long int); extern uschar *string_base62_64(unsigned long int); -extern gstring *string_cat (gstring *, const uschar * ) WARN_UNUSED_RESULT; extern gstring *string_catn(gstring *, const uschar *, int) WARN_UNUSED_RESULT; extern int string_compare_by_pointer(const void *, const void *); extern uschar *string_copy_dnsdomain(uschar *); @@ -767,6 +769,12 @@ Return the next char as there's enough places using it to be useful. */ static inline uschar skip_whitespace(const uschar ** sp) { while (isspace(**sp)) (*sp)++; return **sp; } +/* Ditto, non-whitespace */ + +#define Uskip_nonwhite(sp) skip_nonwhite(CUSS sp) +static inline uschar skip_nonwhite(const uschar ** sp) +{ while (**sp && !isspace(**sp)) (*sp)++; return **sp; } + /******************************************************************************/ @@ -1044,6 +1052,18 @@ if (g) store_release_above_3(g->s + (g->size = g->ptr + 1), file, line); } +/* plain string append to a growable-string */ + +static inline gstring * string_cat(gstring * g, const uschar * s) + WARN_UNUSED_RESULT; + +static inline gstring * +string_cat(gstring * g, const uschar * s) +{ +return string_catn(g, s, Ustrlen(s)); +} + + /* sprintf-append to a growable-string */ #define string_fmt_append(g, fmt, ...) \ @@ -1079,6 +1099,7 @@ g->s = s; } /* Append one gstring to another */ + static inline gstring * gstring_append(gstring * dest, gstring * item) { diff --git a/src/src/globals.c b/src/src/globals.c index 4af8668f0..4e5fd2991 100644 --- a/src/src/globals.c +++ b/src/src/globals.c @@ -387,7 +387,7 @@ BOOL mua_wrapper = FALSE; BOOL preserve_message_logs = FALSE; BOOL print_topbitchars = FALSE; BOOL prod_requires_admin = TRUE; -#if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS) || defined(EXPERIMETAL_XCLIENT) +#if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS) || defined(EXPERIMENTAL_XCLIENT) BOOL proxy_session = FALSE; #endif @@ -467,6 +467,9 @@ uschar *acl_smtp_quit = NULL; uschar *acl_smtp_rcpt = NULL; uschar *acl_smtp_starttls = NULL; uschar *acl_smtp_vrfy = NULL; +#ifdef EXPERIMENTAL_WELLKNOWN +uschar *acl_smtp_wellknown = NULL; +#endif tree_node *acl_var_c = NULL; tree_node *acl_var_m = NULL; @@ -474,56 +477,49 @@ uschar *acl_verify_message = NULL; string_item *acl_warn_logged = NULL; /* Names of SMTP places for use in ACL error messages, and corresponding SMTP -error codes - keep in step with definitions of ACL_WHERE_xxxx in macros.h. */ - -uschar *acl_wherenames[] = { US"RCPT", - US"MAIL", - US"PREDATA", - US"MIME", - US"DKIM", - US"DATA", +error codes (only those used) */ + +uschar *acl_wherenames[] = { [ACL_WHERE_RCPT] = US"RCPT", + [ACL_WHERE_MAIL] = US"MAIL", + [ACL_WHERE_PREDATA] = US"PREDATA", + [ACL_WHERE_MIME] = US"MIME", + [ACL_WHERE_DKIM] = US"DKIM", + [ACL_WHERE_DATA] = US"DATA", #ifndef DISABLE_PRDR - US"PRDR", -#endif - US"non-SMTP", - US"AUTH", - US"connection", - US"ETRN", - US"EXPN", - US"EHLO or HELO", - US"MAILAUTH", - US"non-SMTP-start", - US"NOTQUIT", - US"QUIT", - US"STARTTLS", - US"VRFY", - US"delivery", - US"unknown" + [ACL_WHERE_PRDR] = US"PRDR", +#endif + [ACL_WHERE_NOTSMTP] = US"non-SMTP", + [ACL_WHERE_AUTH] = US"AUTH", + [ACL_WHERE_CONNECT] = US"connection", + [ACL_WHERE_ETRN] = US"ETRN", + [ACL_WHERE_EXPN] = US"EXPN", + [ACL_WHERE_HELO] = US"EHLO or HELO", + [ACL_WHERE_MAILAUTH] = US"MAILAUTH", + [ACL_WHERE_NOTSMTP_START] = US"non-SMTP-start", + [ACL_WHERE_NOTQUIT] = US"NOTQUIT", + [ACL_WHERE_QUIT] = US"QUIT", + [ACL_WHERE_STARTTLS] = US"STARTTLS", + [ACL_WHERE_VRFY] = US"VRFY", + [ACL_WHERE_DELIVERY] = US"delivery", + [ACL_WHERE_UNKNOWN] = US"unknown" }; -uschar *acl_wherecodes[] = { US"550", /* RCPT */ - US"550", /* MAIL */ - US"550", /* PREDATA */ - US"550", /* MIME */ - US"550", /* DKIM */ - US"550", /* DATA */ +uschar *acl_wherecodes[] = { [ACL_WHERE_RCPT] = US"550", + [ACL_WHERE_MAIL] = US"550", + [ACL_WHERE_PREDATA] = US"550", + [ACL_WHERE_MIME] = US"550", + [ACL_WHERE_DKIM] = US"550", + [ACL_WHERE_DATA] = US"550", #ifndef DISABLE_PRDR - US"550", /* RCPT PRDR */ -#endif - US"0", /* not SMTP; not relevant */ - US"503", /* AUTH */ - US"550", /* connect */ - US"458", /* ETRN */ - US"550", /* EXPN */ - US"550", /* HELO/EHLO */ - US"0", /* MAILAUTH; not relevant */ - US"0", /* not SMTP; not relevant */ - US"0", /* NOTQUIT; not relevant */ - US"0", /* QUIT; not relevant */ - US"550", /* STARTTLS */ - US"252", /* VRFY */ - US"0", /* delivery; not relevant */ - US"0" /* unknown; not relevant */ + [ACL_WHERE_PRDR] = US"550", +#endif + [ACL_WHERE_AUTH] = US"503", + [ACL_WHERE_CONNECT] = US"550", + [ACL_WHERE_ETRN] = US"458", + [ACL_WHERE_EXPN] = US"550", + [ACL_WHERE_HELO] = US"550", + [ACL_WHERE_STARTTLS] = US"550", + [ACL_WHERE_VRFY] = US"252", }; uschar *add_environment = NULL; @@ -913,10 +909,10 @@ int error_handling = ERRORS_SENDER; uschar *errors_reply_to = NULL; int errors_sender_rc = EXIT_FAILURE; #ifndef DISABLE_EVENT -uschar *event_action = NULL; /* expansion for delivery events */ -uschar *event_data = NULL; /* auxiliary data variable for event */ -int event_defer_errno = 0; -const uschar *event_name = NULL; /* event name variable */ +uschar *event_action = NULL; /* expansion for delivery events */ +const uschar *event_data = NULL; /* auxiliary data variable for event */ +int event_defer_errno = 0; +const uschar *event_name = NULL; /* event name variable */ #endif @@ -1003,6 +999,9 @@ uschar *hosts_proxy = NULL; #endif uschar *hosts_treat_as_local = NULL; uschar *hosts_require_helo = US"*"; +#ifdef EXPERIMENTAL_WELLKNOWN +uschar *hosts_wellknown = NULL; +#endif #ifdef EXPERIMENTAL_XCLIENT uschar *hosts_xclient = NULL; #endif @@ -1671,3 +1670,5 @@ const uschar *warnmsg_delay = NULL; const uschar *warnmsg_recipients = NULL; /* End of globals.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/globals.h b/src/src/globals.h index 427590050..30c8bbad4 100644 --- a/src/src/globals.h +++ b/src/src/globals.h @@ -602,7 +602,7 @@ extern int errors_sender_rc; /* Return after message to sender*/ #ifndef DISABLE_EVENT extern uschar *event_action; /* expansion for delivery events */ -extern uschar *event_data; /* event data */ +extern const uschar *event_data; /* event data */ extern int event_defer_errno; /* error number set when a remote delivery is deferred with a host error */ extern const uschar *event_name; /* event classification */ #endif diff --git a/src/src/hintsdb.h b/src/src/hintsdb.h index 2d7199eda..ed1b5566d 100644 --- a/src/src/hintsdb.h +++ b/src/src/hintsdb.h @@ -24,6 +24,10 @@ utilities as well as the main Exim binary. */ #if defined(USE_TDB) +# if defined(USE_DB) || defined(USE_GDBM) +# error USE_TDB conflict with alternate definition +# endif + /* ************************* tdb interface ************************ */ /*XXX https://manpages.org/tdb/3 mentions concurrent writes. Could we lose the file lock? */ @@ -157,6 +161,10 @@ d->dptr = NULL; #elif defined USE_DB +# if defined(USE_TDB) || defined(USE_GDBM) +# error USE_DB conflict with alternate definition +# endif + # include /* 1.x did no locking @@ -482,6 +490,10 @@ exim_datum_free(EXIM_DATUM * d) #elif defined USE_GDBM /*XXX TODO: exim's locfile not needed */ +# if defined(USE_TDB) || defined(USE_DB) +# error USE_GDBM conflict with alternate definition +# endif + # include /* Basic DB type */ @@ -609,7 +621,7 @@ static inline void exim_datum_free(EXIM_DATUM * d) { free(d->dptr); } -/* size limit */ +/* size limit. GDBM is int-max limited, but we want to be less silly */ # define EXIM_DB_RLIMIT 150 @@ -621,7 +633,7 @@ exim_datum_free(EXIM_DATUM * d) /* If none of USE_DB, USG_GDBM, or USE_TDB are set, the default is the NDBM -interface */ +interface (which seems to be a wrapper for GDBM) */ /********************* ndbm interface definitions **********************/ @@ -745,7 +757,7 @@ exim_datum_free(EXIM_DATUM * d) # define EXIM_DB_RLIMIT 150 -#endif /* USE_GDBM */ +#endif /* !USE_GDBM */ diff --git a/src/src/host.c b/src/src/host.c index 08e946548..26b3c2c68 100644 --- a/src/src/host.c +++ b/src/src/host.c @@ -1061,19 +1061,15 @@ Returns: the number of characters placed in buffer, not counting */ int -host_nmtoa(int count, int *binary, int mask, uschar *buffer, int sep) +host_nmtoa(int count, const int * binary, int mask, uschar * buffer, int sep) { -int j; -uschar *tt = buffer; +uschar * tt = buffer; if (count == 1) - { - j = binary[0]; - for (int i = 24; i >= 0; i -= 8) + for (int j = binary[0], i = 24; i >= 0; i -= 8) tt += sprintf(CS tt, "%d.", (j >> i) & 255); - } else - for (int i = 0; i < 4; i++) + for (int j, i = 0; i < 4; i++) { j = binary[i]; tt += sprintf(CS tt, "%04x%c%04x%c", (j >> 16) & 0xffff, sep, j & 0xffff, sep); @@ -1302,30 +1298,30 @@ host_item *last = *lastptr; host_item *prev = NULL; host_item *h; -if (removed != NULL) *removed = FALSE; +if (removed) *removed = FALSE; -if (local_interface_data == NULL) local_interface_data = host_find_interfaces(); +if (!local_interface_data) local_interface_data = host_find_interfaces(); for (h = host; h != last->next; h = h->next) { - #ifndef STAND_ALONE - if (hosts_treat_as_local != NULL) +#ifndef STAND_ALONE + if (hosts_treat_as_local) { int rc; - const uschar *save = deliver_domain; + const uschar * save = deliver_domain; deliver_domain = h->name; /* set $domain */ rc = match_isinlist(string_copylc(h->name), CUSS &hosts_treat_as_local, 0, &domainlist_anchor, NULL, MCL_DOMAIN, TRUE, NULL); deliver_domain = save; if (rc == OK) goto FOUND_LOCAL; } - #endif +#endif /* It seems that on many operating systems, 0.0.0.0 is treated as a synonym for 127.0.0.1 and refers to the local host. We therefore force it always to be treated as local. */ - if (h->address != NULL) + if (h->address) { if (Ustrcmp(h->address, "0.0.0.0") == 0) goto FOUND_LOCAL; for (ip_address_item * ip = local_interface_data; ip; ip = ip->next) @@ -1336,7 +1332,8 @@ for (h = host; h != last->next; h = h->next) /* Update prev to point to the last host item before any that have the same MX value as the one we have just considered. */ - if (h->next == NULL || h->next->mx != h->mx) prev = h; + if (!h->next || h->next->mx != h->mx) + prev = h; } return yield; /* No local hosts found: return HOST_FOUND or HOST_FIND_FAILED */ @@ -1346,7 +1343,7 @@ something in hosts_treat_as_local has been found. */ FOUND_LOCAL: -if (prev == NULL) +if (!prev) { HDEBUG(D_host_lookup) debug_printf((h->mx >= 0)? "local host has lowest MX\n" : @@ -1361,7 +1358,7 @@ HDEBUG(D_host_lookup) debug_printf(" %s %s %d\n", h->name, h->address, h->mx); } -if (removed != NULL) *removed = TRUE; +if (removed) *removed = TRUE; prev->next = last->next; *lastptr = prev; return yield; @@ -1572,8 +1569,7 @@ connection. */ int host_name_lookup(void) { -int old_pool, rc; -int sep = 0; +int sep = 0, old_pool, rc, yield; uschar *save_hostname; uschar **aliases; uschar *ordername; @@ -1585,6 +1581,7 @@ sender_host_dnssec = host_lookup_deferred = host_lookup_failed = FALSE; HDEBUG(D_host_lookup) debug_printf("looking up host name for %s\n", sender_host_address); +expand_level++; /* For testing the case when a lookup does not complete, we have a special reserved IP address. */ @@ -1595,7 +1592,8 @@ if (f.running_in_test_harness && HDEBUG(D_host_lookup) debug_printf("Test harness: host name lookup returns DEFER\n"); host_lookup_deferred = TRUE; - return DEFER; + yield = DEFER; + goto out; } /* Do lookups directly in the DNS or via gethostbyaddr() (or equivalent), in @@ -1653,7 +1651,7 @@ while ((ordername = string_nextinlist(&list, &sep, NULL, 0))) truncated and dn_expand may fail. */ if (dn_expand(dnsa->answer, dnsa->answer + dnsa->answerlen, - US (rr->data), (DN_EXPAND_ARG4_TYPE)(s), ssize) < 0) + US rr->data, (DN_EXPAND_ARG4_TYPE)(s), ssize) < 0) { log_write(0, LOG_MAIN, "host name alias list truncated for %s", sender_host_address); @@ -1693,7 +1691,8 @@ while ((ordername = string_nextinlist(&list, &sep, NULL, 0))) HDEBUG(D_host_lookup) debug_printf("IP address PTR lookup gave temporary error\n"); host_lookup_deferred = TRUE; - return DEFER; + yield = DEFER; + goto out; } } @@ -1707,7 +1706,8 @@ while ((ordername = string_nextinlist(&list, &sep, NULL, 0))) if (rc == DEFER) { host_lookup_deferred = TRUE; - return rc; /* Can't carry on */ + yield = rc; /* Can't carry on */ + goto out; } if (rc == OK) break; /* Found a name */ } @@ -1723,7 +1723,8 @@ if (!sender_host_name) "address %s", sender_host_address); host_lookup_msg = US" (failed to find host name from IP address)"; host_lookup_failed = TRUE; - return FAIL; + yield = FAIL; + goto out; } HDEBUG(D_host_lookup) @@ -1788,7 +1789,8 @@ for (uschar * hname = sender_host_name; hname; hname = *aliases++) HDEBUG(D_host_lookup) debug_printf("temporary error for host name lookup\n"); host_lookup_deferred = TRUE; sender_host_name = NULL; - return DEFER; + yield = DEFER; + goto out; } else HDEBUG(D_host_lookup) debug_printf("no IP addresses found for %s\n", hname); @@ -1810,12 +1812,12 @@ for (uschar * hname = sender_host_name; hname; hname = *aliases++) /* If sender_host_name == NULL, it means we didn't like the name. Replace it with the first alias, if there is one. */ -if (sender_host_name == NULL && *sender_host_aliases != NULL) +if (!sender_host_name && *sender_host_aliases) sender_host_name = *sender_host_aliases++; /* If we now have a main name, all is well. */ -if (sender_host_name != NULL) return OK; +if (sender_host_name) { yield = OK; goto out; } /* We have failed to find an address that matches. */ @@ -1831,7 +1833,11 @@ host_lookup_msg = string_sprintf(" (%s does not match any IP address for %s)", sender_host_address, save_hostname); store_pool = old_pool; host_lookup_failed = TRUE; -return FAIL; +yield = FAIL; + +out: + expand_level--; + return yield; } @@ -2493,31 +2499,46 @@ Returns: HOST_FIND_FAILED Failed to find the host or domain; */ int -host_find_bydns(host_item *host, const uschar *ignore_target_hosts, int whichrrs, - uschar *srv_service, uschar *srv_fail_domains, uschar *mx_fail_domains, - const dnssec_domains *dnssec_d, - const uschar **fully_qualified_name, BOOL *removed) +host_find_bydns(host_item * host, const uschar * ignore_target_hosts, + int whichrrs, + uschar * srv_service, uschar * srv_fail_domains, uschar * mx_fail_domains, + const dnssec_domains * dnssec_d, + const uschar ** fully_qualified_name, BOOL * removed) { -host_item *h, *last; -int rc = DNS_FAIL; -int ind_type = 0; -int yield; +host_item * h, * last; +int rc = DNS_FAIL, ind_type = 0, yield; dns_answer * dnsa = store_get_dns_answer(); dns_scan dnss; -BOOL dnssec_require = dnssec_d +BOOL dnssec_require, dnssec_request; +dnssec_status_t dnssec; + +HDEBUG(D_host_lookup) + { + debug_printf_indent("check dnssec require list\n"); + expand_level++; + } +dnssec_require = dnssec_d && match_isinlist(host->name, CUSS &dnssec_d->require, 0, &domainlist_anchor, NULL, MCL_DOMAIN, TRUE, NULL) == OK; -BOOL dnssec_request = dnssec_require + +HDEBUG(D_host_lookup) + { + expand_level--; + debug_printf_indent("check dnssec request list\n"); + expand_level++; + } +dnssec_request = dnssec_require || ( dnssec_d && match_isinlist(host->name, CUSS &dnssec_d->request, 0, &domainlist_anchor, NULL, MCL_DOMAIN, TRUE, NULL) == OK); -dnssec_status_t dnssec; +HDEBUG(D_host_lookup) + expand_level--; /* Set the default fully qualified name to the incoming name, initialize the resolver if necessary, set up the relevant options, and initialize the flag that gets set for DNS syntax check errors. */ -if (fully_qualified_name != NULL) *fully_qualified_name = host->name; +if (fully_qualified_name) *fully_qualified_name = host->name; dns_init((whichrrs & HOST_FIND_QUALIFY_SINGLE) != 0, (whichrrs & HOST_FIND_SEARCH_PARENTS) != 0, dnssec_request); @@ -2529,13 +2550,12 @@ characters, so the code below should be safe. */ if (whichrrs & HOST_FIND_BY_SRV) { - gstring * g; - uschar * temp_fully_qualified_name; + uschar * s, * temp_fully_qualified_name; int prefix_length; - g = string_fmt_append(NULL, "_%s._tcp.%n%.256s", + s = string_sprintf("_%s._tcp.%n%.256s", srv_service, &prefix_length, host->name); - temp_fully_qualified_name = string_from_gstring(g); + temp_fully_qualified_name = s; ind_type = T_SRV; /* Search for SRV records. If the fully qualified name is different to @@ -2551,7 +2571,7 @@ if (whichrrs & HOST_FIND_BY_SRV) if ((dnssec_request || dnssec_require) && !dns_is_secure(dnsa) && dns_is_aa(dnsa)) - debug_printf("DNS lookup of %.256s (SRV) requested AD, but got AA\n", host->name); + debug_printf_indent("DNS lookup of %.256s (SRV) requested AD, but got AA\n", host->name); if (dnssec_request) { @@ -2561,7 +2581,7 @@ if (whichrrs & HOST_FIND_BY_SRV) { dnssec = DS_NO; lookup_dnssec_authenticated = US"no"; } } - if (temp_fully_qualified_name != g->s && fully_qualified_name != NULL) + if (temp_fully_qualified_name != s && fully_qualified_name) *fully_qualified_name = temp_fully_qualified_name + prefix_length; /* On DNS failures, we give the "try again" error unless the domain is @@ -2580,7 +2600,7 @@ if (whichrrs & HOST_FIND_BY_SRV) &domainlist_anchor, NULL, MCL_DOMAIN, TRUE, NULL) != OK) #endif { yield = HOST_FIND_AGAIN; goto out; } - DEBUG(D_host_lookup) debug_printf("DNS_%s treated as DNS_NODATA " + DEBUG(D_host_lookup) debug_printf_indent("DNS_%s treated as DNS_NODATA " "(domain in srv_fail_domains)\n", rc == DNS_FAIL ? "FAIL":"AGAIN"); } } @@ -2603,12 +2623,12 @@ if (rc != DNS_SUCCEED && whichrrs & HOST_FIND_BY_MX) if ( (dnssec_request || dnssec_require) && !dns_is_secure(dnsa) && dns_is_aa(dnsa)) - debug_printf("DNS lookup of %.256s (MX) requested AD, but got AA\n", host->name); + debug_printf_indent("DNS lookup of %.256s (MX) requested AD, but got AA\n", host->name); if (dnssec_request) if (dns_is_secure(dnsa)) { - DEBUG(D_host_lookup) debug_printf("%s (MX resp) DNSSEC\n", host->name); + DEBUG(D_host_lookup) debug_printf_indent("%s (MX resp) DNSSEC\n", host->name); dnssec = DS_YES; lookup_dnssec_authenticated = US"yes"; } else @@ -2619,13 +2639,14 @@ if (rc != DNS_SUCCEED && whichrrs & HOST_FIND_BY_MX) switch (rc) { case DNS_NOMATCH: - yield = HOST_FIND_FAILED; goto out; + yield = HOST_FIND_FAILED; + goto out; case DNS_SUCCEED: if (!dnssec_require || dns_is_secure(dnsa)) break; DEBUG(D_host_lookup) - debug_printf("dnssec fail on MX for %.256s", host->name); + debug_printf_indent("dnssec fail on MX for %.256s\n", host->name); #ifndef STAND_ALONE if (match_isinlist(host->name, CUSS &mx_fail_domains, 0, &domainlist_anchor, NULL, MCL_DOMAIN, TRUE, NULL) != OK) @@ -2641,7 +2662,7 @@ if (rc != DNS_SUCCEED && whichrrs & HOST_FIND_BY_MX) &domainlist_anchor, NULL, MCL_DOMAIN, TRUE, NULL) != OK) #endif { yield = HOST_FIND_AGAIN; goto out; } - DEBUG(D_host_lookup) debug_printf("DNS_%s treated as DNS_NODATA " + DEBUG(D_host_lookup) debug_printf_indent("DNS_%s treated as DNS_NODATA " "(domain in mx_fail_domains)\n", (rc == DNS_FAIL)? "FAIL":"AGAIN"); break; } @@ -2655,7 +2676,7 @@ if (rc != DNS_SUCCEED) { if (!(whichrrs & (HOST_FIND_BY_A | HOST_FIND_BY_AAAA))) { - DEBUG(D_host_lookup) debug_printf("Address records are not being sought\n"); + DEBUG(D_host_lookup) debug_printf_indent("Address records are not being sought\n"); yield = HOST_FIND_FAILED; goto out; } @@ -2676,16 +2697,16 @@ if (rc != DNS_SUCCEED) if (rc == HOST_FOUND) rc = host_scan_for_local_hosts(host, &last, removed); - else - if (rc == HOST_IGNORED) rc = HOST_FIND_FAILED; /* No special action */ + else if (rc == HOST_IGNORED) + rc = HOST_FIND_FAILED; /* No special action */ DEBUG(D_host_lookup) if (host->address) { if (fully_qualified_name) - debug_printf("fully qualified name = %s\n", *fully_qualified_name); + debug_printf_indent("fully qualified name = %s\n", *fully_qualified_name); for (host_item * h = host; h != last->next; h = h->next) - debug_printf("%s %s mx=%d sort=%d %s\n", h->name, + debug_printf_indent("%s %s mx=%d sort=%d %s\n", h->name, h->address ? h->address : US"", h->mx, h->sort_key, h->status >= hstatus_unusable ? US"*" : US""); } @@ -2762,7 +2783,7 @@ for (dns_record * rr = dns_next_rr(dnsa, &dnss, RESET_ANSWERS); if (strcmpic(h->name, data) == 0) { DEBUG(D_host_lookup) - debug_printf("discarded duplicate host %s (MX=%d)\n", data, + debug_printf_indent("discarded duplicate host %s (MX=%d)\n", data, precedence > h->mx ? precedence : h->mx); if (precedence >= h->mx) goto NEXT_MX_RR; /* Skip greater precedence */ if (h == host) /* Override first item */ @@ -2872,16 +2893,16 @@ if (ind_type == T_SRV) if (host == last && host->name[0] == 0) { - DEBUG(D_host_lookup) debug_printf("the single SRV record is \".\"\n"); + DEBUG(D_host_lookup) debug_printf_indent("the single SRV record is \".\"\n"); yield = HOST_FIND_FAILED; goto out; } DEBUG(D_host_lookup) { - debug_printf("original ordering of hosts from SRV records:\n"); + debug_printf_indent("original ordering of hosts from SRV records:\n"); for (h = host; h != last->next; h = h->next) - debug_printf(" %s P=%d W=%d\n", h->name, h->mx, h->sort_key % 1000); + debug_printf_indent(" %s P=%d W=%d\n", h->name, h->mx, h->sort_key % 1000); } for (pptr = &host, h = host; h != last; pptr = &h->next, h = h->next) @@ -3074,7 +3095,7 @@ if (h != last && !disable_ipv6) for (h = host; h != last; h = h->next) h->next = next; *next = temp; } -#endif +#endif /*HAVE_IPV6*/ /* Remove any duplicate IP addresses and then scan the list of hosts for any whose IP addresses are on the local host. If any are found, all hosts with the @@ -3092,8 +3113,8 @@ if (rc != HOST_FIND_FAILED) yield = rc; DEBUG(D_host_lookup) { if (fully_qualified_name) - debug_printf("fully qualified name = %s\n", *fully_qualified_name); - debug_printf("host_find_bydns yield = %s (%d); returned hosts:\n", + debug_printf_indent("fully qualified name = %s\n", *fully_qualified_name); + debug_printf_indent("host_find_bydns yield = %s (%d); returned hosts:\n", yield == HOST_FOUND ? "HOST_FOUND" : yield == HOST_FOUND_LOCAL ? "HOST_FOUND_LOCAL" : yield == HOST_FIND_SECURITY ? "HOST_FIND_SECURITY" : @@ -3102,7 +3123,7 @@ DEBUG(D_host_lookup) yield); for (h = host; h != last->next; h = h->next) { - debug_printf(" %s %s MX=%d %s", h->name, + debug_printf_indent(" %s %s MX=%d %s", h->name, !h->address ? US"" : h->address, h->mx, h->dnssec == DS_YES ? US"DNSSEC " : US""); if (h->port != PORT_NONE) debug_printf("port=%d ", h->port); diff --git a/src/src/log.c b/src/src/log.c index f85823520..1a77f2cdb 100644 --- a/src/src/log.c +++ b/src/src/log.c @@ -601,6 +601,22 @@ if (type == lt_debug) unlink(CS debuglog_name); +/* Append to a gstring, in no-extend (or rebuffer) mode +and without taint-checking. Thanks to the no-extend, the +gstring struct never needs reallocation; we ignore the +infore that the initial space allocation for the string +was exceeded, and just leave it potentially truncated. */ + +static void +string_fmt_append_noextend(gstring * g, char * fmt, ...) +{ +va_list ap; +va_start(ap, fmt); +/* can return NULL if it truncates; just ignore */ +(void) string_vformat(g, SVFMT_TAINT_NOCHK, fmt, ap); +va_end(ap); +} + /************************************************* * Add configuration file info to log line * *************************************************/ @@ -609,24 +625,28 @@ if (type == lt_debug) unlink(CS debuglog_name); once for real). Arguments: - ptr pointer to the end of the line we are building - flags log flags + g extensible-string referring to static buffer, + usable after return + flags log flags -Returns: updated pointer +Returns: nothing */ -static gstring * +static void log_config_info(gstring * g, int flags) { -g = string_cat(g, US"Exim configuration error"); +string_fmt_append_noextend(g, "Exim configuration error"); if (flags & (LOG_CONFIG_FOR & ~LOG_CONFIG)) - return string_cat(g, US" for "); - -if (flags & (LOG_CONFIG_IN & ~LOG_CONFIG)) - g = string_fmt_append(g, " in line %d of %s", config_lineno, config_filename); + string_fmt_append_noextend(g, " for "); +else + { + if (flags & (LOG_CONFIG_IN & ~LOG_CONFIG)) + string_fmt_append_noextend(g, " in line %d of %s", + config_lineno, config_filename); -return string_catn(g, US":\n ", 4); + string_fmt_append_noextend(g, ":\n "); + } } @@ -813,7 +833,7 @@ log_write(unsigned int selector, int flags, const char *format, ...) int paniclogfd; ssize_t written_len; gstring gs = { .size = LOG_BUFFER_SIZE-2, .ptr = 0, .s = log_buffer }; -gstring * g; +gstring * g = &gs; va_list ap; /* If panic_recurseflag is set, we have failed to open the panic log. This is @@ -823,7 +843,7 @@ original log line that caused the problem. Afterwards, expire. */ if (panic_recurseflag) { - uschar *extra = panic_save_buffer ? panic_save_buffer : US""; + uschar * extra = panic_save_buffer ? panic_save_buffer : US""; if (debug_file) debug_printf("%s%s", extra, log_buffer); if (log_stderr && log_stderr != debug_file) fprintf(log_stderr, "%s%s", extra, log_buffer); @@ -924,45 +944,43 @@ in one go so that it doesn't get split when multi-processing. */ DEBUG(D_any|D_v) { - int i; - - g = string_catn(&gs, US"LOG:", 4); + string_fmt_append_noextend(g, "LOG:"); /* Show the selector that was passed into the call. */ - for (i = 0; i < log_options_count; i++) + for (int i = 0; i < log_options_count; i++) { unsigned int bitnum = log_options[i].bit; if (bitnum < BITWORDSIZE && selector == BIT(bitnum)) - g = string_fmt_append(g, " %s", log_options[i].name); + string_fmt_append_noextend(g, " %s", log_options[i].name); } - g = string_fmt_append(g, "%s%s%s%s\n ", + string_fmt_append_noextend(g, "%s%s%s%s\n ", flags & LOG_MAIN ? " MAIN" : "", flags & LOG_PANIC ? " PANIC" : "", (flags & LOG_PANIC_DIE) == LOG_PANIC_DIE ? " DIE" : "", flags & LOG_REJECT ? " REJECT" : ""); - if (flags & LOG_CONFIG) g = log_config_info(g, flags); + if (flags & LOG_CONFIG) log_config_info(g, flags); /* We want to be able to log tainted info, but log_buffer is directly malloc'd. So use deliberately taint-nonchecking routines to build into it, trusting that we will never expand the results. */ va_start(ap, format); - i = g->ptr; if (!string_vformat(g, SVFMT_TAINT_NOCHK, format, ap)) { - g->ptr = i; - g = string_cat(g, US"**** log string overflowed log buffer ****"); + uschar * s = US"**** log string overflowed log buffer ****"; + gstring_trim(g, Ustrlen(s)); + string_fmt_append_noextend(g, "%s", s); } va_end(ap); debug_printf("%Y\n", g); - gs.size = LOG_BUFFER_SIZE-2; /* Having used the buffer for debug output, */ - gs.ptr = 0; /* reset it for the real use. */ - gs.s = log_buffer; + /* Having used the buffer for debug output, reset it for the real use. */ + + gstring_reset(g); } /* If no log file is specified, we are in a mess. */ @@ -986,33 +1004,32 @@ if (!write_rejectlog) flags &= ~LOG_REJECT; /* Create the main message in the log buffer. Do not include the message id when called by a utility. */ -g = string_fmt_append(&gs, "%s ", tod_stamp(tod_log)); +string_fmt_append_noextend(&gs, "%s ", tod_stamp(tod_log)); if (LOGGING(pid)) { if (!syslog_pid) pid_position[0] = g->ptr; /* remember begin … */ - g = string_fmt_append(g, "[%d] ", (int)getpid()); + string_fmt_append_noextend(g, "[%ld] ", (long)getpid()); if (!syslog_pid) pid_position[1] = g->ptr; /* … and end+1 of the PID */ } if (f.really_exim && message_id[0]) - g = string_fmt_append(g, "%s ", message_id); + string_fmt_append_noextend(g, "%s ", message_id); if (flags & LOG_CONFIG) - g = log_config_info(g, flags); + log_config_info(g, flags); va_start(ap, format); { - int i = g->ptr; - /* We want to be able to log tainted info, but log_buffer is directly malloc'd. So use deliberately taint-nonchecking routines to build into it, trusting that we will never expand the results. */ if (!string_vformat(g, SVFMT_TAINT_NOCHK, format, ap)) { - g->ptr = i; - g = string_cat(g, US"**** log string overflowed log buffer ****\n"); + uschar * s = US"**** log string overflowed log buffer ****\n"; + gstring_trim(g, Ustrlen(s)); + string_fmt_append_noextend(g, "%s", s); } } va_end(ap); @@ -1020,30 +1037,29 @@ va_end(ap); /* Add the raw, unrewritten, sender to the message if required. This is done this way because it kind of fits with LOG_RECIPIENTS. */ -if ( flags & LOG_SENDER - && g->ptr < LOG_BUFFER_SIZE - 10 - Ustrlen(raw_sender)) - g = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, " from <%s>", raw_sender); +if (flags & LOG_SENDER) + string_fmt_append_noextend(g, " from <%s>", raw_sender); /* Add list of recipients to the message if required; the raw list, before rewriting, was saved in raw_recipients. There may be none, if an ACL discarded them all. */ -if ( flags & LOG_RECIPIENTS - && g->ptr < LOG_BUFFER_SIZE - 6 - && raw_recipients_count > 0) +if (flags & LOG_RECIPIENTS && raw_recipients_count > 0) { - g = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, " for", NULL); + string_fmt_append_noextend(g, " for"); for (int i = 0; i < raw_recipients_count; i++) - { - const uschar * s = raw_recipients[i]; - if (LOG_BUFFER_SIZE - g->ptr < Ustrlen(s) + 3) break; - g = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, " %s", s); + if (!string_fmt_append_f(g, SVFMT_TAINT_NOCHK, " %s", raw_recipients[i])) + { + uschar * s = US""; + gstring_trim(g, Ustrlen(s)); + string_fmt_append_noextend(g, "%s", s); + break; } } /* actual size, now we are placing the newline (and space for NUL) */ gs.size = LOG_BUFFER_SIZE; -g = string_catn(g, US"\n", 1); +string_fmt_append_noextend(g, "\n"); string_from_gstring(g); /* Handle loggable errors when running a utility, or when address testing. @@ -1117,8 +1133,7 @@ if ( flags & LOG_MAIN /* Failing to write to the log is disastrous */ - written_len = write_gstring_to_fd_buf(mainlogfd, g); - if (written_len != g->ptr) + if ((written_len = write_gstring_to_fd_buf(mainlogfd, g)) != g->ptr) { log_write_failed(US"main log", g->ptr, written_len); /* That function does not return */ @@ -1135,53 +1150,39 @@ if (flags & LOG_REJECT) { if (header_list && LOGGING(rejected_header)) { - gstring * g2; int i; if (recipients_count > 0) { /* List the sender */ - g2 = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, + string_fmt_append_noextend(g, "Envelope-from: <%s>\n", sender_address); - if (g2) g = g2; /* List up to 5 recipients */ - g2 = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, + string_fmt_append_noextend(g, "Envelope-to: <%s>\n", recipients_list[0].address); - if (g2) g = g2; for (i = 1; i < recipients_count && i < 5; i++) - { - g2 = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, + string_fmt_append_noextend(g, " <%s>\n", recipients_list[i].address); - if (g2) g = g2; - } if (i < recipients_count) - { - g2 = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, " ...\n", NULL); - if (g2) g = g2; - } + string_fmt_append_noextend(g, " ...\n", NULL); } - /* A header with a NULL text is an unfilled in Received: header */ + /* A header with a NULL text is an unfilled-in Received: header */ for (header_line * h = header_list; h; h = h->next) if (h->text) - { - g2 = string_fmt_append_f(g, SVFMT_TAINT_NOCHK, - "%c %s", h->type, h->text); - if (g2) - g = g2; - else /* Buffer is full; truncate */ - { - gstring_trim(g, 100); /* For message and separator */ + if (!string_fmt_append_f(g, SVFMT_TAINT_NOCHK, + "%c %s", h->type, h->text)) + { /* Buffer is full; truncate */ + gstring_trim(g, 100); /* space for message and separator */ gstring_trim_trailing(g, '\n'); - g = string_cat(g, US"\n*** truncated ***\n"); + string_fmt_append_noextend(g, "\n*** truncated ***\n"); break; } - } } /* Write to syslog or to a log file */ @@ -1232,8 +1233,7 @@ if (flags & LOG_REJECT) if (fstat(rejectlogfd, &statbuf) >= 0) rejectlog_inode = statbuf.st_ino; } - written_len = write_gstring_to_fd_buf(rejectlogfd, g); - if (written_len != g->ptr) + if ((written_len = write_gstring_to_fd_buf(rejectlogfd, g)) != g->ptr) { log_write_failed(US"reject log", g->ptr, written_len); /* That function does not return */ @@ -1267,8 +1267,7 @@ if (flags & LOG_PANIC) if (panic_save_buffer) (void) write(paniclogfd, panic_save_buffer, Ustrlen(panic_save_buffer)); - written_len = write_gstring_to_fd_buf(paniclogfd, g); - if (written_len != g->ptr) + if ((written_len = write_gstring_to_fd_buf(paniclogfd, g)) != g->ptr) { int save_errno = errno; write_syslog(LOG_CRIT, log_buffer); @@ -1562,3 +1561,5 @@ if (kill) unlink_log(lt_debug); /* End of log.c */ +/* vi: sw ai sw=2 +*/ diff --git a/src/src/lookups/dnsdb.c b/src/src/lookups/dnsdb.c index 050baa3b7..af1ad9dab 100644 --- a/src/src/lookups/dnsdb.c +++ b/src/src/lookups/dnsdb.c @@ -154,8 +154,7 @@ gstring * yield = string_get(256); /* If the string starts with '>' we change the output separator. If it's followed by ';' or ',' we set the TXT output separator. */ -while (isspace(*keystring)) keystring++; -if (*keystring == '>') +if (Uskip_whitespace(&keystring) == '>') { outsep = keystring + 1; keystring += 2; @@ -169,7 +168,7 @@ if (*keystring == '>') outsep2 = US""; keystring++; } - while (isspace(*keystring)) keystring++; + Uskip_whitespace(&keystring); } /* Check for a modifier keyword. */ @@ -234,14 +233,14 @@ for (;;) else break; - while (isspace(*keystring)) keystring++; + Uskip_whitespace(&keystring); if (*keystring++ != ',') { *errmsg = US"dnsdb modifier syntax error"; rc = DEFER; goto out; } - while (isspace(*keystring)) keystring++; + Uskip_whitespace(&keystring); } /* Figure out the "type" value if it is not T_TXT. @@ -272,7 +271,7 @@ if ((equals = Ustrchr(keystring, '=')) != NULL) } keystring = equals + 1; - while (isspace(*keystring)) keystring++; + Uskip_whitespace(&keystring); } /* Initialize the resolver in case this is the first time it has been used. */ diff --git a/src/src/lookups/ldap.c b/src/src/lookups/ldap.c index b93782cc3..90cde6c86 100644 --- a/src/src/lookups/ldap.c +++ b/src/src/lookups/ldap.c @@ -1083,20 +1083,15 @@ control_ldap_search(const uschar *ldap_url, int search_type, uschar **res, uschar **errmsg) { BOOL defer_break = FALSE; -int timelimit = LDAP_NO_LIMIT; -int sizelimit = LDAP_NO_LIMIT; +int timelimit = LDAP_NO_LIMIT, sizelimit = LDAP_NO_LIMIT; int tcplimit = 0; int sep = 0; int dereference = LDAP_DEREF_NEVER; -void* referrals = LDAP_OPT_ON; -const uschar *url = ldap_url; -const uschar *p; -uschar *user = NULL; -uschar *password = NULL; -uschar *local_servers = NULL; -const uschar *list; +void * referrals = LDAP_OPT_ON; +const uschar * url = ldap_url, * p, * list; +uschar * user = NULL, * password = NULL, * local_servers = NULL; -while (isspace(*url)) url++; +Uskip_whitespace(&url); /* Until the string begins "ldap", search for the other parameter settings that are recognized. They are of the form NAME=VALUE, with the value being @@ -1175,7 +1170,7 @@ while (strncmpic(url, US"ldap", 4) != 0) DEBUG(D_lookup) debug_printf_indent("LDAP query error: %s\n", *errmsg); return DEFER; } - while (isspace(*url)) url++; + Uskip_whitespace(&url); continue; } } diff --git a/src/src/lookups/lsearch.c b/src/src/lookups/lsearch.c index 33e8c5157..7b78de916 100644 --- a/src/src/lookups/lsearch.c +++ b/src/src/lookups/lsearch.c @@ -291,8 +291,8 @@ for (BOOL this_is_eol, last_was_eol = TRUE; this_is_comment = (this_is_comment || (buffer[0] == 0 || buffer[0] == '#')); if (this_is_comment) continue; if (!isspace((uschar)buffer[0])) break; - while (isspace((uschar)*s)) s++; - *(--s) = ' '; + Uskip_whitespace(&s); + *--s = ' '; } if (this_is_comment) continue; diff --git a/src/src/lookups/oracle.c b/src/src/lookups/oracle.c index d0604c245..c25b7c0ee 100644 --- a/src/src/lookups/oracle.c +++ b/src/src/lookups/oracle.c @@ -408,9 +408,9 @@ while (cda->rc != NO_DATA_FOUND) /* Loop for each row */ else for (int i = 0; i < num_fields; i++) { int slen; - uschar *s = US desc[i].buf; + uschar * s = US desc[i].buf; - while (*s != 0 && isspace(*s)) s++; + Uskip_whitespace(&s); slen = Ustrlen(s); while (slen > 0 && isspace(s[slen-1])) slen--; result = string_catn(result, s, slen); diff --git a/src/src/lookups/redis.c b/src/src/lookups/redis.c index 7b680f086..53b479142 100644 --- a/src/src/lookups/redis.c +++ b/src/src/lookups/redis.c @@ -212,7 +212,7 @@ if(sdata[1]) int siz, ptr, i; uschar c; - while (isspace(*s)) s++; + Uskip_whitespace(&s); for (i = 0; *s && i < nele(argv); i++) { @@ -224,7 +224,7 @@ if(sdata[1]) argv[i] = string_from_gstring(g); DEBUG(D_lookup) debug_printf_indent("REDIS: argv[%d] '%s'\n", i, argv[i]); - while (isspace(*s)) s++; + Uskip_whitespace(&s); } /* Run the command. We use the argv form rather than plain as that parses 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 8b1a3bef6..6acbd9f61 100644 --- a/src/src/match.c +++ b/src/src/match.c @@ -194,27 +194,23 @@ if (cb->flags & MCS_AT_SPECIAL && pattern[0] == '@') { int rc; host_item h; - BOOL prim = FALSE; - BOOL secy = FALSE; - BOOL removed = FALSE; + BOOL prim = FALSE, secy = FALSE, removed = FALSE; const uschar *ss = pattern + 4; const uschar *ignore_target_hosts = NULL; - if (strncmpic(ss, US"any", 3) == 0) ss += 3; + if (strncmpic(ss, US"any", 3) == 0) + ss += 3; else if (strncmpic(ss, US"primary", 7) == 0) - { - ss += 7; - prim = TRUE; - } + { ss += 7; prim = TRUE; } else if (strncmpic(ss, US"secondary", 9) == 0) - { - ss += 9; - secy = TRUE; - } - else goto NOT_AT_SPECIAL; + { ss += 9; secy = TRUE; } + else + goto NOT_AT_SPECIAL; - if (strncmpic(ss, US"/ignore=", 8) == 0) ignore_target_hosts = ss + 8; - else if (*ss) goto NOT_AT_SPECIAL; + if (strncmpic(ss, US"/ignore=", 8) == 0) + ignore_target_hosts = ss + 8; + else if (*ss) + goto NOT_AT_SPECIAL; h.next = NULL; h.name = s; @@ -437,18 +433,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 +502,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 +524,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. @@ -599,7 +596,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) if (*ss == '!') { yield = FAIL; - while (isspace((*(++ss)))); + while (isspace(*++ss)) ; } else yield = OK; @@ -618,7 +615,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 +652,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 +692,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 +704,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 +722,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 +746,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 +754,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 +774,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 +809,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)); @@ -825,15 +822,14 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) while (Ufgets(filebuffer, sizeof(filebuffer), f) != NULL) { - uschar *error; - uschar *sss = filebuffer; + uschar * error, * sss = filebuffer; while ((ss = Ustrchr(sss, '#')) != NULL) { if ((type != MCL_ADDRESS && type != MCL_LOCALPART) || ss == filebuffer || isspace(ss[-1])) { - *ss = 0; + *ss = '\0'; break; } sss = ss + 1; @@ -841,28 +837,27 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) ss = filebuffer + Ustrlen(filebuffer); /* trailing space */ while (ss > filebuffer && isspace(ss[-1])) ss--; - *ss = 0; + *ss = '\0'; ss = filebuffer; - while (isspace(*ss)) ss++; /* leading space */ - - if (!*ss) continue; /* ignore empty */ + if (!Uskip_whitespace(&ss)) /* leading space */ + continue; /* ignore empty */ file_yield = yield; /* positive yield */ sss = ss; /* for debugging */ if (*ss == '!') /* negation */ { - file_yield = (file_yield == OK)? FAIL : OK; - while (isspace((*(++ss)))); + file_yield = file_yield == OK ? FAIL : OK; + while (isspace(*++ss)) ; } switch ((func)(arg, ss, valueptr, &error)) { 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. */ @@ -876,8 +871,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); @@ -894,13 +889,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) { @@ -924,20 +919,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; @@ -1157,7 +1151,7 @@ if (pattern[0] == '@' && pattern[1] == '@') if (*ss == '!') { local_yield = FAIL; - while (isspace((*(++ss)))); + while (isspace(*++ss)) ; } else local_yield = OK; @@ -1392,3 +1386,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/moan.c b/src/src/moan.c index 6fe82b29c..641540839 100644 --- a/src/src/moan.c +++ b/src/src/moan.c @@ -762,13 +762,12 @@ llen = domain++ - recipient; while ((item = string_nextinlist(&listptr, &sep, NULL, 0))) { - const uschar *newaddress = item; - const uschar *pattern = string_dequote(&newaddress); + const uschar * newaddress = item; + const uschar * pattern = string_dequote(&newaddress); /* If no new address found, just skip this item. */ - while (isspace(*newaddress)) newaddress++; - if (*newaddress == 0) continue; + if (!Uskip_whitespace(&newaddress)) continue; /* We now have an item to match as an address in item, and the additional address in newaddress. If the pattern matches, expand the new address string diff --git a/src/src/parse.c b/src/src/parse.c index ecdbe9f8d..4a75d229e 100644 --- a/src/src/parse.c +++ b/src/src/parse.c @@ -1363,7 +1363,7 @@ for (;;) *error = string_sprintf("\"%.*s\" is not permitted", len, s); return FF_ERROR; } - while (*ss && isspace(*ss)) ss++; /* skip leading whitespace */ + Uskip_whitespace(&ss); /* skip leading whitespace */ if ((len = Ustrlen(ss)) > 0) /* ignore trailing newlines */ for (const uschar * t = ss + len - 1; t >= ss && *t == '\n'; t--) len--; *error = string_copyn(ss, len); /* becomes the error */ diff --git a/src/src/pdkim/pdkim.c b/src/src/pdkim/pdkim.c index 21e17c61e..565ee068e 100644 --- a/src/src/pdkim/pdkim.c +++ b/src/src/pdkim/pdkim.c @@ -679,8 +679,7 @@ for (const uschar * ele = raw_record, * tspec, * end, * val; *ele; ele = end) DEBUG(D_acl) debug_printf(" %.*s=%s\n", taglen, tspec, val); while (taglen > 1 && isspace(tspec[taglen-1])) taglen--; /* Ignore whitespace before = */ - while (isspace(*val)) - val++; /* Ignore whitespace after = */ + Uskip_whitespace(&val); /* Ignore whitespace after = */ if (isspace(val[ Ustrlen(val)-1 ])) { /* Ignore whitespace after value */ gstring * g = string_cat(NULL, val); diff --git a/src/src/proxy.c b/src/src/proxy.c index fbce11163..e2d3bace0 100644 --- a/src/src/proxy.c +++ b/src/src/proxy.c @@ -396,7 +396,7 @@ else if (ret >= 8 && memcmp(hdr.v1.line, "PROXY", 5) == 0) /* Step through the string looking for the required fields. Ensure strict adherence to required formatting, exit for any error. */ p += 5; - if (!isspace(*(p++))) + if (!isspace(*p++)) { DEBUG(D_receive) debug_printf("Missing space after PROXY command\n"); goto proxyfail; @@ -417,7 +417,7 @@ else if (ret >= 8 && memcmp(hdr.v1.line, "PROXY", 5) == 0) } p += Ustrlen(iptype); - if (!isspace(*(p++))) + if (!isspace(*p++)) { DEBUG(D_receive) debug_printf("Missing space after TCP4/6 command\n"); goto proxyfail; diff --git a/src/src/readconf.c b/src/src/readconf.c index 5b486d0b6..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""; } @@ -1050,7 +1108,7 @@ for (;;) (Ustrncmp(ss+8, "_if_exists", 10) == 0 && isspace(ss[18])))) { uschar *t; - int include_if_exists = isspace(ss[8])? 0 : 10; + int include_if_exists = isspace(ss[8]) ? 0 : 10; config_file_item *save; struct stat statbuf; @@ -1644,8 +1702,7 @@ uschar name2[EXIM_DRIVERNAME_MAX]; /* There may be leading spaces; thereafter, we expect an option name starting with a letter. */ -while (isspace(*s)) s++; -if (!isalpha(*s)) +if (!isalpha( Uskip_whitespace(&s) )) log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "option setting expected: %s", s); /* Read the name of the option, and skip any subsequent white space. If @@ -1660,7 +1717,7 @@ for (int n = 0; n < 2; n++) s++; } name[ptr] = 0; - while (isspace(*s)) s++; + Uskip_whitespace(&s); if (Ustrcmp(name, "hide") != 0) break; issecure = opt_secure; ptr = 0; @@ -1720,7 +1777,7 @@ else if (*s && (offset != 0 || *s != '=')) /* Skip white space after = */ -if (*s == '=') while (isspace((*(++s)))); +if (*s == '=') while (isspace(*++s)); /* If there is a data block and the opt_public flag is not set, change the data block pointer to the private options block. */ @@ -2202,8 +2259,7 @@ switch (type) log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "absolute value of integer \"%s\" is too large (overflow)", s); - while (isspace(*endptr)) endptr++; - if (*endptr) + if (Uskip_whitespace(&endptr)) extra_chars_error(endptr, inttype, US"integer value for ", name); value = (int)lvalue; @@ -2251,8 +2307,7 @@ switch (type) if (errno == ERANGE) log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "absolute value of integer \"%s\" is too large (overflow)", s); - while (isspace(*endptr)) endptr++; - if (*endptr != 0) + if (Uskip_whitespace(&endptr)) extra_chars_error(endptr, inttype, US"integer value for ", name); if (data_block) @@ -2347,7 +2402,7 @@ switch (type) list[count+1] = value; if (snext == NULL) break; s = snext + 1; - while (isspace(*s)) s++; + Uskip_whitespace(&s); } if (count > list[0] - 2) @@ -3570,8 +3625,7 @@ if (host_number_string) "failed to expand localhost_number \"%s\": %s", host_number_string, expand_string_message); n = Ustrtol(s, &end, 0); - while (isspace(*end)) end++; - if (*end) + if (Uskip_whitespace(&end)) log_write(0, LOG_PANIC_DIE|LOG_CONFIG, "localhost_number value is not a number: %s", s); if (n > LOCALHOST_MAX) @@ -4019,10 +4073,9 @@ Returns: time in seconds or fixed point number * 1000 */ static int -retry_arg(const uschar **paddr, int type) +retry_arg(const uschar ** paddr, int type) { -const uschar *p = *paddr; -const uschar *pp; +const uschar * p = *paddr, * pp; if (*p++ != ',') log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "comma expected"); @@ -4030,7 +4083,7 @@ Uskip_whitespace(&p); pp = p; while (isalnum(*p) || (type == 1 && *p == '.')) p++; -if (*p != 0 && !isspace(*p) && *p != ',' && *p != ';') +if (*p && !isspace(*p) && *p != ',' && *p != ';') log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "comma or semicolon expected"); *paddr = p; @@ -4433,10 +4486,8 @@ for (const config_line_item * i = config_lines; i; i = i->next) r = store_mark(); /* skip over to the first non-space */ - for (current = string_copy(i->line); *current && isspace(*current); ++current) - ; - - if (!*current) + current = string_copy(i->line); + if (!Uskip_whitespace(¤t)) continue; /* Collapse runs of spaces. We stop this if we encounter one of the @@ -4444,11 +4495,10 @@ for (const config_line_item * i = config_lines; i; i = i->next) for (p = current; *p; p++) if (isspace(*p)) { - uschar *next; + uschar * next = p; if (*p != ' ') *p = ' '; - for (next = p; isspace(*next); ++next) - ; + Uskip_whitespace(&p); if (next - p > 1) memmove(p+1, next, Ustrlen(next)+1); diff --git a/src/src/receive.c b/src/src/receive.c index a56ff473e..9fae6ad60 100644 --- a/src/src/receive.c +++ b/src/src/receive.c @@ -1748,7 +1748,7 @@ uschar *user_msg, *log_msg; /* Working header pointers */ rmark reset_point; -header_line *next; +header_line * next; /* Flags for noting the existence of certain headers (only one left) */ @@ -1756,15 +1756,16 @@ BOOL date_header_exists = FALSE; /* Pointers to receive the addresses of headers whose contents we need. */ -header_line *from_header = NULL; -header_line *subject_header = NULL; -header_line *msgid_header = NULL; -header_line *received_header; +header_line * from_header = NULL; +#ifdef SUPPORT_DMARC +header_line * dmarc_from_header = NULL; +#endif +header_line * subject_header = NULL, * msgid_header = NULL, * received_header; BOOL msgid_header_newly_created = FALSE; /* Variables for use when building the Received: header. */ -uschar *timestamp; +uschar * timestamp; int tslen; /* Time of creation of message_id */ @@ -2251,8 +2252,7 @@ OVERSIZE: if (isspace(*p)) break; while (mac_isgraph(*p) && *p != ':') p++; - while (isspace(*p)) p++; - if (*p != ':') + if (Uskip_whitespace(&p) != ':') { body_zerocount = had_zero; break; @@ -2447,19 +2447,23 @@ for (header_line * h = header_list->next; h; h = h->next) case htype_from: h->type = htype_from; +#ifdef SUPPORT_DMARC + if (!is_resent) dmarc_from_header = h; +#endif if (!resents_exist || is_resent) { from_header = h; if (!smtp_input) { int len; - uschar *s = Ustrchr(h->text, ':') + 1; - while (isspace(*s)) s++; + uschar * s = Ustrchr(h->text, ':') + 1; + + Uskip_whitespace(&s); len = h->slen - (s - h->text) - 1; if (Ustrlen(originator_login) == len && strncmpic(s, originator_login, len) == 0) { - uschar *name = is_resent? US"Resent-From" : US"From"; + uschar * name = is_resent ? US"Resent-From" : US"From"; header_add(htype_from, "%s: %s <%s@%s>\n", name, originator_name, originator_login, qualify_domain_sender); from_header = header_last; @@ -2514,15 +2518,13 @@ for (header_line * h = header_list->next; h; h = h->next) if (filter_test != FTEST_NONE) { - uschar *start = h->text + 12; - uschar *end = start + Ustrlen(start); - while (isspace(*start)) start++; + uschar * start = h->text + 12; + uschar * end = start + Ustrlen(start); + + Uskip_whitespace(&start); while (end > start && isspace(end[-1])) end--; if (*start == '<' && end[-1] == '>') - { - start++; - end--; - } + { start++; end--; } return_path = string_copyn(start, end - start); printf("Return-path taken from \"Return-path:\" header line\n"); } @@ -2626,7 +2628,7 @@ if (extract_recip) (!contains_resent_headers || strncmpic(h->text, US"resent-", 7) == 0)) { uschar * s = Ustrchr(h->text, ':') + 1; - while (isspace(*s)) s++; + Uskip_whitespace(&s); f.parse_allow_group = TRUE; /* Allow address group syntax */ @@ -2706,7 +2708,7 @@ if (extract_recip) /* Move on past this address */ s = ss + (*ss ? 1 : 0); - while (isspace(*s)) s++; + Uskip_whitespace(&s); } /* Next address */ f.parse_allow_group = FALSE; /* Reset group syntax flags */ @@ -3621,7 +3623,7 @@ else #endif /* WITH_CONTENT_SCAN */ #ifdef SUPPORT_DMARC - dmarc_store_data(from_header); + dmarc_store_data(dmarc_from_header); #endif #ifndef DISABLE_PRDR @@ -4624,3 +4626,5 @@ return yield; /* TRUE if more messages (SMTP only) */ } /* End of receive.c */ +/* vi: se aw ai sw=2 +*/ diff --git a/src/src/retry.c b/src/src/retry.c index 42393d424..6ccef4f98 100644 --- a/src/src/retry.c +++ b/src/src/retry.c @@ -31,7 +31,7 @@ Returns: TRUE if the ultimate timeout has been reached */ BOOL -retry_ultimate_address_timeout(uschar *retry_key, const uschar *domain, +retry_ultimate_address_timeout(const uschar * retry_key, const uschar *domain, dbdata_retry *retry_record, time_t now) { BOOL address_timeout; @@ -75,6 +75,29 @@ return address_timeout; +const uschar * +retry_host_key_build(const host_item * host, BOOL incl_ip, + const uschar * portstring) +{ +const uschar * s = host->name; +gstring * g = string_is_ip_address(s, NULL) + ? string_fmt_append(NULL, "T:[%s]", s) /* wrap a name which is a bare ip */ + : string_fmt_append(NULL, "T:%s", s); + +s = host->address; +if (incl_ip) + g = Ustrchr(s, ':') + ? string_fmt_append(g, ":[%s]", s) /* wrap an ipv6 */ + : string_fmt_append(g, ":%s", s); + +if (portstring) + g = string_cat(g, portstring); + +gstring_release_unused(g); +return string_from_gstring(g); +} + + /************************************************* * Set status of a host+address item * *************************************************/ @@ -124,11 +147,12 @@ Returns: TRUE if the host has expired but is usable because BOOL retry_check_address(const uschar *domain, host_item *host, uschar *portstring, - BOOL include_ip_address, uschar **retry_host_key, uschar **retry_message_key) + BOOL include_ip_address, + const uschar **retry_host_key, const uschar **retry_message_key) { BOOL yield = FALSE; time_t now = time(NULL); -uschar * host_key, * message_key; +const uschar * host_key, * message_key; open_db dbblock, * dbm_file; tree_node * node; dbdata_retry * host_retry_record, * message_retry_record; @@ -143,14 +167,11 @@ if (host->status != hstatus_unknown) return FALSE; host->status = hstatus_usable; /* Generate the host key for the unusable tree and the retry database. Ensure -host names are lower cased (that's what %S does). */ - -host_key = include_ip_address - ? string_sprintf("T:%S:%s%s", host->name, host->address, portstring) - : string_sprintf("T:%S%s", host->name, portstring); - -/* Generate the message-specific key */ +host names are lower cased (that's what %S does). +Generate the message-specific key too. +Be sure to maintain lack-of-spaces in retry keys; exinext depends on it. */ +host_key = retry_host_key_build(host, include_ip_address, portstring); message_key = string_sprintf("%s:%s", host_key, message_id); /* Search the tree of unusable IP addresses. This is filled in when deliveries @@ -290,7 +311,7 @@ Returns: nothing */ void -retry_add_item(address_item *addr, uschar *key, int flags) +retry_add_item(address_item * addr, const uschar * key, int flags) { retry_item * rti = store_get(sizeof(retry_item), GET_UNTAINTED); host_item * host = addr->host_used; @@ -343,11 +364,11 @@ Returns: pointer to retry rule, or NULL */ retry_config * -retry_find_config(const uschar *key, const uschar *alternate, int basic_errno, +retry_find_config(const uschar * key, const uschar * alternate, int basic_errno, int more_errno) { -const uschar *colon = Ustrchr(key, ':'); -retry_config *yield; +const uschar * colon = Ustrchr(key, ':'); +retry_config * yield; /* If there's a colon in the key, there are two possibilities: @@ -355,7 +376,8 @@ retry_config *yield; hostname:ip+port - In this case, we copy the host name. + In this case, we copy the host name (which could be an [ip], including + being an [ipv6], and we drop the []). (2) This is a key for a pipe, file, or autoreply delivery, in the format @@ -369,6 +391,8 @@ retry_config *yield; if (colon) key = isalnum(*key) ? string_copyn(key, colon-key) /* the hostname */ + : *key == '[' + ? string_copyn(key+1, Ustrchr(key, ']')-1-key) /* the ip */ : Ustrrchr(key, ':') + 1; /* Take from the last colon */ /* Sort out the keys */ @@ -654,7 +678,13 @@ for (int i = 0; i < 3; i++) ? US string_printing(rti->message) : US"unknown error"; message_length = Ustrlen(message); - if (message_length > EXIM_DB_RLIMIT) message_length = EXIM_DB_RLIMIT; + if (message_length > EXIM_DB_RLIMIT) + { + DEBUG(D_retry) + debug_printf_indent("truncating message from %u to %u bytes\n", + message_length, EXIM_DB_RLIMIT); + message_length = EXIM_DB_RLIMIT; + } /* Read a retry record from the database or construct a new one. Ignore an old one if it is too old since it was last updated. */ @@ -932,3 +962,5 @@ DEBUG(D_retry) debug_printf("end of retry processing\n"); } /* End of retry.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/rewrite.c b/src/src/rewrite.c index 9ee5a6794..ce35c4365 100644 --- a/src/src/rewrite.c +++ b/src/src/rewrite.c @@ -452,7 +452,7 @@ header_line * newh = NULL; rmark function_reset_point = store_mark(); uschar * s = Ustrchr(h->text, ':') + 1; -while (isspace(*s)) s++; +Uskip_whitespace(&s); DEBUG(D_rewrite) /* The header text includes the trailing newline */ debug_printf_indent("rewrite_one_header: type=%c:\n %s", h->type, h->text); @@ -493,7 +493,7 @@ while (*s) recipient = parse_extract_address(s, &errmess, &start, &end, &domain, FALSE); *ss1 = terminator; s = ss + (*ss ? 1 : 0); - while (isspace(*s)) s++; + Uskip_whitespace(&s); /* There isn't much we can do for syntactic disasters at this stage. Pro tem (possibly for ever) ignore them. diff --git a/src/src/rfc2047.c b/src/src/rfc2047.c index 18263f9ab..1ab25150a 100644 --- a/src/src/rfc2047.c +++ b/src/src/rfc2047.c @@ -313,8 +313,8 @@ while (mimeword) mimeword = decode_mimeword(string, lencheck, &q1, &q2, &endword, &dlen, &dptr); if (mimeword) { - uschar *s = string; - while (isspace(*s)) s++; + uschar * s = string; + Uskip_whitespace(&s); if (s == mimeword) string = s; } } diff --git a/src/src/route.c b/src/src/route.c index 0fdcdf2ed..afd43d866 100644 --- a/src/src/route.c +++ b/src/src/route.c @@ -266,12 +266,12 @@ for (router_instance * r = routers; r; r = r->next) else if (Ustrncmp(s, "reroute:", 8) == 0) { s += 8; - while (isspace(*s)) s++; + Uskip_whitespace(&s); if (Ustrncmp(s, "rewrite:", 8) == 0) { r->self_rewrite = TRUE; s += 8; - while (isspace(*s)) s++; + Uskip_whitespace(&s); } r->self = s; r->self_code = self_reroute; @@ -693,13 +693,13 @@ while ((check = string_nextinlist(&listptr, &sep, NULL, 0))) if (*ss == '+') { eacces_code = 1; - while (isspace((*(++ss)))); + while (isspace(*++ss)); } if (*ss == '!') { invert = TRUE; - while (isspace((*(++ss)))); + while (isspace(*++ss)); } if (*ss != '/') @@ -1463,7 +1463,7 @@ for (uschar * ele; (ele = string_nextinlist(&varlist, &sep, NULL, 0)); ) } name += 2; - while (isspace(*assignment)) assignment++; + Uskip_whitespace(&assignment); if (!(val = expand_string(US assignment))) if (f.expand_string_forcedfail) diff --git a/src/src/routers/manualroute.c b/src/src/routers/manualroute.c index 45378ce3d..ffd6eeaca 100644 --- a/src/src/routers/manualroute.c +++ b/src/src/routers/manualroute.c @@ -156,17 +156,17 @@ static BOOL parse_route_item(const uschar *s, const uschar **domain, const uschar **hostlist, const uschar **options) { -while (*s != 0 && isspace(*s)) s++; +Uskip_whitespace(&s); if (domain) { if (!*s) return FALSE; /* missing data */ *domain = string_dequote(&s); - while (*s && isspace(*s)) s++; + Uskip_whitespace(&s); } *hostlist = string_dequote(&s); -while (*s && isspace(*s)) s++; +Uskip_whitespace(&s); *options = s; return TRUE; } @@ -333,8 +333,9 @@ lookup_type = LK_DEFAULT; while (*options) { unsigned n; - const uschar *s = options; - while (*options != 0 && !isspace(*options)) options++; + const uschar * s = options; + + Uskip_nonwhite(&options); n = options-s; if (Ustrncmp(s, "randomize", n) == 0) randomize = TRUE; @@ -368,7 +369,7 @@ while (*options) if (*options) { options++; - while (*options != 0 && isspace(*options)) options++; + Uskip_whitespace(&options); } } diff --git a/src/src/routers/queryprogram.c b/src/src/routers/queryprogram.c index b1d736f94..39645cd23 100644 --- a/src/src/routers/queryprogram.c +++ b/src/src/routers/queryprogram.c @@ -363,10 +363,10 @@ buffer[len] = 0; DEBUG(D_route) debug_printf("command wrote: %s\n", buffer); rword = buffer; -while (isspace(*rword)) rword++; +Uskip_whitespace(&rword); rdata = rword; -while (*rdata && !isspace(*rdata)) rdata++; -if (*rdata) *rdata++ = 0; +Uskip_nonwhite(&rdata); +if (*rdata) *rdata++ = '\0'; /* The word must be a known yield name. If it is "REDIRECT", the rest of the line is redirection data, as for a .forward file. It may not contain filter diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c index 37b5f5e24..799bee062 100644 --- a/src/src/routers/redirect.c +++ b/src/src/routers/redirect.c @@ -731,7 +731,7 @@ if (eblock != NULL) ob->syntax_errors_text)) /* Custom message */ return DEFER; - if (filtertype != FILTER_FORWARD || generated == NULL) + if (filtertype != FILTER_FORWARD || !generated) { addr->message = US"syntax error in redirection data"; return DECLINE; @@ -744,7 +744,7 @@ calling sort_errors_and_headers() in case this router declines - that function may modify the errors_address field in the current address, and we don't want to do that for a decline. */ -if (generated != NULL) +if (generated) { if ((xrc = sort_errors_and_headers(rblock, addr, verify, &addr_prop)) != OK) return xrc; diff --git a/src/src/search.c b/src/src/search.c index 168c25e6a..d0eb84b3b 100644 --- a/src/src/search.c +++ b/src/src/search.c @@ -247,7 +247,7 @@ if (mac_islookup(search_type, lookup_absfilequery)) if (*query == '/') { uschar * s = query; - while (*query && !isspace(*query)) query++; + Uskip_nonwhite(&query); *fnamep = string_copyn(s, query - s); Uskip_whitespace(&query); } diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c index f62d6fbf2..f65ab6603 100644 --- a/src/src/smtp_in.c +++ b/src/src/smtp_in.c @@ -1227,7 +1227,7 @@ for (smtp_cmd_list * p = cmd_list; p < cmd_list + nelem(cmd_list); p++) follow the sender address. */ smtp_cmd_argument = smtp_cmd_buffer + p->len; - while (isspace(*smtp_cmd_argument)) smtp_cmd_argument++; + Uskip_whitespace(&smtp_cmd_argument); Ustrcpy(smtp_data_buffer, smtp_cmd_argument); smtp_cmd_data = smtp_data_buffer; @@ -1946,6 +1946,9 @@ while (done <= 0) case HELP_CMD: case NOOP_CMD: case ETRN_CMD: +#ifdef EXPERIMENTAL_WELLKNOWN + case WELLKNOWN_CMD: +#endif bsmtp_transaction_linecount = receive_linecount; break; @@ -2551,7 +2554,7 @@ if (!f.sender_host_unknown) if (smtp_batched_input) return TRUE; -#if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS) || defined(EXPERIMETAL_XCLIENT) +#if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS) || defined(EXPERIMENTAL_XCLIENT) proxy_session = FALSE; #endif @@ -2991,8 +2994,8 @@ switch (where) if (where == ACL_WHERE_AUTH) /* avoid logging auth creds */ { - uschar * s; - for (s = smtp_cmd_data; *s && !isspace(*s); ) s++; + uschar * s = smtp_cmd_data; + Uskip_nonwhite(&s); lim = s - smtp_cmd_data; /* atop after method */ } what = string_sprintf("%s %.*s", acl_wherenames[where], lim, place); @@ -3807,8 +3810,8 @@ while (done <= 0) if (*smtp_cmd_data) { - *smtp_cmd_data++ = 0; - while (isspace(*smtp_cmd_data)) smtp_cmd_data++; + *smtp_cmd_data++ = '\0'; + Uskip_whitespace(&smtp_cmd_data); } /* Search for an authentication mechanism which is configured for use @@ -3919,10 +3922,10 @@ while (done <= 0) if (!f.sender_host_unknown) { BOOL old_helo_verified = f.helo_verified; - uschar *p = smtp_cmd_data; + uschar * p = smtp_cmd_data; - while (*p != 0 && !isspace(*p)) { *p = tolower(*p); p++; } - *p = 0; + while (*p && !isspace(*p)) { *p = tolower(*p); p++; } + *p = '\0'; /* Force a reverse lookup if HELO quoted something in helo_lookup_domains because otherwise the log can be confusing. */ @@ -5694,7 +5697,7 @@ while (done <= 0) case TOO_MANY_NONMAIL_CMD: s = smtp_cmd_buffer; - while (*s && !isspace(*s)) s++; + Uskip_nonwhite(&s); incomplete_transaction_log(US"too many non-mail commands"); log_write(0, LOG_MAIN|LOG_REJECT, "SMTP call from %s dropped: too many " "nonmail commands (last was \"%.*s\")", host_and_ident(FALSE), diff --git a/src/src/smtp_out.c b/src/src/smtp_out.c index 895b594fc..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 */ @@ -704,13 +706,13 @@ if (format) if (outblock->authenticating) { - uschar *p = big_buffer; + uschar * p = big_buffer; if (Ustrncmp(big_buffer, "AUTH ", 5) == 0) { p += 5; - while (isspace(*p)) p++; - while (!isspace(*p)) p++; - while (isspace(*p)) p++; + Uskip_whitespace(&p); + Uskip_nonwhite(&p); + Uskip_whitespace(&p); } while (*p) *p++ = '*'; } diff --git a/src/src/string.c b/src/src/string.c index af187c199..170b47b23 100644 --- a/src/src/string.c +++ b/src/src/string.c @@ -649,7 +649,7 @@ uschar * t, * yield; /* First find the end of the string */ if (*s != '\"') - while (*s && !isspace(*s)) s++; + Uskip_nonwhite(&s); else { s++; @@ -1234,13 +1234,6 @@ return g; } -gstring * -string_cat(gstring * g, const uschar * s) -{ -return string_catn(g, s, Ustrlen(s)); -} - - /************************************************* * Append strings to another string * @@ -1333,7 +1326,7 @@ Arguments: ap variable-args pointer Flags: - SVFMT_EXTEND buffer can be created or exteded as needed + SVFMT_EXTEND buffer can be created or extended as needed SVFMT_REBUFFER buffer can be recopied to tainted mem as needed SVFMT_TAINT_NOCHK do not check inputs for taint @@ -1630,7 +1623,7 @@ while (*fp) goto INSERT_GSTRING; } - case 'W': /* Maybe mark up spaces & newlines */ + case 'W': /* Maybe mark up ctrls, spaces & newlines */ s = va_arg(ap, char *); if (Ustrpbrk(s, " \n") && !IS_DEBUG(D_noutf8)) { @@ -1653,7 +1646,15 @@ while (*fp) if (precision >= 0) precision += 3; break; default: - zg = string_catn(zg, CUS s, 1); + if (*s <= ' ') + { /* base of UTF8 symbols for ASCII control chars */ + uschar ctrl_symbol[3] = {[0]=0xe2, [1]=0x90, [2]=0x80}; + ctrl_symbol[2] |= *s; + zg = string_catn(zg, ctrl_symbol, 3); + if (precision >= 0) precision += 2; + } + else + zg = string_catn(zg, CUS s, 1); break; } } @@ -1705,7 +1706,7 @@ while (*fp) } /* If a width is not specified and the precision is specified, set - the width to the precision, or the string length if shorted. */ + the width to the precision, or the string length if shorter. */ else if (precision >= 0) width = precision < slen ? precision : slen; diff --git a/src/src/structs.h b/src/src/structs.h index b16a8a3f2..8aab54055 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -480,7 +480,7 @@ can be tried. */ typedef struct retry_item { struct retry_item *next; /* for chaining */ - uschar *key; /* string identifying host/address/message */ + const uschar *key; /* string identifying host/address/message */ int basic_errno; /* error code for this destination */ int more_errno; /* additional error information */ uschar *message; /* local error message */ diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c index e6a1c6fa4..34612adea 100644 --- a/src/src/tls-openssl.c +++ b/src/src/tls-openssl.c @@ -5170,8 +5170,7 @@ if (!expand_check(option_spec, US"openssl_options", &exp, &end)) for (uschar * s = exp; *s; /**/) { - while (isspace(*s)) ++s; - if (*s == '\0') + if (!Uskip_whitespace(&s)) break; if (*s != '+' && *s != '-') { @@ -5180,7 +5179,8 @@ for (uschar * s = exp; *s; /**/) return FALSE; } adding = *s++ == '+'; - for (end = s; *end && !isspace(*end); ) end++; + end = s; + Uskip_nonwhite(&end); item_parsed = tls_openssl_one_option_parse(string_copyn(s, end-s), &item); if (!item_parsed) { diff --git a/src/src/transports/appendfile.c b/src/src/transports/appendfile.c index 0279659f2..f495f9571 100644 --- a/src/src/transports/appendfile.c +++ b/src/src/transports/appendfile.c @@ -1368,7 +1368,7 @@ if (!isdirectory) && ob->create_file == create_belowhome) if (is_tainted(path)) { - DEBUG(D_transport) debug_printf("de-tainting path '%s'\n", path); + DEBUG(D_transport) debug_printf("below-home: de-tainting path '%s'\n", path); path = string_copy_taint(path, GET_UNTAINTED); } @@ -2207,7 +2207,7 @@ else if (is_tainted(path)) if (ob->create_file == create_belowhome) { - DEBUG(D_transport) debug_printf("de-tainting path '%s'\n", path); + DEBUG(D_transport) debug_printf("below-home: de-tainting path '%s'\n", path); path = string_copy_taint(path, GET_UNTAINTED); } else diff --git a/src/src/transports/autoreply.c b/src/src/transports/autoreply.c index 690ec4a92..803202b52 100644 --- a/src/src/transports/autoreply.c +++ b/src/src/transports/autoreply.c @@ -235,13 +235,12 @@ that needs to be removed */ s = newlist + Ustrlen(newlist); while (s > newlist && (isspace(s[-1]) || s[-1] == ',')) s--; -*s = 0; +*s = '\0'; /* Check to see if there any addresses left; if not, return NULL */ s = newlist; -while (s && isspace(*s)) s++; -if (*s) +if (Uskip_whitespace(&s)) return newlist; store_reset(reset_point); @@ -476,10 +475,9 @@ if (oncelog && *oncelog && to) else { EXIM_DATUM key_datum, result_datum; - uschar * dirname, * s; + uschar * s = Ustrrchr(oncelog, '/'); + uschar * dirname = s ? string_copyn(oncelog, s - oncelog) : NULL; - dirname = (s = Ustrrchr(oncelog, '/')) - ? string_copyn(oncelog, s - oncelog) : NULL; if (!(dbm_file = exim_dbopen(oncelog, dirname, O_RDWR|O_CREAT, ob->mode))) { addr->transport_return = DEFER; @@ -592,7 +590,7 @@ for (h = header_list; h; h = h->next) if (h) { message_id = Ustrchr(h->text, ':') + 1; - while (isspace(*message_id)) message_id++; + Uskip_whitespace(&message_id); fprintf(fp, "In-Reply-To: %s", message_id); } @@ -812,3 +810,5 @@ return FALSE; #endif /*!MACRO_PREDEF*/ #endif /*TRANSPORT_AUTOREPOL*/ /* End of transport/autoreply.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/transports/pipe.c b/src/src/transports/pipe.c index 60a20c8fe..f8a1427b9 100644 --- a/src/src/transports/pipe.c +++ b/src/src/transports/pipe.c @@ -562,7 +562,7 @@ if (testflag(addr, af_pfr) && addr->local_part[0] == '|') else { cmd = addr->local_part + 1; - while (isspace(*cmd)) cmd++; + Uskip_whitespace(&cmd); expand_arguments = testflag(addr, af_expand_pipe); expand_fail = FAIL; } diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index 736592352..0338d6301 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -533,7 +533,7 @@ switch(*errno_value) case ERRNO_SMTPFORMAT: /* Handle malformed SMTP response */ s = string_printing(buffer); - while (isspace(*s)) s++; + Uskip_whitespace(&s); *message = *s == 0 ? string_sprintf("Malformed SMTP reply (an empty line) " "in response to %s%s", pl, smtp_command) @@ -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 @@ -815,8 +819,7 @@ uschar * match; if (regex_match(regex_LIMITS, sx->buffer, -1, &match)) for (const uschar * s = sx->buffer + Ustrlen(match); *s; ) { - while (isspace(*s)) s++; - if (*s == '\n') break; + if (Uskip_whitespace(&s) == '\n') break; if (strncmpic(s, US"MAILMAX=", 8) == 0) { @@ -946,7 +949,8 @@ if ( sx->early_pipe_active if (!(er = dbfn_read_enforce_length(dbm_file, ehlo_resp_key, sizeof(dbdata_ehlo_resp)))) debug_printf("no ehlo-resp record!\n"); else - debug_printf("ehlo-resp record is %d seconds old\n", time(NULL) - er->time_stamp); + debug_printf("ehlo-resp record is %.0f seconds old\n", + difftime(time(NULL), er->time_stamp)); } dbfn_delete(dbm_file, ehlo_resp_key); @@ -1307,7 +1311,7 @@ while (count-- > 0) if (testflag(addr, af_dr_retry_exists)) { - uschar *altkey = string_sprintf("%s:<%s>", addr->address_retry_key, + uschar * altkey = string_sprintf("%s:<%s>", addr->address_retry_key, sender_address); retry_add_item(addr, altkey, rf_delete); retry_add_item(addr, addr->address_retry_key, rf_delete); @@ -1323,7 +1327,7 @@ while (count-- > 0) else if (errno == ETIMEDOUT) { - uschar *message = string_sprintf("SMTP timeout after RCPT TO:<%s>", + uschar * message = string_sprintf("SMTP timeout after RCPT TO:<%s>", transport_rcpt_address(addr, sx->conn_args.tblock->rcpt_include_affixes)); set_errno_nohost(sx->first_addr, ETIMEDOUT, message, DEFER, FALSE, &sx->delivery_start); retry_add_item(addr, addr->address_retry_key, 0); @@ -1694,8 +1698,8 @@ if ( sx->esmtp { DEBUG(D_transport) debug_printf("skipping %s authenticator: %s\n", au->name, - (au->client)? "client_condition is false" : - "not configured as a client"); + au->client ? "client_condition is false" + : "not configured as a client"); continue; } @@ -1703,15 +1707,14 @@ if ( sx->esmtp while (*p) { - int len = Ustrlen(au->public_name); - int rc; + int len = Ustrlen(au->public_name), rc; - while (isspace(*p)) p++; + Uskip_whitespace(&p); if (strncmpic(au->public_name, p, len) != 0 || - (p[len] != 0 && !isspace(p[len]))) + (p[len] && !isspace(p[len]))) { - while (*p != 0 && !isspace(*p)) p++; + while (*p && !isspace(*p)) p++; continue; } @@ -5378,7 +5381,7 @@ retry_non_continued: BOOL host_is_expired = FALSE, message_defer = FALSE, some_deferred = FALSE; address_item * first_addr = NULL; uschar * interface = NULL; - uschar * retry_host_key = NULL, * retry_message_key = NULL; + const uschar * retry_host_key = NULL, * retry_message_key = NULL; uschar * serialize_key = NULL; /* Deal slightly better with a possible Linux kernel bug that results @@ -5875,9 +5878,7 @@ retry_non_continued: ob->expand_retry_include_ip_address, &incl_ip) != OK) incl_ip = TRUE; /* error; use most-specific retry record */ - retry_host_key = incl_ip - ? string_sprintf("T:%S:%s%s", host->name, host->address, pistring) - : string_sprintf("T:%S%s", host->name, pistring); + retry_host_key = retry_host_key_build(host, incl_ip, pistring); } /* If a delivery of another message over an existing SMTP connection @@ -5923,10 +5924,8 @@ retry_non_continued: ob->expand_retry_include_ip_address, &incl_ip) != OK) incl_ip = TRUE; /* error; use most-specific retry record */ - retry_message_key = incl_ip - ? string_sprintf("T:%S:%s%s:%s", host->name, host->address, pistring, - message_id) - : string_sprintf("T:%S%s:%s", host->name, pistring, message_id); + retry_message_key = string_sprintf("%s:%s", + retry_host_key_build(host, incl_ip, pistring), message_id); } retry_add_item(addrlist, retry_message_key, rf_message | rf_host | delete_flag); diff --git a/src/src/tree.c b/src/src/tree.c index eb54829db..2c703583e 100644 --- a/src/src/tree.c +++ b/src/src/tree.c @@ -65,6 +65,7 @@ if (!tree_insertnode(&tree_duplicates, node)) store_reset(rpoint); +#ifndef COMPILE_UTILITY /************************************************* * Add entry to unusable addresses tree * *************************************************/ @@ -76,12 +77,11 @@ Returns: nothing */ void -tree_add_unusable(const host_item *h) +tree_add_unusable(const host_item * h) { rmark rpoint = store_mark(); -tree_node *node; -uschar s[256]; -sprintf(CS s, "T:%.200s:%s", h->name, h->address); +tree_node * node; +const uschar * s = retry_host_key_build(h, TRUE, NULL); node = store_get(sizeof(tree_node) + Ustrlen(s), is_tainted(h->name) || is_tainted(h->address) ? GET_TAINTED : GET_UNTAINTED); Ustrcpy(node->name, s); @@ -89,7 +89,7 @@ node->data.val = h->why; if (h->status == hstatus_unusable_expired) node->data.val += 256; if (!tree_insertnode(&tree_unusable, node)) store_reset(rpoint); } - +#endif /************************************************* diff --git a/src/src/verify.c b/src/src/verify.c index 78923651c..065deec41 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -2612,12 +2612,12 @@ for (int i = 0; i < 3 && !done; i++) f.parse_allow_group = TRUE; - while (*s != 0) + while (*s) { - address_item *vaddr; + address_item * vaddr; while (isspace(*s) || *s == ',') s++; - if (*s == 0) break; /* End of header */ + if (!*s) break; /* End of header */ ss = parse_find_address_end(s, FALSE); @@ -2628,7 +2628,7 @@ for (int i = 0; i < 3 && !done; i++) while (isspace(ss[-1])) ss--; terminator = *ss; - *ss = 0; + *ss = '\0'; HDEBUG(D_verify) debug_printf("verifying %.*s header address %s\n", (int)(endname - h->text), h->text, s); @@ -2873,17 +2873,17 @@ if (sscanf(CS buffer + qlen, "%d , %d%n", &received_sender_port, goto END_OFF; p = buffer + qlen + n; -while(isspace(*p)) p++; +Uskip_whitespace(&p); if (*p++ != ':') goto END_OFF; -while(isspace(*p)) p++; +Uskip_whitespace(&p); if (Ustrncmp(p, "USERID", 6) != 0) goto END_OFF; p += 6; -while(isspace(*p)) p++; +Uskip_whitespace(&p); if (*p++ != ':') goto END_OFF; -while (*p != 0 && *p != ':') p++; -if (*p++ == 0) goto END_OFF; -while(isspace(*p)) p++; -if (*p == 0) goto END_OFF; +while (*p && *p != ':') p++; +if (!*p++) goto END_OFF; +Uskip_whitespace(&p); +if (!*p) goto END_OFF; /* The rest of the line is the data we want. We turn it into printing characters when we save it, so that it cannot mess up the format of any logging @@ -3081,9 +3081,9 @@ if (iplookup) { filename = semicolon + 1; key = filename; - while (*key != 0 && !isspace(*key)) key++; + Uskip_nonwhite(&key); filename = string_copyn(filename, key - filename); - while (isspace(*key)) key++; + Uskip_whitespace(&key); } else if (mac_islookup(search_type, lookup_querystyle)) { diff --git a/src/src/xclient.c b/src/src/xclient.c index 2a8be9b0e..fb9d95c5e 100644 --- a/src/src/xclient.c +++ b/src/src/xclient.c @@ -172,7 +172,7 @@ for (state = XCLIENT_SKIP_SPACES; *s; ) uschar * val; word = ++s; /* skip the = */ - while (*s && !isspace(*s)) s++; + Uskip_nonwhite(&s); len = s - word; DEBUG(D_transport) debug_printf(" XCLIENT: \tvalue %.*s\n", len, word); @@ -248,7 +248,7 @@ for (state = XCLIENT_SKIP_SPACES; *s; ) } case XCLIENT_SKIP_SPACES: - while (*s && isspace (*s)) s++; + Uskip_whitespace(&s); state = XCLIENT_READ_COMMAND; break; diff --git a/test/confs/0633 b/test/confs/0633 index e56abaf80..04fe61aa1 100644 --- a/test/confs/0633 +++ b/test/confs/0633 @@ -7,6 +7,8 @@ acl_smtp_rcpt = accept acl_smtp_data = check_data +log_selector = +received_recipients + # ----- ACL ----- begin acl diff --git a/test/confs/5708 b/test/confs/5708 new file mode 100644 index 000000000..4fc0e9b27 --- /dev/null +++ b/test/confs/5708 @@ -0,0 +1,32 @@ +# Exim test configuration 5708 +# Check for event on dns lookup fail + +.include DIR/aux-var/std_conf_prefix + +primary_hostname = myhost.test.ex + +# ----- Main settings ----- + +acl_smtp_rcpt = accept verify = helo + +event_action = ${acl {accept logwrite = M <$event_name> <$event_data>}} + +# ----- Routers ----- +begin routers +all: + driver = accept + transport = all + errors_to = "" + +# ----- Transports ----- +begin transports +all: + driver = smtp + hosts = ${if inlist {$domain} {nonexistent.test.ex} {$value}} + event_action = ${acl {accept logwrite = T <$event_name> <$event_data>}} + +# ------ Retries ---- +begin retry +* * F,10m,2d + +# End diff --git a/test/confs/5709 b/test/confs/5709 new file mode 100644 index 000000000..5539cddeb --- /dev/null +++ b/test/confs/5709 @@ -0,0 +1,10 @@ +# Exim test configuration 5709 +# Check for event on dnsdb lookup fail + +.include DIR/aux-var/std_conf_prefix +primary_hostname = myhost.test.ex +event_action = ${acl {accept logwrite = <$event_name> <$event_data>}} + +acl_smtp_helo = accept continue = ${lookup dnsdb{defer_never,a=$sender_helo_name}{$value}} + +# End 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/log/5708 b/test/log/5708 new file mode 100644 index 000000000..def9f94e4 --- /dev/null +++ b/test/log/5708 @@ -0,0 +1,12 @@ + +******** SERVER ******** +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 M +1999-03-02 09:44:33 H=(nonexistent.test.ex) [127.0.0.1] F= rejected RCPT +1999-03-02 09:44:33 M +1999-03-02 09:44:33 H=(badcname.test.ex) [127.0.0.1] F= rejected RCPT +1999-03-02 09:44:33 M +1999-03-02 09:44:33 H=(test.again.dns) [127.0.0.1] F= rejected RCPT +1999-03-02 09:44:33 10HmaX-000000005vi-0000 <= a@b H=(localhost) [127.0.0.1] P=smtp S=sss +1999-03-02 09:44:33 10HmaX-000000005vi-0000 T +1999-03-02 09:44:33 10HmaX-000000005vi-0000 == bad_a@nonexistent.test.ex R=all T=all defer (-32): failed to lookup IP address for nonexistent.test.ex diff --git a/test/log/5709 b/test/log/5709 new file mode 100644 index 000000000..b7cd77918 --- /dev/null +++ b/test/log/5709 @@ -0,0 +1,6 @@ + +******** SERVER ******** +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 +1999-03-02 09:44:33 +1999-03-02 09:44:33 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/rejectlog/5708 b/test/rejectlog/5708 new file mode 100644 index 000000000..98f38cd91 --- /dev/null +++ b/test/rejectlog/5708 @@ -0,0 +1,5 @@ + +******** SERVER ******** +1999-03-02 09:44:33 H=(nonexistent.test.ex) [127.0.0.1] F= rejected RCPT +1999-03-02 09:44:33 H=(badcname.test.ex) [127.0.0.1] F= rejected RCPT +1999-03-02 09:44:33 H=(test.again.dns) [127.0.0.1] F= rejected RCPT diff --git a/test/runtest b/test/runtest index 98914d171..dac4ed878 100755 --- a/test/runtest +++ b/test/runtest @@ -464,7 +464,7 @@ RESET_AFTER_EXTRA_LINE_READ: s/:[^:]+: while opening named pipe/: Error: while opening named pipe/; # Debugging output of lists of hosts may have different sort keys - s/sort=\S+/sort=xx/ if /^\S+ (?:\d+\.){3}\d+ mx=\S+ sort=\S+/; + s/^\s*\S+ (?:\d+\.){3}\d+ mx=\S+ sort=\K\S+/xx/; # Random local part in callout cache testing s/myhost.test.ex-\d+-testing/myhost.test.ex-dddddddd-testing/; @@ -500,7 +500,10 @@ RESET_AFTER_EXTRA_LINE_READ: s/T:(\S+)\s-22\s(\S+)\s/T:$1 -22 xxxx /; # port numbers in dumpdb output - s/T:([a-z.]+(:[0-9.]+)?):$parm_port_n /T:$1:PORT_N /; + s/T:([a-z0-9.]+(:[0-9.]+|:\[[^]]+])?):$parm_port_n /T:$1:PORT_N /; + s/T:([a-z0-9.[\]]+(:[0-9.]+|:\[[^]]+])?):$parm_port_s /T:$1:PORT_S /; + # and exinext + s/Transport: (?:[a-z0-9.]+|\[[^\]]+]) (?:[0-9.]+|\[[^\]]+]):\K$parm_port_s /PORT_S /; # port numbers in stderr s/^set_process_info: .*\]:\K$parm_port_d /PORT_D /; @@ -821,7 +824,8 @@ RESET_AFTER_EXTRA_LINE_READ: # This handles "connection from" and the like, when the port is given if (!/listening for SMTP on/ && !/Connecting to/ && !/=>/ && !/->/ - && !/\*>/&& !/==/ && !/\*\*/ && !/Connection refused/ && !/in response to/) + && !/\*>/&& !/==/ && !/\*\*/ && !/Connection refused/ && !/in response to/ + && !/T(?:ransport)?:/) { s/\[([a-z\d:]+|\d+(?:\.\d+){3})\]:(\d+)/"[".$1."]:".new_value($2,"%s",\$next_port)/ie; } @@ -1057,6 +1061,9 @@ RESET_AFTER_EXTRA_LINE_READ: # gnutls version variances next if /^Error in the pull function./; + # Retry DB record gets truncated when TESTDIR is a long string + s/T:.*\(MTA-imposed quota exceeded while writing to\K.*$/ )/; + # optional IDN2 variant conversions. Accept either IDN1 or IDN2 s/conversion strasse.de/conversion xn--strae-oqa.de/; s/conversion: german.xn--strae-oqa.de/conversion: german.straße.de/; @@ -1081,7 +1088,7 @@ RESET_AFTER_EXTRA_LINE_READ: next if /^limits_advertise_hosts =/; # PRDR - next if /^hosts_try_prdr = *$/; + next if /^hosts_try_prdr = \*$/; # TLS resumption is not always supported by the build next if /^tls_resumption_hosts =/; @@ -1400,7 +1407,7 @@ RESET_AFTER_EXTRA_LINE_READ: s%(?>/; s/\(gnutls_handshake\): No common application protocol could be negotiated./(SSL_accept): error: <>/; + + # Not all buildfarm animals have ipv6 + next if / $/ ; } # ======== mail ======== diff --git a/test/scripts/0000-Basic/0121 b/test/scripts/0000-Basic/0121 index 85392b6a6..ce16b584a 100644 --- a/test/scripts/0000-Basic/0121 +++ b/test/scripts/0000-Basic/0121 @@ -43,8 +43,5 @@ mail from:<"a b"@localhost3> SIZE=1234 rset ehlo foo.bar mail from:"a b"@localhost4 SIZE=1234 -rset -ehlo foo.bar -mail from:<"a b"@localhost5> PRDR quit **** diff --git a/test/scripts/0000-Basic/0633 b/test/scripts/0000-Basic/0633 index c4afc2c97..070010d0f 100644 --- a/test/scripts/0000-Basic/0633 +++ b/test/scripts/0000-Basic/0633 @@ -1,5 +1,6 @@ -# Log buffer fill +# Log buffer overfill # +# Feed using an ACL logwrite exim -bh V4NET.0.0.0 helo test mail from:<> @@ -7,3 +8,951 @@ rcpt to: data . **** +# +# Feed using log received_recipients +exim -bh V4NET.0.0.0 +helo test +mail from:<> +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +rcpt to: +data +. +**** diff --git a/test/scripts/2300-DBM/2301 b/test/scripts/2300-DBM/2301 index 9ba0c5079..82ec19da7 100644 --- a/test/scripts/2300-DBM/2301 +++ b/test/scripts/2300-DBM/2301 @@ -1,4 +1,6 @@ # lookup dbmjz +# NB: the reference DB file is a Berkeley DB; +# builds for other hints-DB interface will fail # exim -be ${lookup{testid:test.example.invalid:userPassword}dbmjz{DIR/aux-fixed/TESTNUM.testsasldb}{$value}fail} diff --git a/test/scripts/2300-DBM/2302 b/test/scripts/2300-DBM/2302 index 4bdbc869e..4c8b7958b 100644 --- a/test/scripts/2300-DBM/2302 +++ b/test/scripts/2300-DBM/2302 @@ -1,4 +1,6 @@ # lookup dbmnz +# NB: the reference DB file is a Berkeley DB; +# builds for other hints-DB interface will fail # exim -be '[${lookup{test}dbmnz{DIR/aux-fixed/TESTNUM.emptydbmnzlookup}}]' **** diff --git a/test/scripts/5700-events/5708 b/test/scripts/5700-events/5708 new file mode 100644 index 000000000..9cb9508fe --- /dev/null +++ b/test/scripts/5700-events/5708 @@ -0,0 +1,62 @@ +# event on dns lookup fail + +exim -bd -DSERVER=server -oX PORT_D +**** +# +# no A record +client 127.0.0.1 PORT_D +??? 220 +HELO nonexistent.test.ex +??? 250 +MAIL FROM: +??? 250 +RCPT TO: +??? 550 +QUIT +??? 221 +**** +# CNAME to no-A-record +client 127.0.0.1 PORT_D +??? 220 +HELO badcname.test.ex +??? 250 +MAIL FROM: +??? 250 +RCPT TO: +??? 550 +QUIT +??? 221 +**** +# defer from dns lookup +client 127.0.0.1 PORT_D +??? 220 +HELO test.again.dns +??? 250 +MAIL FROM: +??? 250 +RCPT TO: +??? 550 +QUIT +??? 221 +**** +# success in RCPT ACL; no-A in transport +client 127.0.0.1 PORT_D +??? 220 +HELO localhost +??? 250 +MAIL FROM: +??? 250 +RCPT TO: +??? 250 Accepted +DATA +??? 354 +Subject: test +. +??? 250 +QUIT +??? 221 +**** +# +sleep 1 +killdaemon +no_msglog_check diff --git a/test/scripts/5709_dnsdb_events/5709 b/test/scripts/5709_dnsdb_events/5709 new file mode 100644 index 000000000..583df5f1a --- /dev/null +++ b/test/scripts/5709_dnsdb_events/5709 @@ -0,0 +1,19 @@ +# event on dnsdb lookup fail +# +exim -bd -DSERVER=server -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +HELO nonexistent.test.ex +??? 250 +HELO badcname.test.ex +??? 250 +HELO test.again.dns +??? 250 +HELO localhost +??? 250 +QUIT +??? 221 +**** +killdaemon +no_stderr_check diff --git a/test/scripts/5709_dnsdb_events/REQUIRES b/test/scripts/5709_dnsdb_events/REQUIRES new file mode 100644 index 000000000..22e09781c --- /dev/null +++ b/test/scripts/5709_dnsdb_events/REQUIRES @@ -0,0 +1,2 @@ +lookup dnsdb +support Event diff --git a/test/stderr/0002 b/test/stderr/0002 index 593731a8d..ff30f0528 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}} @@ -492,7 +494,9 @@ try option unknown_login ├considering: $sender_host_name looking up host name for V4NET.0.0.1 IP address lookup yielded "ten-1.test.ex" -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx + check dnssec require list + check dnssec request list + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx checking addresses for ten-1.test.ex V4NET.0.0.1 OK sender_fullhost = ten-1.test.ex [V4NET.0.0.1] @@ -542,12 +546,17 @@ host in "< list element: partial-lsearch;TESTSUITE/aux-fixed/0002.lsearch sender host name required, to match against partial-lsearch;TESTSUITE/aux-fixed/0002.lsearch 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 + 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" -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 + check dnssec require list + ten-1.test.ex not in empty list (option unset? cannot trace name) + check dnssec request list + ten-1.test.ex not in empty list (option unset? cannot trace name) + faking res_search(AAAA) response length as 65535 + 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 checking addresses for ten-1.test.ex Forward DNS security status: unverified V4NET.0.0.1 OK 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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..e27c11500 100644 --- a/test/stderr/0020 +++ b/test/stderr/0020 @@ -4,6 +4,10 @@ >>> 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" +>>> check dnssec require list +>>> manyhome.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 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= rejected RCPT : 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= rejected RCPT : 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..78783ded6 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT : 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : don't like this host >>> list element: domain2 >>> y in "domain2"? no (end of list) >>> list element: +ok_senders ->>> x@y in "ok@ok.ok"? ->>> list element: ok@ok.ok ->>> x@y in "ok@ok.ok"? no (end of list) +>>> start sublist ok_senders +>>> x@y in "ok@ok.ok"? +>>> ╎list element: ok@ok.ok +>>> x@y in "ok@ok.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= rejected RCPT >>> 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= rejected RCPT >>> list element: domain2 >>> domain1 in "domain2"? no (end of list) >>> list element: +ok_senders ->>> user2@domain1 in "ok@ok.ok"? ->>> list element: ok@ok.ok ->>> user2@domain1 in "ok@ok.ok"? no (end of list) +>>> start sublist ok_senders +>>> user2@domain1 in "ok@ok.ok"? +>>> ╎list element: ok@ok.ok +>>> user2@domain1 in "ok@ok.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= rejected RCPT >>> list element: domain2 >>> ok.ok in "domain2"? no (end of list) >>> list element: +ok_senders ->>> ok@ok.ok in "ok@ok.ok"? ->>> list element: ok@ok.ok ->>> ok.ok in "ok.ok"? ->>> list element: ok.ok ->>> ok.ok in "ok.ok"? yes (matched "ok.ok") ->>> ok@ok.ok in "ok@ok.ok"? yes (matched "ok@ok.ok") +>>> start sublist ok_senders +>>> ok@ok.ok in "ok@ok.ok"? +>>> ╎list element: ok@ok.ok +>>> ╎ok.ok in "ok.ok"? +>>> ╎ list element: ok.ok +>>> ╎ ok.ok in "ok.ok"? yes (matched "ok.ok") +>>> ╎ok@ok.ok in "ok@ok.ok"? yes (matched "ok@ok.ok") +>>> end sublist ok_senders +>>> data from lookup saved for cache for +ok_senders: key 'ok@ok.ok' value 'ok@ok.ok' >>> ok@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= rejected RCPT >>> 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.ok >>> ok@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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT >>> 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= rejected RCPT : 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,16 @@ LOG: H=(test) [28.28.28.28] F= rejected RCPT >>> looking up host name for V4NET.0.0.3 >>> IP address lookup yielded "ten-3.test.ex" >>> alias "ten-3-alias.test.ex" +>>> check dnssec require list +>>> ten-3.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 +>>> check dnssec require list +>>> ten-3-alias.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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,7 +1615,11 @@ LOG: H=(test) [V4NET.0.0.97] F=<> rejected RCPT : 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 in dns_again_means_nonexist? no (option unset) +>>> check dnssec require list +>>> x.test.again.dns not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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" LOG: H=(test) [V4NET.99.99.96] F=<> temporarily rejected RCPT : host lookup deferred for reverse lookup check @@ -1583,7 +1645,11 @@ LOG: H=(test) [V4NET.99.99.96] F=<> temporarily rejected RCPT : 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 in dns_again_means_nonexist? no (option unset) +>>> check dnssec require list +>>> x.test.again.dns not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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" >>> end of ACL "acl_V4NET_99_99": ACCEPT @@ -1720,16 +1786,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@test.ex --------> 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@test.ex --------> 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@test.ex: 599 custom reject >>> routing ok_with_dom@test.ex >>> calling system_aliases router >>> system_aliases router declined for ok_with_dom@test.ex ->>> 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@test.ex >>> calling system_aliases router >>> system_aliases router declined for acceptable@test.ex ->>> 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 ->>> 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 ->>> 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@test.ex H=[1.1.1.1] >>> processing "accept" (TESTSUITE/test-config 47) @@ -52,15 +58,18 @@ LOG: VRFY failed for junkjunk@test.ex H=[1.1.1.1] >>> end of inline ACL: ACCEPT >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing expan@test.ex ->>> 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@test.ex >>> 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 ->>> 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@exim.test.ex ->>> 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 >> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing postmaster@exim.test.ex ->>> 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 ->>> 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@exim.test.ex ->>> 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 >> check !verify = recipient >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing postmaster@exim.test.ex ->>> 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 ->>> 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@exim.test.ex ->>> 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 >> 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 >> check !verify = recipient >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing junkjunk@exim.test.ex ->>> 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@exim.test.ex ->>> 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= rejected RCPT j >>> check !verify = recipient >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing fail@exim.test.ex ->>> 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@exim.test.ex --------> 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= rejected RCPT : 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= rejected RCPT >> 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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..521838203 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,44 @@ >>> 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" +>>> ╎ check dnssec require list +>>> ╎ ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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 +96,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@somehost.example.com 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 +110,44 @@ LOG: 10HmaX-000000005vi-0000 <= userx@somehost.example.com 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" +>>> ╎ check dnssec require list +>>> ╎ ten-2.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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 +173,12 @@ LOG: 10HmaY-000000005vi-0000 <= userx@somehost.example.com 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 +187,52 @@ LOG: 10HmaY-000000005vi-0000 <= userx@somehost.example.com 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" +>>> ╎ check dnssec require list +>>> ╎ ten-3.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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 +>>> ╎ check dnssec require list +>>> ╎ ten-3-alias.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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..6af427735 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,43 @@ >>> 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" +>>> ╎ check dnssec require list +>>> ╎ ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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 +91,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@somehost.example.com 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 +105,44 @@ LOG: 10HmaX-000000005vi-0000 <= userx@somehost.example.com 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" +>>> ╎ check dnssec require list +>>> ╎ ten-2.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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..1881d86e5 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,43 @@ >>> 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" +>>> ╎ check dnssec require list +>>> ╎ ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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 +91,12 @@ LOG: 10HmaX-000000005vi-0000 <= userx@somehost.example.com 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 +105,44 @@ LOG: 10HmaX-000000005vi-0000 <= userx@somehost.example.com 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" +>>> ╎ check dnssec require list +>>> ╎ ten-2.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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..d5a7f0fae 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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@somehost.example.com 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,51 @@ LOG: 10HmbC-000000005vi-0000 <= userx@somehost.example.com 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" +>>> ╎ check dnssec require list +>>> ╎ ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> ╎ check dnssec request list +>>> ╎ 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 +531,12 @@ LOG: 10HmbD-000000005vi-0000 <= userx@somehost.example.com 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 +545,38 @@ LOG: 10HmbD-000000005vi-0000 <= userx@somehost.example.com 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 +602,12 @@ LOG: 10HmbE-000000005vi-0000 <= userx@somehost.example.com 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 +616,41 @@ LOG: 10HmbE-000000005vi-0000 <= userx@somehost.example.com 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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@z.z> rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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@z.z> rejected RCPT >>> 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@z.z> rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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@m.n.o> rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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= rejected RCPT >>> 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= rejected RCPT >>> 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@bb.cc +>>> list element: !░x@bb.cc >>> 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..741ef0f07 100644 --- a/test/stderr/0069 +++ b/test/stderr/0069 @@ -7,6 +7,10 @@ >>> 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" +>>> check dnssec require list +>>> ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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..18fe9e93e 100644 --- a/test/stderr/0070 +++ b/test/stderr/0070 @@ -136,6 +136,10 @@ 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" +>>> check dnssec require list +>>> ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 +167,16 @@ 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" +>>> check dnssec require list +>>> ten-3.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 +>>> check dnssec require list +>>> ten-3-alias.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 @@ -175,11 +187,13 @@ MUNGED: ::1 will be omitted in what follows >>> matched alias ten-3-alias.test.ex >>> verifying EHLO/HELO argument "ten-3xtra.test.ex" >>> getting IP address for ten-3xtra.test.ex ->>> ten-3xtra.test.ex in ""? ->>> ten-3xtra.test.ex in ""? no (end of list) ->>> ten-3xtra.test.ex in "*"? ->>> list element: * ->>> ten-3xtra.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> ten-3xtra.test.ex in ""? +>>> ten-3xtra.test.ex in ""? no (end of list) +>>> check dnssec request list +>>> ten-3xtra.test.ex in "*"? +>>> list element: * +>>> ten-3xtra.test.ex in "*"? yes (matched "*") >>> IP address for ten-3xtra.test.ex matches calling address >>> Forward DNS security status: unverified >>> host in hosts_connection_nolog? no (option unset) @@ -201,14 +215,20 @@ 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" +>>> check dnssec require list +>>> ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 ->>> rhubarb in ""? ->>> rhubarb in ""? no (end of list) ->>> rhubarb in "*"? ->>> list element: * ->>> rhubarb in "*"? yes (matched "*") +>>> check dnssec require list +>>> rhubarb in ""? +>>> rhubarb in ""? no (end of list) +>>> check dnssec request list +>>> rhubarb in "*"? +>>> list element: * +>>> rhubarb in "*"? yes (matched "*") LOG: rejected "EHLO rhubarb" from (rhubarb) [V4NET.0.0.1] >>> host in hosts_connection_nolog? no (option unset) >>> host in host_lookup? no (option unset) @@ -235,11 +255,13 @@ MUNGED: ::1 will be omitted in what follows >>> looking up host name for 99.99.99.99 >>> Test harness: host name lookup returns DEFER >>> getting IP address for rhubarb ->>> rhubarb in ""? ->>> rhubarb in ""? no (end of list) ->>> rhubarb in "*"? ->>> list element: * ->>> rhubarb in "*"? yes (matched "*") +>>> check dnssec require list +>>> rhubarb in ""? +>>> rhubarb in ""? no (end of list) +>>> check dnssec request list +>>> rhubarb in "*"? +>>> list element: * +>>> rhubarb in "*"? yes (matched "*") LOG: temporarily rejected "EHLO rhubarb" from (rhubarb) [99.99.99.99] >>> host in hosts_connection_nolog? no (option unset) >>> host in host_lookup? no (option unset) @@ -355,11 +377,13 @@ MUNGED: ::1 will be omitted in what follows >>> looking up host name for 99.99.99.99 >>> Test harness: host name lookup returns DEFER >>> getting IP address for rhubarb ->>> rhubarb in ""? ->>> rhubarb in ""? no (end of list) ->>> rhubarb in "*"? ->>> list element: * ->>> rhubarb in "*"? yes (matched "*") +>>> check dnssec require list +>>> rhubarb in ""? +>>> rhubarb in ""? no (end of list) +>>> check dnssec request list +>>> rhubarb in "*"? +>>> list element: * +>>> rhubarb in "*"? yes (matched "*") >>> require: condition test failed in ACL "rcpt" >>> end of ACL "rcpt": not OK LOG: H=(rhubarb) [99.99.99.99] F= rejected RCPT : helo not verified 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@mxt6.test.ex --------> 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@mxt6.test.ex domain = mxt6.test.ex @@ -29,6 +31,8 @@ routing myhost.test.ex@mxt1.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@mxt1.test.ex domain = mxt1.test.ex @@ -37,6 +41,7 @@ lookuphost router passed for myhost.test.ex@mxt1.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@mxt1.test.ex @@ -65,6 +70,8 @@ routing xx@mxt1.test.ex --------> 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@mxt1.test.ex domain = mxt1.test.ex @@ -73,6 +80,7 @@ lookuphost router passed for xx@mxt1.test.ex --------> 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@mxt1.test.ex @@ -87,6 +95,7 @@ self router passed for xx@mxt1.test.ex --------> 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@mxt1.test.ex @@ -115,6 +124,8 @@ routing xx@not-exist.test.ex --------> 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@not-exist.test.ex 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@y.z --------> 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@smart.domain --------> 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@d.e.f -x in "x : y : abc@d.e.f"? +x in local_parts? list element: x - x in "x : y : abc@d.e.f"? 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@d.e.f -abc@d.e.f in "x : y : abc@d.e.f"? +abc@d.e.f in senders? list element: x address match test: subject=abc@d.e.f pattern=x d.e.f in "x"? @@ -99,7 +99,7 @@ abc@d.e.f in "x : y : abc@d.e.f"? 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@d.e.f in "x : y : abc@d.e.f"? yes (matched "abc@d.e.f") + abc@d.e.f in senders? yes (matched "abc@d.e.f") calling smart1 router smart1 router called for x@smart.domain domain = smart.domain @@ -125,29 +125,29 @@ routing x@test.ex --------> 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@d.e.f -x in "x : y : abc@d.e.f"? +x in local_parts? list element: x - x in "x : y : abc@d.e.f"? 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@d.e.f -abc@d.e.f in "x : y : abc@d.e.f"? +abc@d.e.f in senders? list element: x address match test: subject=abc@d.e.f pattern=x d.e.f in "x"? @@ -194,7 +194,7 @@ abc@d.e.f in "x : y : abc@d.e.f"? 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@d.e.f in "x : y : abc@d.e.f"? yes (matched "abc@d.e.f") + abc@d.e.f in senders? yes (matched "abc@d.e.f") checking require_files search_open: lsearch "TESTSUITE/aux-fixed/0085.data" cached open @@ -232,15 +232,15 @@ routing x@myhost.test.ex --------> 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@y.z --------> 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@smart.domain --------> 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@d.e.f -x in "x : y : abc@d.e.f"? +x in local_parts? list element: x - x in "x : y : abc@d.e.f"? 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@d.e.f -CALLER@myhost.test.ex in "x : y : abc@d.e.f"? +CALLER@myhost.test.ex in senders? list element: x address match test: subject=CALLER@myhost.test.ex pattern=x myhost.test.ex in "x"? @@ -358,20 +358,20 @@ CALLER@myhost.test.ex in "x : y : abc@d.e.f"? myhost.test.ex in "y"? no (end of list) list element: abc@d.e.f address match test: subject=CALLER@myhost.test.ex pattern=abc@d.e.f -CALLER@myhost.test.ex in "x : y : abc@d.e.f"? no (end of list) +CALLER@myhost.test.ex 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@test.ex --------> 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@d.e.f -x in "x : y : abc@d.e.f"? +x in local_parts? list element: x - x in "x : y : abc@d.e.f"? 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@d.e.f -CALLER@myhost.test.ex in "x : y : abc@d.e.f"? +CALLER@myhost.test.ex in senders? list element: x address match test: subject=CALLER@myhost.test.ex pattern=x myhost.test.ex in "x"? @@ -454,7 +454,7 @@ CALLER@myhost.test.ex in "x : y : abc@d.e.f"? myhost.test.ex in "y"? no (end of list) list element: abc@d.e.f address match test: subject=CALLER@myhost.test.ex pattern=abc@d.e.f -CALLER@myhost.test.ex in "x : y : abc@d.e.f"? no (end of list) +CALLER@myhost.test.ex in senders? no (end of list) smart2 router skipped: senders mismatch no more routers >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -466,15 +466,15 @@ routing x@myhost.test.ex --------> 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@test.ex ->>> 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@test.ex H=(test) [V4NET.10.10.10] P=smtp S >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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@test.ex 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@test.ex H=(test) [V4NET.10.10.10] P=smtp S >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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@test.ex 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@test.ex H=(test) [V4NET.10.10.10] P=smtp S >>> verifying From: header address badbad@test.ex >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing badbad@test.ex ->>> 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= rejecte >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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= 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= rejecte >>> verifying From: header address badbad@test.ex >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing badbad@test.ex ->>> 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@test.ex >>> previously checked as envelope sender @@ -254,12 +266,12 @@ LOG: 10HmaZ-000000005vi-0000 <= userx@test.ex H=(test) [V4NET.10.10.10] P=smtp S >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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@test.ex 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@test.ex H=(test) [V4NET.10.10.10] P=smtp S >>> verifying From: header address defer@test.ex >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing defer@test.ex ->>> 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@test.ex >>> message: this is a forced defer diff --git a/test/stderr/0089 b/test/stderr/0089 index 369e13cef..107944c7f 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,10 @@ LOG: H=(abc_xyz) [V4NET.0.0.0] F= rejected RCPT >> 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" +>>> check dnssec require list +>>> ten-99.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 +110,25 @@ LOG: H=(abc_xyz) [V4NET.0.0.0] F= rejected RCPT >> 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 +143,24 @@ LOG: H=(abc_xyz) [V4NET.0.0.0] F= rejected RCPT >> 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 >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing junk@jink.jonk.test.ex ->>> 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= 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@jink.jonk.test.ex ->>> 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= rejected RCPT >> 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@test.ex ->>> 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= rejected RCPT >> 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= rejected RCPT >> verifying From: header address >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing junk@jink.jonk.test.ex ->>> 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= 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@test.ex ->>> 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= 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= rejected a >>> verifying From: header address >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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 ->>> 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@test.ex >>> no more routers diff --git a/test/stderr/0094 b/test/stderr/0094 index f809c7caa..0efe2f9ca 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,10 @@ LOG: H=(test) [V4NET.11.12.13] F= rejected RCPT >> 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" +>>> check dnssec require list +>>> ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 +78,22 @@ LOG: H=(test) [V4NET.11.12.13] F= rejected RCPT >> 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) @@ -109,19 +121,29 @@ host in host_lookup? list element: 0.0.0.0/0 host in host_lookup? yes (matched "0.0.0.0/0") looking up host name for V4NET.99.99.90 -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 + 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" -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 + check dnssec require list + oneback.test.ex not in empty list (option unset? cannot trace name) + check dnssec request list + oneback.test.ex not in empty list (option unset? cannot trace name) + faking res_search(AAAA) response length as 65535 + 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 -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 + check dnssec require list + host1.masq.test.ex not in empty list (option unset? cannot trace name) + check dnssec request list + host1.masq.test.ex not in empty list (option unset? cannot trace name) + faking res_search(AAAA) response length as 65535 + 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 checking addresses for host1.masq.test.ex Forward DNS security status: unverified V4NET.90.90.90 diff --git a/test/stderr/0121 b/test/stderr/0121 index 40ba5f191..8c6814062 100644 --- a/test/stderr/0121 +++ b/test/stderr/0121 @@ -15,18 +15,21 @@ >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing unknown@test.ex ->>> 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= rejected RCPT : Sen >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@unknown.dom.ain ->>> 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= rejected RCPT >> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing "unknown with spaces"@test.ex ->>> 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"@test.ex> rejected RCPT >> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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"@test.ex> rejected RCPT >> 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"@test.ex> rejected RCPT >> verifying From: header address unknown@test.ex >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing unknown@test.ex ->>> 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= rejected aft >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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= 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= rejected aft >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing defer@test.ex ->>> 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@test.ex >>> message: forced defer @@ -197,18 +223,21 @@ LOG: H=(test) [127.0.0.1] F= temporarily rejected RCPT >> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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= temporarily rejected RCPT >> 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= temporarily rejected RCPT >> verifying from: header address >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing defer@test.ex ->>> 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@test.ex >>> message: forced defer @@ -303,15 +338,3 @@ LOG: 10HmaZ-000000005vi-0000 H=(test) [127.0.0.1] F= temporarily >>> host in pipelining_advertise_hosts? yes (matched "*") >>> host in chunking_advertise_hosts? >>> host in chunking_advertise_hosts? no (end of list) ->>> foo.bar in helo_lookup_domains? ->>> list element: @ ->>> list element: @[] ->>> foo.bar in helo_lookup_domains? no (end of list) ->>> list element: * ->>> host in limits_advertise_hosts? yes (matched "*") ->>> host in dsn_advertise_hosts? no (option unset) ->>> host in pipelining_advertise_hosts? ->>> list element: * ->>> host in pipelining_advertise_hosts? yes (matched "*") ->>> host in chunking_advertise_hosts? ->>> host in chunking_advertise_hosts? no (end of list) 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= rejected RCPT >> 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 ->>> 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@exim.test.ex H=(exim.test.ex) [V4NET. >>> routing userx@exim.test.ex >>> calling system_aliases router >>> system_aliases router declined for userx@exim.test.ex ->>> 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@exim.test.ex H=(exim.test.ex) [V4NET. >>> routing userx@exim.test.ex >>> calling system_aliases router >>> system_aliases router declined for userx@exim.test.ex ->>> 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@exim.test.ex 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@exim.test.ex >>> calling system_aliases router >>> system_aliases router declined for userx@exim.test.ex ->>> 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@exim.test.ex >>> calling system_aliases router >>> system_aliases router declined for userx@exim.test.ex ->>> 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= rejected RCPT >> 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 >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>> --------> userx@domain.com <-------- @@ -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@domain.com) -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..423a148f3 100644 --- a/test/stderr/0145 +++ b/test/stderr/0145 @@ -16,9 +16,12 @@ >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing x@mxt10.test.ex >>> calling domainlist router ->>> mxt10.test.ex in "*"? ->>> list element: * ->>> mxt10.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> mxt10.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> mxt10.test.ex in dnssec_request_domains? +>>> list element: * +>>> mxt10.test.ex in dnssec_request_domains? yes (matched "*") >>> domainlist router declined for x@mxt10.test.ex >>> "more" is false: skipping remaining routers >>> no more routers @@ -45,9 +48,12 @@ LOG: H=(test) [V4NET.9.8.7] F= rejected RCPT : Sender veri >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing x@ten-1.test.ex >>> calling domainlist router ->>> ten-1.test.ex in "*"? ->>> list element: * ->>> ten-1.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> ten-1.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> ten-1.test.ex in dnssec_request_domains? +>>> list element: * +>>> 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 +62,12 @@ LOG: H=(test) [V4NET.9.8.7] F= rejected RCPT : Sender veri >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing x@mxt10.test.ex >>> calling domainlist router ->>> mxt10.test.ex in "*"? ->>> list element: * ->>> mxt10.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> mxt10.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> mxt10.test.ex in dnssec_request_domains? +>>> list element: * +>>> mxt10.test.ex in dnssec_request_domains? yes (matched "*") >>> domainlist router declined for x@mxt10.test.ex >>> "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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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= rejected RCPT : 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@mxt6.test.ex --------> 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@mxt6.test.ex domain = mxt6.test.ex @@ -34,11 +38,15 @@ routing myhost.test.ex@mxt1.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@mxt1.test.ex domain = mxt1.test.ex @@ -47,11 +55,14 @@ lookuphost router passed for myhost.test.ex@mxt1.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@mxt1.test.ex @@ -80,11 +91,15 @@ routing xx@mxt1.test.ex --------> 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@mxt1.test.ex domain = mxt1.test.ex @@ -93,11 +108,14 @@ lookuphost router passed for xx@mxt1.test.ex --------> 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@mxt1.test.ex @@ -112,6 +130,7 @@ self router passed for xx@mxt1.test.ex --------> 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@mxt1.test.ex @@ -140,11 +159,15 @@ routing xx@not-exist.test.ex --------> 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@not-exist.test.ex domain = not-exist.test.ex @@ -161,6 +184,8 @@ routing ff@mxt1.test.ex --------> 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@mxt1.test.ex @@ -177,11 +202,15 @@ routing fff@mxt1.test.ex --------> 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@mxt1.test.ex domain = mxt1.test.ex @@ -190,6 +219,7 @@ lookuphost router passed for fff@mxt1.test.ex --------> 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/0169 b/test/stderr/0169 index 55fd2bcb0..9295d32fd 100644 --- a/test/stderr/0169 +++ b/test/stderr/0169 @@ -17,7 +17,7 @@ appendfile: mode=600 notify_comsat=0 quota=52428800 warning=41% message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' lock name: TESTSUITE/test-mail/userx.lock hitch name: TESTSUITE/test-mail/userx.lock.test.ex.dddddddd.pppppppp lock file created diff --git a/test/stderr/0175 b/test/stderr/0175 index b45971a07..81da79fe8 100644 --- a/test/stderr/0175 +++ b/test/stderr/0175 @@ -15,12 +15,14 @@ >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing user@bad.domain ->>> 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= rejected RCPT : S >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing user@bad.domain2 ->>> 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 ->>> 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,43 @@ LOG: H=(test) [V4NET.0.0.0] F= rejected RCPT : >>> check verify = sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing user@ten-1.test.ex ->>> 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 ->>> 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 ->>> 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 "*"? ->>> list element: * ->>> ten-1.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> ten-1.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> ten-1.test.ex in dnssec_request_domains? +>>> list element: * +>>> 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 +149,12 @@ LOG: H=(test) [V4NET.0.0.0] F= rejected RCPT : >>> 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..827fde15b 100644 --- a/test/stderr/0183 +++ b/test/stderr/0183 @@ -16,37 +16,41 @@ routing userx@test.again.dns --------> 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@test.again.dns domain = test.again.dns -test.again.dns in "*"? - list element: * - test.again.dns in "*"? yes (matched "*") +check dnssec require list + test.again.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.again.dns in dnssec_request_domains? + list element: * + 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@test.again.dns message: host lookup did not complete >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -58,32 +62,36 @@ routing abcd@test.again.dns --------> 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@test.again.dns domain = test.again.dns -test.again.dns in "*"? - list element: * - test.again.dns in "*"? yes (matched "*") +check dnssec require list + test.again.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.again.dns in dnssec_request_domains? + list element: * + 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@test.again.dns message: host lookup did not complete >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -95,31 +103,34 @@ routing abcd@ten-1.test.ex --------> 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@ten-1.test.ex domain = ten-1.test.ex -ten-1.test.ex in "*"? - list element: * - ten-1.test.ex in "*"? yes (matched "*") +check dnssec require list + ten-1.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1.test.ex in dnssec_request_domains? + list element: * + 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 +160,17 @@ routing usery@test.again.dns --------> 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@test.again.dns domain = test.again.dns @@ -172,9 +183,12 @@ 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 "*"? - list element: * - test.again.dns in "*"? yes (matched "*") +check dnssec require list + test.again.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.again.dns in dnssec_request_domains? + list element: * + 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 +206,18 @@ routing userz@test.again.dns --------> 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@test.again.dns domain = test.again.dns @@ -215,9 +229,12 @@ 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 "*"? - list element: * - test.again.dns in "*"? yes (matched "*") +check dnssec require list + test.again.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.again.dns in dnssec_request_domains? + list element: * + 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@test.again.dns @@ -231,31 +248,34 @@ routing xyz@ten-1.test.ex --------> 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@ten-1.test.ex domain = ten-1.test.ex -ten-1.test.ex in "*"? - list element: * - ten-1.test.ex in "*"? yes (matched "*") +check dnssec require list + ten-1.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1.test.ex in dnssec_request_domains? + list element: * + 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 +310,40 @@ routing userx@test.fail.dns --------> 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@test.fail.dns domain = test.fail.dns -test.fail.dns in "*"? - list element: * - test.fail.dns in "*"? yes (matched "*") +check dnssec require list + test.fail.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.fail.dns in dnssec_request_domains? + list element: * + 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@test.fail.dns message: host lookup did not complete >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -331,32 +355,36 @@ routing abcd@test.fail.dns --------> 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@test.fail.dns domain = test.fail.dns -test.fail.dns in "*"? - list element: * - test.fail.dns in "*"? yes (matched "*") +check dnssec require list + test.fail.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.fail.dns in dnssec_request_domains? + list element: * + 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@test.fail.dns message: host lookup did not complete >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -368,31 +396,34 @@ routing abcd@ten-1.test.ex --------> 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@ten-1.test.ex domain = ten-1.test.ex -ten-1.test.ex in "*"? - list element: * - ten-1.test.ex in "*"? yes (matched "*") +check dnssec require list + ten-1.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1.test.ex in dnssec_request_domains? + list element: * + 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 +453,17 @@ routing usery@test.fail.dns --------> 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@test.fail.dns domain = test.fail.dns @@ -445,9 +476,12 @@ 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 "*"? - list element: * - test.fail.dns in "*"? yes (matched "*") +check dnssec require list + test.fail.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.fail.dns in dnssec_request_domains? + list element: * + 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 +498,18 @@ routing userz@test.fail.dns --------> 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@test.fail.dns domain = test.fail.dns @@ -487,9 +521,12 @@ 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 "*"? - list element: * - test.fail.dns in "*"? yes (matched "*") +check dnssec require list + test.fail.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.fail.dns in dnssec_request_domains? + list element: * + 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@test.fail.dns @@ -503,31 +540,34 @@ routing xyz@ten-1.test.ex --------> 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@ten-1.test.ex domain = ten-1.test.ex -ten-1.test.ex in "*"? - list element: * - ten-1.test.ex in "*"? yes (matched "*") +check dnssec require list + ten-1.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1.test.ex in dnssec_request_domains? + list element: * + 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 +602,35 @@ routing userx@nonexist.test.ex --------> 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@nonexist.test.ex domain = nonexist.test.ex -nonexist.test.ex in "*"? - list element: * - nonexist.test.ex in "*"? yes (matched "*") +check dnssec require list + nonexist.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + nonexist.test.ex in dnssec_request_domains? + list element: * + 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 +648,34 @@ routing abcd@nonexist.test.ex --------> 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@nonexist.test.ex domain = nonexist.test.ex -nonexist.test.ex in "*"? - list element: * - nonexist.test.ex in "*"? yes (matched "*") +check dnssec require list + nonexist.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + nonexist.test.ex in dnssec_request_domains? + list element: * + 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@nonexist.test.ex "more" is false: skipping remaining routers @@ -643,31 +689,34 @@ routing abcd@ten-1.test.ex --------> 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@ten-1.test.ex domain = ten-1.test.ex -ten-1.test.ex in "*"? - list element: * - ten-1.test.ex in "*"? yes (matched "*") +check dnssec require list + ten-1.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1.test.ex in dnssec_request_domains? + list element: * + 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 +746,17 @@ routing usery@nonexist.test.ex --------> 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@nonexist.test.ex domain = nonexist.test.ex @@ -720,9 +769,12 @@ 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 "*"? - list element: * - nonexist.test.ex in "*"? yes (matched "*") +check dnssec require list + nonexist.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + nonexist.test.ex in dnssec_request_domains? + list element: * + 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 +792,18 @@ routing userz@nonexist.test.ex --------> 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@nonexist.test.ex domain = nonexist.test.ex @@ -763,9 +815,12 @@ 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 "*"? - list element: * - nonexist.test.ex in "*"? yes (matched "*") +check dnssec require list + nonexist.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + nonexist.test.ex in dnssec_request_domains? + list element: * + 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@nonexist.test.ex @@ -779,31 +834,34 @@ routing xyz@ten-1.test.ex --------> 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@ten-1.test.ex domain = ten-1.test.ex -ten-1.test.ex in "*"? - list element: * - ten-1.test.ex in "*"? yes (matched "*") +check dnssec require list + ten-1.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1.test.ex in dnssec_request_domains? + list element: * + 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 +896,28 @@ routing srv@test.again.dns --------> 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@test.again.dns domain = test.again.dns -test.again.dns in "*"? - list element: * - test.again.dns in "*"? yes (matched "*") +check dnssec require list + test.again.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.again.dns in dnssec_request_domains? + list element: * + 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@test.again.dns message: host lookup did not complete >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -868,31 +929,34 @@ routing srv@test.fail.dns --------> 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@test.fail.dns domain = test.fail.dns -test.fail.dns in "*"? - list element: * - test.fail.dns in "*"? yes (matched "*") +check dnssec require list + test.fail.dns in dnssec_require_domains? no (option unset) +check dnssec request list + test.fail.dns in dnssec_request_domains? + list element: * + 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 +985,35 @@ routing userx@nonexist.example.com --------> 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@nonexist.example.com domain = nonexist.example.com -nonexist.example.com in "*"? - list element: * - nonexist.example.com in "*"? yes (matched "*") +check dnssec require list + nonexist.example.com in dnssec_require_domains? no (option unset) +check dnssec request list + nonexist.example.com in dnssec_request_domains? + list element: * + 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 +1031,25 @@ routing userd@nonexist.example.com --------> 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 +1064,12 @@ checking "condition" "${acl {delay}}"... calling delay router delay router called for userd@nonexist.example.com domain = nonexist.example.com -nonexist.example.com in "*"? - list element: * - nonexist.example.com in "*"? yes (matched "*") +check dnssec require list + nonexist.example.com in dnssec_require_domains? no (option unset) +check dnssec request list + nonexist.example.com in dnssec_request_domains? + list element: * + 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex in senders? no (end of list) R: client (ACL) T: send_to_server (ACL) SMTP|> MAIL FROM: @@ -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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex in senders? no (end of list) R: client (ACL) T: send_to_server (ACL) SMTP|> MAIL FROM: 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= temporarily rejected RCPT : 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 : 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..211211964 100644 --- a/test/stderr/0234 +++ b/test/stderr/0234 @@ -15,9 +15,13 @@ >>> 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 +>>> ╎check dnssec require list +>>> ╎check dnssec request list +>>> 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 +34,15 @@ LOG: H=(test) [V4NET.0.0.0] F= rejected RCPT : 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 +>>> ╎check dnssec require list +>>> ╎check dnssec request list >>> 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 +51,17 @@ LOG: H=(test) [V4NET.0.0.0] F= rejected RCPT : 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 +>>> ╎check dnssec require list +>>> ╎check dnssec request list >>> 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 ->>> 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 ->>> 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@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from sender: rewritten as "User@d.domain" by rule 2 +c.domain in "a.domain"? no (end of list) +User@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from from: rewritten as "User@d.domain" by rule 2 +c.domain in "a.domain"? no (end of list) +User@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from to: rewritten as "User@d.domain" by rule 2 +c.domain in "a.domain"? no (end of list) +User@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from cc: rewritten as "User@d.domain" by rule 2 +c.domain in "a.domain"? no (end of list) +User@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from bcc: rewritten as "User@d.domain" by rule 2 +c.domain in "a.domain"? no (end of list) +User@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from reply-to: rewritten as "User@d.domain" by rule 2 +c.domain in "a.domain"? no (end of list) +User@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from env-from rewritten as "User@d.domain" by rule 2 +c.domain in "a.domain"? no (end of list) +User@c.domain in "*@a.domain"? no (end of list) LOG: address_rewrite MAIN "User@c.domain" from env-to rewritten as "User@d.domain" by rule 2 +User@d.domain 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 ->>> 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 ->>> 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 ->>> 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@test.ex"? 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@test.ex --------> 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@test.ex 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@test.ex --------> 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@test.ex 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@test.ex --------> 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@test.ex 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@test.ex 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/0277 b/test/stderr/0277 index 12c462e56..3cbd9d3db 100644 --- a/test/stderr/0277 +++ b/test/stderr/0277 @@ -21,12 +21,12 @@ host in host_lookup? end sublist lookup_hosts host in host_lookup? yes (matched "+lookup_hosts") looking up host name for V4NET.2.3.4 -DNS lookup of 4.3.2.V4NET.in-addr.arpa (PTR) using fakens -DNS lookup of 4.3.2.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND -returning DNS_NOMATCH -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for 4.3.2.V4NET.in-addr.arpa-PTR-xxxx, ttl -1 + DNS lookup of 4.3.2.V4NET.in-addr.arpa (PTR) using fakens + DNS lookup of 4.3.2.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND + returning DNS_NOMATCH + DNS: couldn't fake dnsa len + DNS: no SOA record found for neg-TTL + writing neg-cache entry for 4.3.2.V4NET.in-addr.arpa-PTR-4100041, ttl -1 LOG: host_lookup_failed MAIN no host name found for IP address V4NET.2.3.4 sender_fullhost = [V4NET.2.3.4] @@ -138,12 +138,12 @@ host in host_lookup? end sublist never_hosts host in host_lookup? yes (end of list) looking up host name for V4NET.10.11.12 -DNS lookup of 12.11.10.V4NET.in-addr.arpa (PTR) using fakens -DNS lookup of 12.11.10.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND -returning DNS_NOMATCH -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for 12.11.10.V4NET.in-addr.arpa-PTR-xxxx, ttl -1 + DNS lookup of 12.11.10.V4NET.in-addr.arpa (PTR) using fakens + DNS lookup of 12.11.10.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND + returning DNS_NOMATCH + DNS: couldn't fake dnsa len + DNS: no SOA record found for neg-TTL + writing neg-cache entry for 12.11.10.V4NET.in-addr.arpa-PTR-4100041, ttl -1 LOG: host_lookup_failed MAIN no host name found for IP address V4NET.10.11.12 sender_fullhost = [V4NET.10.11.12] @@ -208,12 +208,12 @@ host in host_lookup? end sublist never_hosts host in host_lookup? yes (end of list) looking up host name for V4NET.1.1.1 -DNS lookup of 1.1.1.V4NET.in-addr.arpa (PTR) using fakens -DNS lookup of 1.1.1.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND -returning DNS_NOMATCH -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for 1.1.1.V4NET.in-addr.arpa-PTR-xxxx, ttl -1 + DNS lookup of 1.1.1.V4NET.in-addr.arpa (PTR) using fakens + DNS lookup of 1.1.1.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND + returning DNS_NOMATCH + DNS: couldn't fake dnsa len + DNS: no SOA record found for neg-TTL + writing neg-cache entry for 1.1.1.V4NET.in-addr.arpa-PTR-4100041, ttl -1 LOG: host_lookup_failed MAIN no host name found for IP address V4NET.1.1.1 sender_fullhost = [V4NET.1.1.1] @@ -278,12 +278,12 @@ host in host_lookup? end sublist never_hosts host in host_lookup? yes (end of list) looking up host name for V4NET.2.2.2 -DNS lookup of 2.2.2.V4NET.in-addr.arpa (PTR) using fakens -DNS lookup of 2.2.2.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND -returning DNS_NOMATCH -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for 2.2.2.V4NET.in-addr.arpa-PTR-xxxx, ttl -1 + DNS lookup of 2.2.2.V4NET.in-addr.arpa (PTR) using fakens + DNS lookup of 2.2.2.V4NET.in-addr.arpa (PTR) gave HOST_NOT_FOUND + returning DNS_NOMATCH + DNS: couldn't fake dnsa len + DNS: no SOA record found for neg-TTL + writing neg-cache entry for 2.2.2.V4NET.in-addr.arpa-PTR-4100041, ttl -1 LOG: host_lookup_failed MAIN no host name found for IP address V4NET.2.2.2 sender_fullhost = [V4NET.2.2.2] diff --git a/test/stderr/0278 b/test/stderr/0278 index 6f80654b3..30538f4f4 100644 --- a/test/stderr/0278 +++ b/test/stderr/0278 @@ -18,7 +18,7 @@ routing CALLER@test.ex --------> 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@test.ex --------> 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@test.ex --------> 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@test.ex domain = test.ex @@ -359,7 +359,7 @@ r1 router declined for unknown@test.ex --------> 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,16 @@ 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@test.ex domain = test.ex -test.ex in "*"? - list element: * - test.ex in "*"? yes (matched "*") +check dnssec require list + test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + test.ex in dnssec_request_domains? + list element: * + 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 +403,17 @@ r2 router declined for unknown@test.ex --------> 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 +430,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 +450,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@test.ex --------> rr1 router <-------- local_part=CALLER domain=test.ex checking senders -CALLER@test.ex in "user1@+funny_domains"? +CALLER@test.ex in senders? list element: user1@+funny_domains address match test: subject=CALLER@test.ex pattern=user1@+funny_domains -CALLER@test.ex in "user1@+funny_domains"? no (end of list) +CALLER@test.ex in senders? no (end of list) rr1 router skipped: senders mismatch --------> r1 router <-------- local_part=CALLER domain=test.ex checking senders -CALLER@test.ex in "+never_addresses : +n1_addresses : ! +local_addresses"? +CALLER@test.ex in senders? list element: +never_addresses start sublist never_addresses CALLER@test.ex in "never@test.ex"? @@ -44,7 +44,7 @@ CALLER@test.ex in "+never_addresses : +n1_addresses : ! +local_addresses"? ╎address match test: subject=CALLER@test.ex pattern=never1@test.ex CALLER@test.ex in "never1@test.ex"? no (end of list) end sublist n1_addresses - list element: ! +local_addresses + list element: !░+local_addresses start sublist local_addresses CALLER@test.ex in "CALLER@test.ex"? ╎list element: CALLER@test.ex @@ -55,12 +55,12 @@ CALLER@test.ex in "+never_addresses : +n1_addresses : ! +local_addresses"? ╎CALLER@test.ex in "CALLER@test.ex"? yes (matched "CALLER@test.ex") end sublist local_addresses data from lookup saved for cache for +local_addresses: key 'CALLER@test.ex' value 'CALLER@test.ex' - CALLER@test.ex in "+never_addresses : +n1_addresses : ! +local_addresses"? no (matched "! +local_addresses") + CALLER@test.ex in senders? no (matched "! +local_addresses") r1 router skipped: senders mismatch --------> r2 router <-------- local_part=CALLER domain=test.ex checking senders -CALLER@test.ex in "+never_addresses : +n2_addresses : !+local_addresses"? +CALLER@test.ex in senders? list element: +never_addresses start sublist never_addresses cached no match for +never_addresses @@ -80,7 +80,7 @@ CALLER@test.ex in "+never_addresses : +n2_addresses : !+local_addresses"? start sublist local_addresses cached yes match for +local_addresses cached lookup data = CALLER@test.ex - CALLER@test.ex in "+never_addresses : +n2_addresses : !+local_addresses"? no (matched "!+local_addresses" - cached) + CALLER@test.ex 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@test.ex in "+local_addresses"? +CALLER@test.ex in senders? list element: +local_addresses start sublist local_addresses cached yes match for +local_addresses cached lookup data = CALLER@test.ex - CALLER@test.ex in "+local_addresses"? yes (matched "+local_addresses" - cached) + CALLER@test.ex in senders? yes (matched "+local_addresses" - cached) calling r3 router r3 router called for CALLER@test.ex domain = test.ex @@ -130,7 +130,7 @@ routing CALLER@test.ex --------> 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/0281 b/test/stderr/0281 index 0d9e1a3be..ade958445 100644 --- a/test/stderr/0281 +++ b/test/stderr/0281 @@ -50,6 +50,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <1@else.where>: domain doesn't >>> check domains = @mx_any >>> mxt13.test.ex in "@mx_any"? >>> list element: @mx_any +>>> check dnssec require list +>>> check dnssec request list >>> other1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> other1.test.ex in hosts_treat_as_local? yes (matched "other1.test.ex") @@ -65,6 +67,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <1@else.where>: domain doesn't >>> check domains = @mx_any >>> mxt1.test.ex in "@mx_any"? >>> list element: @mx_any +>>> check dnssec require list +>>> check dnssec request list >>> eximtesthost.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> eximtesthost.test.ex in hosts_treat_as_local? no (end of list) @@ -80,6 +84,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <1@else.where>: domain doesn't >>> check domains = @mx_any >>> mxt6.test.ex in "@mx_any"? >>> list element: @mx_any +>>> check dnssec require list +>>> check dnssec request list >>> ten-1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> ten-1.test.ex in hosts_treat_as_local? no (end of list) @@ -100,6 +106,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <1@else.where>: domain doesn't >>> check domains = @mx_any >>> mxt9.test.ex in "@mx_any"? >>> list element: @mx_any +>>> check dnssec require list +>>> check dnssec request list >>> ten-1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> ten-1.test.ex in hosts_treat_as_local? no (end of list) @@ -119,6 +127,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <2@mxt9.test.ex>: domain doesn >>> check domains = @mx_any >>> mxnone.test.ex in "@mx_any"? >>> list element: @mx_any +>>> check dnssec require list +>>> check dnssec request list >>> mxnone.test.ex in "@mx_any"? no (end of list) >>> require: condition test failed in ACL "acl_rcpt_2" >>> end of ACL "acl_rcpt_2": not OK @@ -129,6 +139,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <2@mxnone.test.ex>: domain doe >>> check domains = @mx_primary >>> mxt5.test.ex in "@mx_primary"? >>> list element: @mx_primary +>>> check dnssec require list +>>> check dnssec request list >>> ten-1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> ten-1.test.ex in hosts_treat_as_local? no (end of list) @@ -147,6 +159,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <2@mxnone.test.ex>: domain doe >>> check domains = @mx_primary >>> mxt6.test.ex in "@mx_primary"? >>> list element: @mx_primary +>>> check dnssec require list +>>> check dnssec request list >>> ten-1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> ten-1.test.ex in hosts_treat_as_local? no (end of list) @@ -169,6 +183,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <3@mxt6.test.ex>: domain doesn >>> check domains = @mx_primary >>> mxt9.test.ex in "@mx_primary"? >>> list element: @mx_primary +>>> check dnssec require list +>>> check dnssec request list >>> ten-1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> ten-1.test.ex in hosts_treat_as_local? no (end of list) @@ -188,6 +204,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <3@mxt9.test.ex>: domain doesn >>> check domains = @mx_primary >>> mxnone.test.ex in "@mx_primary"? >>> list element: @mx_primary +>>> check dnssec require list +>>> check dnssec request list >>> mxnone.test.ex in "@mx_primary"? no (end of list) >>> require: condition test failed in ACL "acl_rcpt_3" >>> end of ACL "acl_rcpt_3": not OK @@ -198,6 +216,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <3@mxnone.test.ex>: domain doe >>> check domains = @mx_secondary >>> mxt5.test.ex in "@mx_secondary"? >>> list element: @mx_secondary +>>> check dnssec require list +>>> check dnssec request list >>> eximtesthost.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> eximtesthost.test.ex in hosts_treat_as_local? no (end of list) @@ -212,6 +232,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <4@mxt5.test.ex>: domain doesn >>> check domains = @mx_secondary >>> mxt6.test.ex in "@mx_secondary"? >>> list element: @mx_secondary +>>> check dnssec require list +>>> check dnssec request list >>> ten-1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> ten-1.test.ex in hosts_treat_as_local? no (end of list) @@ -235,6 +257,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <4@mxt5.test.ex>: domain doesn >>> check domains = @mx_secondary >>> mxt9.test.ex in "@mx_secondary"? >>> list element: @mx_secondary +>>> check dnssec require list +>>> check dnssec request list >>> ten-1.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> ten-1.test.ex in hosts_treat_as_local? no (end of list) @@ -254,6 +278,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <4@mxt9.test.ex>: domain doesn >>> check domains = @mx_secondary >>> mxnone.test.ex in "@mx_secondary"? >>> list element: @mx_secondary +>>> check dnssec require list +>>> check dnssec request list >>> mxnone.test.ex in "@mx_secondary"? no (end of list) >>> require: condition test failed in ACL "acl_rcpt_4" >>> end of ACL "acl_rcpt_4": not OK @@ -343,6 +369,8 @@ MUNGED: ::1 will be omitted in what follows >>> check domains = @mx_any >>> mxt3.test.ex in "@mx_any"? >>> list element: @mx_any +>>> check dnssec require list +>>> check dnssec request list >>> not-exist.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> not-exist.test.ex in hosts_treat_as_local? no (end of list) @@ -362,6 +390,8 @@ MUNGED: ::1 will be omitted in what follows >>> check domains = @mx_primary >>> mxt3.test.ex in "@mx_primary"? >>> list element: @mx_primary +>>> check dnssec require list +>>> check dnssec request list >>> not-exist.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> not-exist.test.ex in hosts_treat_as_local? no (end of list) @@ -380,6 +410,8 @@ LOG: H=(test) [V4NET.1.1.1] F= rejected RCPT <3@mxt3.test.ex>: domain doesn >>> check domains = @mx_secondary >>> mxt3.test.ex in "@mx_secondary"? >>> list element: @mx_secondary +>>> check dnssec require list +>>> check dnssec request list >>> not-exist.test.ex in hosts_treat_as_local? >>> list element: other1.test.ex >>> not-exist.test.ex in hosts_treat_as_local? no (end of list) 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 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 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 in "reject"? no (end of list) SMTP>> 250 Accepted SMTP<< rcpt to: rate limit RCPT: delay 0.25 sec +one in "reject"? no (end of list) SMTP>> 250 Accepted SMTP<< rcpt to: rate limit RCPT: delay 0.263 sec +one in "reject"? no (end of list) SMTP>> 250 Accepted SMTP<< rcpt to: rate limit RCPT: delay 0.276 sec +one in "reject"? no (end of list) SMTP>> 250 Accepted SMTP<< rcpt to: 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 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..8e735c327 100644 --- a/test/stderr/0303 +++ b/test/stderr/0303 @@ -11,6 +11,10 @@ >>> 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" +>>> check dnssec require list +>>> ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 +31,10 @@ >>> [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" +>>> check dnssec require list +>>> ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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 ->>> 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 ->>> 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 ->>> 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@test.ex in "lsearch;TESTSUITE/aux-fixed/0306/list1"? +>>> lists.test.ex in domains? yes (matched "lists.test.ex") +>>> sub1@test.ex in senders? >>> list element: lsearch;TESTSUITE/aux-fixed/0306/list1 ->>> sub1@test.ex in "lsearch;TESTSUITE/aux-fixed/0306/list1"? yes (matched "lsearch;TESTSUITE/aux-fixed/0306/list1") +>>> sub1@test.ex 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 ->>> 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= rejected RCPT : >>> check verify = recipient >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing nonlist@lists.test.ex ->>> 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 ->>> 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..c030e8232 100644 --- a/test/stderr/0308 +++ b/test/stderr/0308 @@ -47,6 +47,10 @@ 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" +>>> check dnssec require list +>>> ten-1.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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@ten-2.test.ex --------> 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@ten-2.test.ex --------> 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@no.delay 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@no.delay 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..195ba35e9 100644 --- a/test/stderr/0342 +++ b/test/stderr/0342 @@ -17,16 +17,22 @@ >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing x@ten-1 >>> calling dnslookup router ->>> ten-1 in "*"? ->>> list element: * ->>> ten-1 in "*"? yes (matched "*") +>>> check dnssec require list +>>> ten-1 in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> ten-1 in dnssec_request_domains? +>>> list element: * +>>> ten-1 in dnssec_request_domains? yes (matched "*") >>> re-routed to x@ten-1.test.ex >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing x@ten-1.test.ex >>> calling dnslookup router ->>> ten-1.test.ex in "*"? ->>> list element: * ->>> ten-1.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> ten-1.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> ten-1.test.ex in dnssec_request_domains? +>>> list element: * +>>> 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@test.ex:: errno=-44 more_errno=dd,A flags=0 + added retry item for R:userx@test.ex:: errno=-44 more_errno=51,A flags=0 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250' reading retry information for R:userx@test.ex: 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@test.ex:: errno=-44 more_errno=dd,A flags=0 + added retry item for R:userx@test.ex:: errno=-44 more_errno=51,A flags=0 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250' reading retry information for R:userx@test.ex: 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@test.ex:: errno=-44 more_errno=dd,A flags=0 + added retry item for R:userx@test.ex:: errno=-44 more_errno=51,A flags=0 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250' reading retry information for R:userx@test.ex: 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@test.ex:: errno=-44 more_errno=dd,A flags=0 + added retry item for R:userx@test.ex:: errno=-44 more_errno=51,A flags=0 added retry item for R:usery@test.ex:: 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@test.ex: 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@test.ex:: errno=-44 more_errno=dd,A flags=0 + added retry item for R:userx@test.ex:: errno=-44 more_errno=51,A flags=0 added retry item for R:usery@test.ex:: 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@test.ex: 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@recurse.test.ex 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@recurse.test.ex.test.ex domain = recurse.test.ex.test.ex diff --git a/test/stderr/0361 b/test/stderr/0361 index 7a4f90d9a..1a8f7c19e 100644 --- a/test/stderr/0361 +++ b/test/stderr/0361 @@ -93,25 +93,31 @@ routing kilos@recurse.test.ex --------> 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@recurse.test.ex domain = recurse.test.ex -recurse.test.ex in "*"? - list element: * - recurse.test.ex in "*"? yes (matched "*") +check dnssec require list + recurse.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + recurse.test.ex in dnssec_request_domains? + list element: * + 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 "*"? - list element: * - recurse.test.ex.test.ex in "*"? yes (matched "*") +check dnssec require list + recurse.test.ex.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + recurse.test.ex.test.ex in dnssec_request_domains? + list element: * + 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 +150,24 @@ routing kilos@recurse.test.ex.test.ex --------> 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@recurse.test.ex.test.ex' (tainted) @@ -191,17 +197,17 @@ routing kilos@recurse.test.ex.test.ex --------> 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@recurse.test.ex.test.ex 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@x.test.ex --------> 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@x.test.ex 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@otherhost.test.ex --------> 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@otherhost.test.ex domain = otherhost.test.ex @@ -77,6 +78,7 @@ r2 router declined for solik@otherhost.test.ex --------> 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@otherhost.sub.test.ex --------> 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@otherhost.sub.test.ex domain = otherhost.sub.test.ex @@ -103,11 +106,13 @@ r2 router declined for solik@otherhost.sub.test.ex --------> 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@ten-1.test.ex --------> 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@ten-1.test.ex domain = ten-1.test.ex @@ -173,6 +179,7 @@ routing xxx@testsub.test.ex --------> 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@testsub.test.ex domain = testsub.test.ex @@ -180,6 +187,7 @@ r2 router declined for xxx@testsub.test.ex --------> 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@testsub.sub.test.ex --------> 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@testsub.sub.test.ex domain = testsub.sub.test.ex diff --git a/test/stderr/0368 b/test/stderr/0368 index 0d3ccb719..3b373e5e5 100644 --- a/test/stderr/0368 +++ b/test/stderr/0368 @@ -2,12 +2,18 @@ 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) +check dnssec require list +check dnssec request 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) +check dnssec require list +check dnssec request 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 @@ -16,14 +22,20 @@ host_find_bydns yield = HOST_FOUND (3); returned hosts: ten-5-6.test.ex V4NET.0.0.6 MX=4 finding IP address for ten-1.test.ex doing DNS lookup +check dnssec require list +check dnssec request list fully qualified name = ten-1.test.ex ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx finding IP address for ten-1.test.ex doing DNS lookup +check dnssec require list +check dnssec request list fully qualified name = ten-1.test.ex ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx finding IP address for ten-2.test.ex doing DNS lookup +check dnssec require list +check dnssec request list fully qualified name = ten-2.test.ex ten-2.test.ex V4NET.0.0.2 mx=-1 sort=xx >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex 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@myhost.test.ex 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@myhost.test.ex R=ut4 T=ut4 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 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@myhost.test.ex R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 550 hard error @@ -401,18 +419,22 @@ routing CALLER@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex 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@myhost.test.ex 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@myhost.test.ex R=ut4 T=ut4 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 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@myhost.test.ex P=<> R=ut4 T=ut4 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 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@myhost.test.ex P=<> R=ut5 T=ut5 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 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@myhost.test.ex P= 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@myhost.test.ex R=ut6 T=ut6 defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 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@myhost.test.ex P= R=ut6 T=ut6 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 550 hard error @@ -865,34 +941,42 @@ routing CALLER@myhost.test.ex --------> 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@myhost.test.ex --------> 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 : 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: 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: 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: 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@x.y.z >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying abcd@x.y.z @@ -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@x.y.z/ 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@x.y.z/ +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@x.y.z >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying abcd@x.y.z @@ -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@x.y.z 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@test.ex >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -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@test.ex/ 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex @@ -334,22 +351,27 @@ routing cccc@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex @@ -502,22 +533,27 @@ routing cccc@myhost.test.ex --------> 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@myhost.test.ex @@ -579,22 +615,27 @@ routing cccc@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex @@ -747,22 +797,27 @@ routing cccc@myhost.test.ex --------> 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@myhost.test.ex 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@myhost.test.ex --------> bounce router <-------- local_part=aaaa domain=myhost.test.ex checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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@myhost.test.ex --------> bounce router <-------- local_part=defer_aaaa domain=myhost.test.ex checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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@myhost.test.ex --------> bounce router <-------- local_part=aaaa domain=myhost.test.ex checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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@myhost.test.ex --------> bounce router <-------- local_part=aaaa domain=myhost.test.ex checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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@myhost.test.ex @@ -280,6 +291,8 @@ routing defer_aaaa@myhost.test.ex --------> bounce router <-------- local_part=defer_aaaa domain=myhost.test.ex checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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@myhost.test.ex --------> 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..7a3950c14 100644 --- a/test/stderr/0381 +++ b/test/stderr/0381 @@ -48,19 +48,29 @@ host in "*.gov.uk.test.ex"? list element: *.gov.uk.test.ex sender host name required, to match against *.gov.uk.test.ex looking up host name for V4NET.99.99.97 -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 + 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" -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 + check dnssec require list + x.gov.uk.test.ex not in empty list (option unset? cannot trace name) + check dnssec request list + x.gov.uk.test.ex not in empty list (option unset? cannot trace name) + faking res_search(AAAA) response length as 65535 + 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 -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 + check dnssec require list + x.co.uk.test.ex not in empty list (option unset? cannot trace name) + check dnssec request list + x.co.uk.test.ex not in empty list (option unset? cannot trace name) + faking res_search(AAAA) response length as 65535 + 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 checking addresses for x.co.uk.test.ex Forward DNS security status: unverified V4NET.99.99.97 OK 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@test.ex in senders? yes (end of list) LOG: MAIN ** userx@test.ex R=r1: forced fail Exim version x.yz .... diff --git a/test/stderr/0386 b/test/stderr/0386 index ace0dc69c..52f542fa5 100644 --- a/test/stderr/0386 +++ b/test/stderr/0386 @@ -231,12 +231,12 @@ check acl = TESTSUITE/aux-fixed/0386.acl2 check dnslists = rbl.test.ex dnslists check: rbl.test.ex new DNS lookup for 13.12.11.V4NET.rbl.test.ex -DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) using fakens -DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) succeeded + DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) using fakens + DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) succeeded dnslists: wrote cache entry, ttl=3 DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2) -DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) using fakens -DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) succeeded + DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) using fakens + DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) succeeded => that means V4NET.11.12.13 is listed at rbl.test.ex warn: condition test succeeded in ACL "TESTSUITE/aux-fixed/0386.acl2" LOG: MAIN @@ -364,7 +364,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/2' +below-home: de-tainting path 'TESTSUITE/test-mail/2' lock name: TESTSUITE/test-mail/2.lock hitch name: TESTSUITE/test-mail/2.lock.test.ex.dddddddd.pppppppp lock file created @@ -561,7 +561,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/2' +below-home: de-tainting path 'TESTSUITE/test-mail/2' lock name: TESTSUITE/test-mail/2.lock hitch name: TESTSUITE/test-mail/2.lock.test.ex.dddddddd.pppppppp lock file created diff --git a/test/stderr/0388 b/test/stderr/0388 index 784cc3913..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,16 +128,17 @@ 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 -added retry item for T:V4NET.0.0.0:V4NET.0.0.0:PORT_S: errno=dd more_errno=dd,A flags=2 +added retry item for T:[V4NET.0.0.0]:V4NET.0.0.0:PORT_S: errno=dd more_errno=dd,A flags=2 set_process_info: pppp delivering 10HmaX-000000005vi-0000: waiting for a remote delivery subprocess to finish set_process_info: pppp delivering 10HmaX-000000005vi-0000 (just run smtp for x@y in subprocess) search_tidyup called -reading retry information for T:V4NET.0.0.0:V4NET.0.0.0:PORT_S from subprocess +reading retry information for T:[V4NET.0.0.0]:V4NET.0.0.0:PORT_S from subprocess added retry item reading retry information for R:x@y from subprocess added retry item @@ -177,14 +179,14 @@ Writing retry data for R:x@y list element: * V4NET.0.0.0 in "*"? yes (matched "*") *@V4NET.0.0.0 in "*"? yes (matched "*") -retry for T:V4NET.0.0.0:V4NET.0.0.0:PORT_S (y) = * 0 0 - dbfn_read: key=T:V4NET.0.0.0:V4NET.0.0.0:PORT_S +retry for T:[V4NET.0.0.0]:V4NET.0.0.0:PORT_S (y) = * 0 0 + dbfn_read: key=T:[V4NET.0.0.0]:V4NET.0.0.0:PORT_S failing_interval=ttt message_age=ttt on queue longer than maximum retry -Writing retry data for T:V4NET.0.0.0:V4NET.0.0.0:PORT_S +Writing retry data for T:[V4NET.0.0.0]:V4NET.0.0.0:PORT_S first failed=dddd last try=dddd next try=+0 expired=0 errno=dd more_errno=dd,A Network Error - dbfn_write: key=T:V4NET.0.0.0:V4NET.0.0.0:PORT_S + dbfn_write: key=T:[V4NET.0.0.0]:V4NET.0.0.0:PORT_S timed out: all retries expired LOG: MAIN ** x@y: retry timeout exceeded @@ -281,14 +283,14 @@ routing CALLER@myhost.test.ex --------> 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/0393 b/test/stderr/0393 index 75f92b9e1..0a279503d 100644 --- a/test/stderr/0393 +++ b/test/stderr/0393 @@ -22,7 +22,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' lock name: TESTSUITE/test-mail/userx.lock hitch name: TESTSUITE/test-mail/userx.lock.test.ex.dddddddd.pppppppp lock file created @@ -69,7 +69,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' lock name: TESTSUITE/test-mail/userx.lock hitch name: TESTSUITE/test-mail/userx.lock.test.ex.dddddddd.pppppppp lock file created @@ -110,7 +110,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' lock name: TESTSUITE/test-mail/userx.lock hitch name: TESTSUITE/test-mail/userx.lock.test.ex.dddddddd.pppppppp lock file created 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 0d00c73e5..cec473fb0 100644 --- a/test/stderr/0402 +++ b/test/stderr/0402 @@ -55,331 +55,331 @@ Data file written for message 10HmaX-000000005vi-0000 ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000 try option received_header_text ╭considering: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: Received:░ ├considering: ${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░$sender_rcvhost↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ╭considering: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├──────value: CALLER ╎├considering: }░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├───expanded: $sender_ident ╎╰─────result: CALLER ├─────op-res: CALLER ├considering: ░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░${quote_local_part:$sender_ident}░ ╰─────result: from░CALLER░ ├───item-res: from░CALLER░ ├considering: ${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_helo_name ├─────result: false ╭───scanning: (helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (helo= ├───scanning: $sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: )↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├───scanning: }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: (helo=$sender_helo_name)↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├considering: }}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }} + ␉}} ╰─────result: from░CALLER░ ├───item-res: from░CALLER░ ├considering: by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: by░ ├considering: $primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: mail.test.ex ├considering: ░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: ${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: local ├considering: ░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: with░$received_protocol░ ╰─────result: with░local░ ├───item-res: with░local░ ├considering: ${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░($tls_in_ver) ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░tls░$tls_in_cipher_std↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├considering: (Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (Exim░ ├considering: $version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: x.yz ├considering: )↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: CALLER@test.ex ├considering: >)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: >)↩ - + ␉ ├considering: }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───expanded: (envelope-from░<$sender_address>)↩ - + ␉ ╰─────result: (envelope-from░)↩ - + ␉ ├───item-res: (envelope-from░)↩ - + ␉ ├considering: id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──────value: 10HmaX-000000005vi-0000 ├considering: ${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──condition: def:received_for ├─────result: false ╭───scanning: ↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: ↩ - for░ + ␉for░ ├───scanning: $received_for}} ├──────value: ├───scanning: }} ├───expanded: ↩ - for░$received_for + ␉for░$received_for ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├───expanded: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╰─────result: Received:░from░CALLER░by░mail.test.ex░with░local░(Exim░x.yz)↩ - (envelope-from░)↩ - id░10HmaX-000000005vi-0000 + ␉(envelope-from░)↩ + ␉id░10HmaX-000000005vi-0000 >>Generated Received: header line P Received: from CALLER by mail.test.ex with local (Exim x.yz) (envelope-from ) @@ -486,39 +486,39 @@ routing rd+usery@test.ex --------> 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@test.ex --------> 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@test.ex --------> 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@test.ex --------> 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@test.ex --------> 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 -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@dom1.ain -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 bf8a60e5d..257cd0c1d 100644 --- a/test/stderr/0404 +++ b/test/stderr/0404 @@ -188,9 +188,9 @@ routing userx@test.ex --------> 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@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6441,9 +6441,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6459,9 +6459,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6477,9 +6477,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6495,9 +6495,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6513,9 +6513,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6531,9 +6531,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6549,9 +6549,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6567,9 +6567,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6585,9 +6585,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6603,9 +6603,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6621,9 +6621,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6639,9 +6639,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6657,9 +6657,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6675,9 +6675,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6693,9 +6693,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6711,9 +6711,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6729,9 +6729,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6747,9 +6747,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6765,9 +6765,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6783,9 +6783,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6801,9 +6801,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6819,9 +6819,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6837,9 +6837,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6855,9 +6855,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6873,9 +6873,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6891,9 +6891,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6909,9 +6909,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6927,9 +6927,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6945,9 +6945,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6963,9 +6963,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6981,9 +6981,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -6999,9 +6999,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7017,9 +7017,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7035,9 +7035,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7053,9 +7053,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7071,9 +7071,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7089,9 +7089,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7107,9 +7107,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7125,9 +7125,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7143,9 +7143,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7161,9 +7161,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7179,9 +7179,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7197,9 +7197,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7215,9 +7215,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7233,9 +7233,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7251,9 +7251,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7269,9 +7269,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7287,9 +7287,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7305,9 +7305,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7323,9 +7323,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7341,9 +7341,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7359,9 +7359,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7377,9 +7377,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7395,9 +7395,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7413,9 +7413,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7431,9 +7431,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7449,9 +7449,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7467,9 +7467,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7485,9 +7485,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7503,9 +7503,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7521,9 +7521,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7539,9 +7539,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7557,9 +7557,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7575,9 +7575,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7593,9 +7593,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7611,9 +7611,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7629,9 +7629,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7647,9 +7647,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7665,9 +7665,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7683,9 +7683,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7701,9 +7701,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7719,9 +7719,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7737,9 +7737,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7755,9 +7755,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7773,9 +7773,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7791,9 +7791,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7809,9 +7809,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7827,9 +7827,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7845,9 +7845,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7863,9 +7863,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7881,9 +7881,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7899,9 +7899,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7917,9 +7917,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7935,9 +7935,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7953,9 +7953,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7971,9 +7971,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -7989,9 +7989,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8007,9 +8007,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8025,9 +8025,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8043,9 +8043,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8061,9 +8061,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8079,9 +8079,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8097,9 +8097,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8115,9 +8115,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8133,9 +8133,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8151,9 +8151,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8169,9 +8169,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8187,9 +8187,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8205,9 +8205,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8223,9 +8223,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8241,9 +8241,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8259,9 +8259,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8277,9 +8277,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8295,9 +8295,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8313,9 +8313,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8331,9 +8331,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8349,9 +8349,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8367,9 +8367,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8385,9 +8385,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8403,9 +8403,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8421,9 +8421,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8439,9 +8439,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8457,9 +8457,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8475,9 +8475,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8493,9 +8493,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8511,9 +8511,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8529,9 +8529,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8547,9 +8547,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8565,9 +8565,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8583,9 +8583,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8601,9 +8601,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8619,9 +8619,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8637,9 +8637,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8655,9 +8655,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8673,9 +8673,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8691,9 +8691,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8709,9 +8709,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8727,9 +8727,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8745,9 +8745,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8763,9 +8763,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8781,9 +8781,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8799,9 +8799,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8817,9 +8817,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8835,9 +8835,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8853,9 +8853,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8871,9 +8871,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8889,9 +8889,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8907,9 +8907,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8925,9 +8925,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8943,9 +8943,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8961,9 +8961,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8979,9 +8979,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -8997,9 +8997,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9015,9 +9015,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9033,9 +9033,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9051,9 +9051,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9069,9 +9069,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9087,9 +9087,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9105,9 +9105,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9123,9 +9123,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9141,9 +9141,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9159,9 +9159,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9177,9 +9177,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9195,9 +9195,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9213,9 +9213,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9231,9 +9231,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9249,9 +9249,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9267,9 +9267,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9285,9 +9285,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9303,9 +9303,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9321,9 +9321,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9339,9 +9339,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9357,9 +9357,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9375,9 +9375,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9393,9 +9393,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9411,9 +9411,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9429,9 +9429,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9447,9 +9447,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9465,9 +9465,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9483,9 +9483,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9501,9 +9501,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9519,9 +9519,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9537,9 +9537,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9555,9 +9555,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9573,9 +9573,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9591,9 +9591,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9609,9 +9609,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9627,9 +9627,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9645,9 +9645,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9663,9 +9663,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9681,9 +9681,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9699,9 +9699,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9717,9 +9717,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9735,9 +9735,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9753,9 +9753,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9771,9 +9771,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9789,9 +9789,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9807,9 +9807,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9825,9 +9825,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9843,9 +9843,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9861,9 +9861,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9879,9 +9879,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9897,9 +9897,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9915,9 +9915,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9933,9 +9933,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9951,9 +9951,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9969,9 +9969,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -9987,9 +9987,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10005,9 +10005,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10023,9 +10023,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10041,9 +10041,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10059,9 +10059,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10077,9 +10077,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10095,9 +10095,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10113,9 +10113,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10131,9 +10131,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10149,9 +10149,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10167,9 +10167,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10185,9 +10185,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10203,9 +10203,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10221,9 +10221,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10239,9 +10239,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10257,9 +10257,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10275,9 +10275,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10293,9 +10293,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10311,9 +10311,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10329,9 +10329,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10347,9 +10347,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10365,9 +10365,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10383,9 +10383,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10401,9 +10401,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10419,9 +10419,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10437,9 +10437,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10455,9 +10455,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10473,9 +10473,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10491,9 +10491,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10509,9 +10509,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10527,9 +10527,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10545,9 +10545,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10563,9 +10563,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10581,9 +10581,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10599,9 +10599,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10617,9 +10617,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10635,9 +10635,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10653,9 +10653,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10671,9 +10671,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10689,9 +10689,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10707,9 +10707,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10725,9 +10725,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10743,9 +10743,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10761,9 +10761,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10779,9 +10779,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10797,9 +10797,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10815,9 +10815,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10833,9 +10833,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10851,9 +10851,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10869,9 +10869,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10887,9 +10887,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10905,9 +10905,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10923,9 +10923,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10941,9 +10941,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10959,9 +10959,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10977,9 +10977,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -10995,9 +10995,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11013,9 +11013,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11031,9 +11031,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11049,9 +11049,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11067,9 +11067,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11085,9 +11085,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11103,9 +11103,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11121,9 +11121,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11139,9 +11139,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11157,9 +11157,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11175,9 +11175,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11193,9 +11193,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11211,9 +11211,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11229,9 +11229,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11247,9 +11247,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11265,9 +11265,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11283,9 +11283,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11301,9 +11301,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11319,9 +11319,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11337,9 +11337,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11355,9 +11355,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11373,9 +11373,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11391,9 +11391,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11409,9 +11409,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11427,9 +11427,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11445,9 +11445,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11463,9 +11463,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11481,9 +11481,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11499,9 +11499,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11517,9 +11517,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11535,9 +11535,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11553,9 +11553,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11571,9 +11571,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11589,9 +11589,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11607,9 +11607,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11625,9 +11625,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11643,9 +11643,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11661,9 +11661,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11679,9 +11679,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11697,9 +11697,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11715,9 +11715,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11733,9 +11733,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11751,9 +11751,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11769,9 +11769,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11787,9 +11787,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11805,9 +11805,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11823,9 +11823,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11841,9 +11841,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11859,9 +11859,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11877,9 +11877,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11895,9 +11895,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11913,9 +11913,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11931,9 +11931,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11949,9 +11949,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11967,9 +11967,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -11985,9 +11985,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12003,9 +12003,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12021,9 +12021,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12039,9 +12039,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12057,9 +12057,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12075,9 +12075,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12093,9 +12093,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12111,9 +12111,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12129,9 +12129,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12147,9 +12147,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12165,9 +12165,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12183,9 +12183,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12201,9 +12201,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12219,9 +12219,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12237,9 +12237,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12255,9 +12255,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12273,9 +12273,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12291,9 +12291,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12309,9 +12309,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12327,9 +12327,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12345,9 +12345,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12363,9 +12363,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12381,9 +12381,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12399,9 +12399,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12417,9 +12417,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12435,9 +12435,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12453,9 +12453,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12471,9 +12471,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12489,9 +12489,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12507,9 +12507,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12525,9 +12525,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12543,9 +12543,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12561,9 +12561,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12579,9 +12579,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12597,9 +12597,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12615,9 +12615,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12633,9 +12633,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12651,9 +12651,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12669,9 +12669,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12687,9 +12687,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12705,9 +12705,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12723,9 +12723,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12741,9 +12741,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12759,9 +12759,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12777,9 +12777,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12795,9 +12795,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12813,9 +12813,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12831,9 +12831,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12849,9 +12849,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12867,9 +12867,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12885,9 +12885,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12903,9 +12903,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12921,9 +12921,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12939,9 +12939,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12957,9 +12957,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12975,9 +12975,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -12993,9 +12993,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13011,9 +13011,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13029,9 +13029,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13047,9 +13047,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13065,9 +13065,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13083,9 +13083,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13101,9 +13101,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13119,9 +13119,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13137,9 +13137,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13155,9 +13155,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13173,9 +13173,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13191,9 +13191,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13209,9 +13209,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13227,9 +13227,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13245,9 +13245,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13263,9 +13263,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13281,9 +13281,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13299,9 +13299,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13317,9 +13317,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13335,9 +13335,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13353,9 +13353,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13371,9 +13371,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13389,9 +13389,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13407,9 +13407,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13425,9 +13425,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13443,9 +13443,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13461,9 +13461,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13479,9 +13479,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13497,9 +13497,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13515,9 +13515,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13533,9 +13533,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13551,9 +13551,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13569,9 +13569,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13587,9 +13587,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13605,9 +13605,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13623,9 +13623,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13641,9 +13641,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13659,9 +13659,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13677,9 +13677,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13695,9 +13695,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13713,9 +13713,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13731,9 +13731,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13749,9 +13749,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13767,9 +13767,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13785,9 +13785,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13803,9 +13803,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13821,9 +13821,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13839,9 +13839,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13857,9 +13857,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13875,9 +13875,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13893,9 +13893,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13911,9 +13911,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13929,9 +13929,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13947,9 +13947,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13965,9 +13965,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -13983,9 +13983,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14001,9 +14001,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14019,9 +14019,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14037,9 +14037,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14055,9 +14055,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14073,9 +14073,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14091,9 +14091,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14109,9 +14109,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14127,9 +14127,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14145,9 +14145,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14163,9 +14163,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14181,9 +14181,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14199,9 +14199,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14217,9 +14217,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14235,9 +14235,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14253,9 +14253,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14271,9 +14271,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14289,9 +14289,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14307,9 +14307,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14325,9 +14325,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14343,9 +14343,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14361,9 +14361,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14379,9 +14379,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14397,9 +14397,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14415,9 +14415,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14433,9 +14433,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14451,9 +14451,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14469,9 +14469,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14487,9 +14487,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14505,9 +14505,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14523,9 +14523,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14541,9 +14541,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14559,9 +14559,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14577,9 +14577,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14595,9 +14595,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14613,9 +14613,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14631,9 +14631,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14649,9 +14649,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14667,9 +14667,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14685,9 +14685,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14703,9 +14703,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14721,9 +14721,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14739,9 +14739,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14757,9 +14757,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14775,9 +14775,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14793,9 +14793,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14811,9 +14811,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14829,9 +14829,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14847,9 +14847,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14865,9 +14865,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14883,9 +14883,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14901,9 +14901,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14919,9 +14919,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14937,9 +14937,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14955,9 +14955,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14973,9 +14973,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -14991,9 +14991,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15009,9 +15009,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15027,9 +15027,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15045,9 +15045,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15063,9 +15063,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15081,9 +15081,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15099,9 +15099,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15117,9 +15117,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15135,9 +15135,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15153,9 +15153,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15171,9 +15171,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15189,9 +15189,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15207,9 +15207,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15225,9 +15225,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15243,9 +15243,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15261,9 +15261,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15279,9 +15279,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15297,9 +15297,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15315,9 +15315,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15333,9 +15333,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15351,9 +15351,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15369,9 +15369,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15387,9 +15387,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15405,9 +15405,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15423,9 +15423,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15441,9 +15441,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15459,9 +15459,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15477,9 +15477,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15495,9 +15495,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15513,9 +15513,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15531,9 +15531,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15549,9 +15549,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15567,9 +15567,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15585,9 +15585,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15603,9 +15603,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15621,9 +15621,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15639,9 +15639,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15657,9 +15657,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15675,9 +15675,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15693,9 +15693,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15711,9 +15711,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15729,9 +15729,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15747,9 +15747,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15765,9 +15765,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15783,9 +15783,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15801,9 +15801,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15819,9 +15819,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15837,9 +15837,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15855,9 +15855,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15873,9 +15873,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15891,9 +15891,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15909,9 +15909,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15927,9 +15927,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15945,9 +15945,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15963,9 +15963,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15981,9 +15981,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -15999,9 +15999,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16017,9 +16017,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16035,9 +16035,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16053,9 +16053,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16071,9 +16071,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16089,9 +16089,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16107,9 +16107,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16125,9 +16125,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16143,9 +16143,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16161,9 +16161,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16179,9 +16179,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16197,9 +16197,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16215,9 +16215,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16233,9 +16233,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16251,9 +16251,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16269,9 +16269,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16287,9 +16287,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16305,9 +16305,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16323,9 +16323,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16341,9 +16341,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16359,9 +16359,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16377,9 +16377,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16395,9 +16395,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16413,9 +16413,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16431,9 +16431,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16449,9 +16449,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16467,9 +16467,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16485,9 +16485,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16503,9 +16503,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16521,9 +16521,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16539,9 +16539,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16557,9 +16557,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16575,9 +16575,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16593,9 +16593,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16611,9 +16611,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16629,9 +16629,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16647,9 +16647,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16665,9 +16665,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16683,9 +16683,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16701,9 +16701,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16719,9 +16719,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16737,9 +16737,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16755,9 +16755,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16773,9 +16773,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16791,9 +16791,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16809,9 +16809,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16827,9 +16827,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16845,9 +16845,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16863,9 +16863,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16881,9 +16881,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16899,9 +16899,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16917,9 +16917,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16935,9 +16935,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16953,9 +16953,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16971,9 +16971,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -16989,9 +16989,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17007,9 +17007,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17025,9 +17025,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17043,9 +17043,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17061,9 +17061,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17079,9 +17079,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17097,9 +17097,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17115,9 +17115,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17133,9 +17133,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17151,9 +17151,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17169,9 +17169,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17187,9 +17187,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17205,9 +17205,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17223,9 +17223,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17241,9 +17241,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17259,9 +17259,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17277,9 +17277,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17295,9 +17295,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17313,9 +17313,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17331,9 +17331,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -17349,9 +17349,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -18604,7 +18604,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/sender' +below-home: de-tainting path 'TESTSUITE/test-mail/sender' lock name: TESTSUITE/test-mail/sender.lock hitch name: TESTSUITE/test-mail/sender.lock.test.ex.dddddddd.pppppppp lock file created diff --git a/test/stderr/0408 b/test/stderr/0408 index bbe75fb92..34992e8ee 100644 --- a/test/stderr/0408 +++ b/test/stderr/0408 @@ -87,9 +87,9 @@ routing userx@test.ex --------> 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@test.ex domain = test.ex @@ -103,10 +103,10 @@ routing usery@test.ex --------> 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@test.ex domain = test.ex @@ -157,7 +157,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' lock name: TESTSUITE/test-mail/userx.lock hitch name: TESTSUITE/test-mail/userx.lock.test.ex.dddddddd.pppppppp lock file created 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@b.domain --------> 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@b.domain @@ -95,7 +95,7 @@ routing x@a.domain --------> 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@a.domain diff --git a/test/stderr/0419 b/test/stderr/0419 index 6ea0d7822..98d3a7813 100644 --- a/test/stderr/0419 +++ b/test/stderr/0419 @@ -17,21 +17,24 @@ routing k@mxt13.test.ex --------> 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@mxt13.test.ex domain = mxt13.test.ex -mxt13.test.ex in "*"? - list element: * - mxt13.test.ex in "*"? yes (matched "*") +check dnssec require list + mxt13.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + mxt13.test.ex in dnssec_request_domains? + list element: * + 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..197cdbc6e 100644 --- a/test/stderr/0426 +++ b/test/stderr/0426 @@ -20,12 +20,16 @@ routing x@uppercase.test.ex --------> r0 router <-------- local_part=x domain=uppercase.test.ex checking senders +test.ex in ""? no (end of list) +CALLER@test.ex in senders? no (end of list) r0 router skipped: senders mismatch --------> r1 router <-------- local_part=x domain=uppercase.test.ex calling r1 router r1 router called for x@uppercase.test.ex domain = uppercase.test.ex +check dnssec require list +check dnssec request list uppercase.test.ex (MX resp) DNSSEC local host found for non-MX address fully qualified name = UpperCase.test.ex @@ -48,7 +52,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@uppercase.test.ex R=r1 T=t1 H=uppercase.test.ex [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 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..e1c28db83 100644 --- a/test/stderr/0443 +++ b/test/stderr/0443 @@ -16,9 +16,12 @@ >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing x@ten-1.test.ex >>> calling r1 router ->>> ten-1.test.ex in "*"? ->>> list element: * ->>> ten-1.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> ten-1.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> ten-1.test.ex in dnssec_request_domains? +>>> list element: * +>>> 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 997954187..19be3ace9 100644 --- a/test/stderr/0450 +++ b/test/stderr/0450 @@ -18,10 +18,11 @@ 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@test.ex) -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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D: errno=dd more_errno=dd,A flags=2 all IP addresses skipped or deferred at least one address updating wait-t1 database added 10HmaX-000000005vi-0000 to queue for 127.0.0.1 @@ -47,10 +48,11 @@ 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@test.ex) -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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D2: errno=dd more_errno=dd,A flags=2 all IP addresses skipped or deferred at least one address updating wait-t1 database already listed for 127.0.0.1 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..efe4fed19 100644 --- a/test/stderr/0463 +++ b/test/stderr/0463 @@ -16,21 +16,26 @@ 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 -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) + check dnssec require list + check dnssec request list + DNS lookup of ten-1 (MX) using fakens + DNS lookup of ten-1 (MX) gave NO_DATA + returning DNS_NODATA + faking res_search(MX) response length as 65535 + writing neg-cache entry for ten-1-MX-4100041, ttl 3000 + Address records are not being sought +ten-1 in domains? yes (end of list) calling all router all router called for x@ten-1 domain = ten-1 -ten-1 in "*"? - list element: * - ten-1 in "*"? yes (matched "*") +check dnssec require list + ten-1 in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1 in dnssec_request_domains? + list element: * + 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,21 +56,26 @@ routing x@ten-1.test.ex --------> 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 -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) + check dnssec require list + check dnssec request list + DNS lookup of ten-1.test.ex (MX) using fakens + DNS lookup of ten-1.test.ex (MX) gave NO_DATA + returning DNS_NODATA + faking res_search(MX) response length as 65535 + writing neg-cache entry for ten-1.test.ex-MX-4900041, ttl 3000 + Address records are not being sought +ten-1.test.ex in domains? yes (end of list) calling all router all router called for x@ten-1.test.ex domain = ten-1.test.ex -ten-1.test.ex in "*"? - list element: * - ten-1.test.ex in "*"? yes (matched "*") +check dnssec require list + ten-1.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + ten-1.test.ex in dnssec_request_domains? + list element: * + 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@xxx.domain1' (tainted) @@ -79,7 +79,7 @@ routing abc@xxx.domain1 --------> 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@xxx.domain1' (tainted) @@ -159,7 +159,7 @@ routing abc@xxx.domain1 --------> 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@myhost.test.ex 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..a29d7763c 100644 --- a/test/stderr/0469 +++ b/test/stderr/0469 @@ -18,9 +18,12 @@ local_part=x domain=mxt1c.test.ex calling r1 router r1 router called for x@mxt1c.test.ex domain = mxt1c.test.ex -mxt1c.test.ex in "*"? - list element: * - mxt1c.test.ex in "*"? yes (matched "*") +check dnssec require list + mxt1c.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + mxt1c.test.ex in dnssec_request_domains? + list element: * + 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@two.test.ex >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -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@two.test.ex 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@two.test.ex >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -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@two.test.ex 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 86070390d..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@test.ex) set_process_info: pppp delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1]:PORT_S (userx@test.ex) -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,11 +86,12 @@ 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@the.local.host.name) set_process_info: pppp delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1]:PORT_S (CALLER@the.local.host.name) -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@the.local.host.name: result DEFER -added retry item for T:127.0.0.1:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 all IP addresses skipped or deferred at least one address updating wait-t1 database added 10HmaZ-000000005vi-0000 to queue for 127.0.0.1 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= rejected RCPT LOG: smtp_connection MAIN diff --git a/test/stderr/0487 b/test/stderr/0487 index e703c88d9..d8b9bc1d9 100644 --- a/test/stderr/0487 +++ b/test/stderr/0487 @@ -159,7 +159,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 message_suffix=\n maildir_use_size_file=no locking by lockfile fcntl -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' lock name: TESTSUITE/test-mail/userx.lock hitch name: TESTSUITE/test-mail/userx.lock.test.ex.dddddddd.pppppppp lock file created diff --git a/test/stderr/0499 b/test/stderr/0499 index 8a3733a50..236d952fd 100644 --- a/test/stderr/0499 +++ b/test/stderr/0499 @@ -16,35 +16,39 @@ routing ph@mxt1.test.ex --------> 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"? ╎list element: @mx_any -DNS lookup of mxt1.test.ex (MX) using fakens -DNS lookup of mxt1.test.ex (MX) succeeded -DNS lookup of eximtesthost.test.ex (A) using fakens -DNS lookup of eximtesthost.test.ex (A) succeeded + ╎check dnssec require list + ╎check dnssec request list + ╎DNS lookup of mxt1.test.ex (MX) using fakens + ╎DNS lookup of mxt1.test.ex (MX) succeeded + ╎DNS lookup of eximtesthost.test.ex (A) using fakens + ╎DNS lookup of eximtesthost.test.ex (A) succeeded local host has lowest MX -host_find_bydns yield = HOST_FOUND_LOCAL (4); returned hosts: - eximtesthost.test.ex ip4.ip4.ip4.ip4 MX=5 + ╎host_find_bydns yield = HOST_FOUND_LOCAL (4); returned hosts: + ╎ eximtesthost.test.ex ip4.ip4.ip4.ip4 MX=5 ╎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 start sublist anymx ╎mxt1.test.ex in "@mx_any"? ╎ list element: @mx_any -DNS lookup of mxt1.test.ex (MX) using fakens -DNS lookup of mxt1.test.ex (MX) succeeded -DNS lookup of eximtesthost.test.ex (A) using fakens -DNS lookup of eximtesthost.test.ex (A) succeeded + ╎ check dnssec require list + ╎ check dnssec request list + ╎ DNS lookup of mxt1.test.ex (MX) using fakens + ╎ DNS lookup of mxt1.test.ex (MX) succeeded + ╎ DNS lookup of eximtesthost.test.ex (A) using fakens + ╎ DNS lookup of eximtesthost.test.ex (A) succeeded local host has lowest MX -host_find_bydns yield = HOST_FOUND_LOCAL (4); returned hosts: - eximtesthost.test.ex ip4.ip4.ip4.ip4 MX=5 + ╎ host_find_bydns yield = HOST_FOUND_LOCAL (4); returned hosts: + ╎ eximtesthost.test.ex ip4.ip4.ip4.ip4 MX=5 ╎ mxt1.test.ex in "@mx_any"? yes (matched "@mx_any") end sublist anymx mxt1.test.ex in "+anymx"? yes (matched "+anymx") diff --git a/test/stderr/0512 b/test/stderr/0512 index 18ebdc002..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@myhost.test.ex in senders? no (end of list) >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>> --------> userx@myhost.test.ex <-------- t1 transport entered @@ -15,10 +17,11 @@ 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@myhost.test.ex) 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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 temporary delivery error(s) override hosts_max_try (message older than host's retry time) Clearing TFO as not first host for message getting address for 127.0.0.1 @@ -27,10 +30,11 @@ 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@myhost.test.ex) 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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 temporary delivery error(s) override hosts_max_try (message older than host's retry time) Clearing TFO as not first host for message getting address for 127.0.0.1 @@ -39,10 +43,11 @@ 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@myhost.test.ex) 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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 temporary delivery error(s) override hosts_max_try (message older than host's retry time) Clearing TFO as not first host for message getting address for 127.0.0.1 @@ -51,10 +56,11 @@ 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@myhost.test.ex) 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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 reached transport hosts_max_try limit 1 all IP addresses skipped or deferred at least one address updating wait-t1 database @@ -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@myhost.test.ex in senders? no (end of list) >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>> --------> userx@myhost.test.ex <-------- t1 transport entered @@ -106,10 +114,11 @@ 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@myhost.test.ex) 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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 temporary delivery error(s) override hosts_max_try (message older than host's retry time) Clearing TFO as not first host for message getting address for 127.0.0.1 @@ -118,10 +127,11 @@ 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@myhost.test.ex) 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 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_S: errno=dd more_errno=dd,A flags=2 temporary delivery error(s) override hosts_max_try (message older than host's retry time) reached transport hosts_max_try_hardlimit limit 2 all IP addresses skipped or deferred at least one address diff --git a/test/stderr/0513 b/test/stderr/0513 index 12280cded..53c05b205 100644 --- a/test/stderr/0513 +++ b/test/stderr/0513 @@ -24,9 +24,12 @@ >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing x@mxt2.test.ex >>> calling r1 router ->>> mxt2.test.ex in "*"? ->>> list element: * ->>> mxt2.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> mxt2.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> mxt2.test.ex in dnssec_request_domains? +>>> list element: * +>>> mxt2.test.ex in dnssec_request_domains? yes (matched "*") >>> r1 router declined for x@mxt2.test.ex >>> 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@myhost.test.ex 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 3e5fbe13e..f2e80499d 100644 --- a/test/stderr/0544 +++ b/test/stderr/0544 @@ -17,331 +17,331 @@ try option message_id_header_text ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000 try option received_header_text ╭considering: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: Received:░ ├considering: ${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░$sender_rcvhost↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ╭considering: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├──────value: CALLER ╎├considering: }░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├───expanded: $sender_ident ╎╰─────result: CALLER ├─────op-res: CALLER ├considering: ░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░${quote_local_part:$sender_ident}░ ╰─────result: from░CALLER░ ├───item-res: from░CALLER░ ├considering: ${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_helo_name ├─────result: false ╭───scanning: (helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (helo= ├───scanning: $sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: )↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├───scanning: }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: (helo=$sender_helo_name)↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├considering: }}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }} + ␉}} ╰─────result: from░CALLER░ ├───item-res: from░CALLER░ ├considering: by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: by░ ├considering: $primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: the.local.host.name ├considering: ░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: ${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: local ├considering: ░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: with░$received_protocol░ ╰─────result: with░local░ ├───item-res: with░local░ ├considering: ${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░($tls_in_ver) ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░tls░$tls_in_cipher_std↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├considering: (Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (Exim░ ├considering: $version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: x.yz ├considering: )↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: CALLER@test.ex ├considering: >)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: >)↩ - + ␉ ├considering: }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───expanded: (envelope-from░<$sender_address>)↩ - + ␉ ╰─────result: (envelope-from░)↩ - + ␉ ├───item-res: (envelope-from░)↩ - + ␉ ├considering: id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──────value: 10HmaX-000000005vi-0000 ├considering: ${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──condition: def:received_for ├─────result: false ╭───scanning: ↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: ↩ - for░ + ␉for░ ├───scanning: $received_for}} ├──────value: ├───scanning: }} ├───expanded: ↩ - for░$received_for + ␉for░$received_for ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ├───expanded: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╰─────result: Received:░from░CALLER░by░the.local.host.name░with░local░(Exim░x.yz)↩ - (envelope-from░)↩ - id░10HmaX-000000005vi-0000 + ␉(envelope-from░)↩ + ␉id░10HmaX-000000005vi-0000 try option acl_not_smtp ╭considering: ${tod_full} ├───expanded: ${tod_full} @@ -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..174c8508a 100644 --- a/test/stderr/0545 +++ b/test/stderr/0545 @@ -18,9 +18,12 @@ local_part=userx domain=alias-eximtesthost calling dns router dns router called for userx@alias-eximtesthost domain = alias-eximtesthost -alias-eximtesthost in "*"? - list element: * - alias-eximtesthost in "*"? yes (matched "*") +check dnssec require list + alias-eximtesthost in dnssec_require_domains? no (option unset) +check dnssec request list + alias-eximtesthost in dnssec_request_domains? + list element: * + 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 +53,12 @@ local_part=userx domain=alias-eximtesthost.test.ex calling dns router dns router called for userx@alias-eximtesthost.test.ex domain = alias-eximtesthost.test.ex -alias-eximtesthost.test.ex in "*"? - list element: * - alias-eximtesthost.test.ex in "*"? yes (matched "*") +check dnssec require list + alias-eximtesthost.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + alias-eximtesthost.test.ex in dnssec_request_domains? + list element: * + 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 +103,12 @@ local_part=userx domain=alias-eximtesthost.test.ex calling dns router dns router called for userx@alias-eximtesthost.test.ex domain = alias-eximtesthost.test.ex -alias-eximtesthost.test.ex in "*"? - list element: * - alias-eximtesthost.test.ex in "*"? yes (matched "*") +check dnssec require list + alias-eximtesthost.test.ex in dnssec_require_domains? no (option unset) +check dnssec request list + alias-eximtesthost.test.ex in dnssec_request_domains? + list element: * + 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:: errno=-44 more_errno=dd,A flags=0 + added retry item for R:x@y:: 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: 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:: errno=dd more_errno=dd,A flags=1 + added retry item for R:x@y:: 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@testexim.test.ex --------> 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@testexim.test.ex 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 : 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: 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: 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: 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@x.y.z >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying abcd@x.y.z @@ -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@x.y.z/ 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@x.y.z/ +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@x.y.z >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying abcd@x.y.z @@ -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@x.y.z 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@test.ex >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -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@test.ex/ 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@test.ex >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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@test.ex H=(test) [127.0.0.1] P=smtp S=sss >>> check verify = sender=fail@test.ex >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing fail@test.ex ->>> 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= rejected RCPT : Sende >>> = sender=userx@test.ex/defer_ok >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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..4f51c0de0 100644 --- a/test/stderr/0588 +++ b/test/stderr/0588 @@ -15,9 +15,12 @@ >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing should_log@delay1500.test.ex >>> calling all router ->>> delay1500.test.ex in "*"? ->>> list element: * ->>> delay1500.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> delay1500.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> delay1500.test.ex in dnssec_request_domains? +>>> list element: * +>>> 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 +44,12 @@ LOG: Long A lookup for 'delay1500.test.ex': ssss msec >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing should_not_log@delay500.test.ex >>> calling all router ->>> delay500.test.ex in "*"? ->>> list element: * ->>> delay500.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> delay500.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> delay500.test.ex in dnssec_request_domains? +>>> list element: * +>>> 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 ce3804c13..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@test.ex) -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 @@ -55,7 +57,7 @@ ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL SMTP<< 221 Closing connection SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:300:.:QUIT+:451:221' -added retry item for T:127.0.0.1:127.0.0.1:PORT_D:10HmaZ-000000005vi-0000: errno=-46 more_errno=dd,A flags=6 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D:10HmaZ-000000005vi-0000: errno=-46 more_errno=dd,A flags=6 all IP addresses skipped or deferred at least one address Leaving send_to_server transport LOG: MAIN @@ -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@test.ex) -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@test.ex) -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 @@ -187,7 +193,7 @@ ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL SMTP(closed)<< SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:300:.:QUIT+' -added retry item for T:127.0.0.1:127.0.0.1:PORT_D:10HmbB-000000005vi-0000: errno=-18 more_errno=dd,A flags=6 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D:10HmbB-000000005vi-0000: errno=-18 more_errno=dd,A flags=6 all IP addresses skipped or deferred at least one address Leaving send_to_server transport LOG: MAIN 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 c19620b80..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 @@ -143,352 +145,351 @@ p1235 ├───expanded: ${tod_full} p1235 ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000 p1235 try option received_header_text p1235 ╭considering: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ -p1235 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: Received:░ p1235 ├considering: ${if░def:sender_rcvhost░{from░$sender_rcvhost↩ -p1235 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──condition: def:sender_rcvhost p1235 ├─────result: true p1235 ╭considering: from░$sender_rcvhost↩ -p1235 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: from░ p1235 ├considering: $sender_rcvhost↩ -p1235 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──────value: [127.0.0.1]░(helo=test.ex) p1235 ╰──(tainted) p1235 ├considering: ↩ -p1235 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: ↩ -p1235 +p1235 ␉ p1235 ├considering: }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───expanded: from░$sender_rcvhost↩ -p1235 +p1235 ␉ p1235 ╰─────result: from░[127.0.0.1]░(helo=test.ex)↩ -p1235 +p1235 ␉ p1235 ╰──(tainted) p1235 ╭───scanning: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──condition: def:sender_ident p1235 ├─────result: false p1235 ╭───scanning: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: from░ p1235 ├───scanning: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ╎╭───scanning: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 ╎ }}(Exim░$version_number)↩ -p1235 ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 ╎ }}id░$message_exim_id${if░def:received_for░{↩ -p1235 ╎ for░$received_for}} +p1235 ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ╎␉}}(Exim░$version_number)↩ +p1235 ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ╎␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ╎␉for░$received_for}} p1235 ╎├──────value: p1235 ╎├───scanning: }░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 ╎ }}(Exim░$version_number)↩ -p1235 ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 ╎ }}id░$message_exim_id${if░def:received_for░{↩ -p1235 ╎ for░$received_for}} +p1235 ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ╎␉}}(Exim░$version_number)↩ +p1235 ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ╎␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ╎␉for░$received_for}} p1235 ╎├───expanded: $sender_ident p1235 ╎├─────result: ◀skipped▶ p1235 ╎╰───skipping: result is not used p1235 ├───scanning: ░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: ░ p1235 ├───scanning: }}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───expanded: from░${quote_local_part:$sender_ident}░ p1235 ├─────result: ◀skipped▶ p1235 ╰───skipping: result is not used p1235 ├───item-res: p1235 ├───scanning: ${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──condition: def:sender_helo_name p1235 ├─────result: false p1235 ╭───scanning: (helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: (helo= p1235 ├───scanning: $sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──────value: p1235 ├───scanning: )↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: )↩ -p1235 +p1235 ␉ p1235 ├───scanning: }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───expanded: (helo=$sender_helo_name)↩ -p1235 +p1235 ␉ p1235 ├─────result: ◀skipped▶ p1235 ╰───skipping: result is not used p1235 ├───item-res: p1235 ├───scanning: }}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───expanded: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }} +p1235 ␉}} p1235 ├─────result: ◀skipped▶ p1235 ╰───skipping: result is not used p1235 ├───item-res: from░[127.0.0.1]░(helo=test.ex)↩ -p1235 +p1235 ␉ p1235 ╰──(tainted) p1235 ├considering: by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: by░ p1235 ├considering: $primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──────value: myhost.test.ex p1235 ├considering: ░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: ░ p1235 ├considering: ${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──condition: def:received_protocol p1235 ├─────result: true p1235 ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: with░ p1235 ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──────value: smtp p1235 ├considering: ░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: ░ p1235 ├considering: }}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───expanded: with░$received_protocol░ p1235 ╰─────result: with░smtp░ p1235 ├───item-res: with░smtp░ p1235 ╰──(tainted) p1235 ├considering: ${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───expanded: ░($tls_in_ver) p1235 ├─────result: ◀skipped▶ p1235 ╰───skipping: result is not used p1235 ├───item-res: p1235 ╰──(tainted) p1235 ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──condition: def:tls_in_cipher_std p1235 ├─────result: false p1235 ╭───scanning: ░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: ░tls░ p1235 ├───scanning: $tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──────value: p1235 ├───scanning: ↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: ↩ -p1235 +p1235 ␉ p1235 ├───scanning: }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───expanded: ░tls░$tls_in_cipher_std↩ -p1235 +p1235 ␉ p1235 ├─────result: ◀skipped▶ p1235 ╰───skipping: result is not used p1235 ├───item-res: p1235 ╰──(tainted) p1235 ├considering: (Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: (Exim░ p1235 ├considering: $version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──────value: x.yz p1235 ├considering: )↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: )↩ -p1235 +p1235 ␉ p1235 ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──condition: def:sender_address p1235 ├─────result: true p1235 ╭considering: (envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: (envelope-from░< p1235 ├considering: $sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├──────value: CALLER@test.ex p1235 ╰──(tainted) p1235 ├considering: >)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ├───────text: >)↩ -p1235 +p1235 ␉ p1235 ├considering: }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉for░$received_for}} p1235 ├───expanded: (envelope-from░<$sender_address>)↩ -p1235 +p1235 ␉ p1235 ╰─────result: (envelope-from░)↩ -p1235 +p1235 ␉ p1235 ╰──(tainted) p1235 ├───item-res: (envelope-from░)↩ -p1235 +p1235 ␉ p1235 ╰──(tainted) p1235 ├considering: id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉for░$received_for}} p1235 ├───────text: id░ p1235 ├considering: $message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉for░$received_for}} p1235 ├──────value: 10HmaX-000000005vi-0000 p1235 ├considering: ${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉for░$received_for}} p1235 ├──condition: def:received_for p1235 ├─────result: true p1235 ╭considering: ↩ -p1235 for░$received_for}} +p1235 ␉for░$received_for}} p1235 ├───────text: ↩ -p1235 for░ +p1235 ␉for░ p1235 ├considering: $received_for}} p1235 ├──────value: dest_1@test.ex p1235 ╰──(tainted) p1235 ├considering: }} p1235 ├───expanded: ↩ -p1235 for░$received_for +p1235 ␉for░$received_for p1235 ╰─────result: ↩ -p1235 for░dest_1@test.ex +p1235 ␉for░dest_1@test.ex p1235 ╰──(tainted) p1235 ├───item-res: ↩ -p1235 for░dest_1@test.ex +p1235 ␉for░dest_1@test.ex p1235 ╰──(tainted) p1235 ├───expanded: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ -p1235 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1235 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1235 }}(Exim░$version_number)↩ -p1235 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1235 }}id░$message_exim_id${if░def:received_for░{↩ -p1235 for░$received_for}} +p1235 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1235 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1235 ␉}}(Exim░$version_number)↩ +p1235 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1235 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1235 ␉for░$received_for}} p1235 ╰─────result: Received:░from░[127.0.0.1]░(helo=test.ex)↩ -p1235 by░myhost.test.ex░with░smtp░(Exim░x.yz)↩ -p1235 (envelope-from░)↩ -p1235 id░10HmaX-000000005vi-0000↩ -p1235 for░dest_1@test.ex +p1235 ␉by░myhost.test.ex░with░smtp░(Exim░x.yz)↩ +p1235 ␉(envelope-from░)↩ +p1235 ␉id░10HmaX-000000005vi-0000↩ +p1235 ␉for░dest_1@test.ex p1235 ╰──(tainted) p1235 try option acl_smtp_dkim -p1235 try option acl_smtp_mime p1235 try option acl_smtp_data p1235 ╭considering: ${tod_full} p1235 ├───expanded: ${tod_full} @@ -544,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 @@ -609,352 +612,351 @@ p1236 ├───expanded: ${tod_full} p1236 ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000 p1236 try option received_header_text p1236 ╭considering: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ -p1236 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: Received:░ p1236 ├considering: ${if░def:sender_rcvhost░{from░$sender_rcvhost↩ -p1236 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──condition: def:sender_rcvhost p1236 ├─────result: true p1236 ╭considering: from░$sender_rcvhost↩ -p1236 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: from░ p1236 ├considering: $sender_rcvhost↩ -p1236 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──────value: [127.0.0.1]░(helo=test.ex) p1236 ╰──(tainted) p1236 ├considering: ↩ -p1236 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: ↩ -p1236 +p1236 ␉ p1236 ├considering: }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───expanded: from░$sender_rcvhost↩ -p1236 +p1236 ␉ p1236 ╰─────result: from░[127.0.0.1]░(helo=test.ex)↩ -p1236 +p1236 ␉ p1236 ╰──(tainted) p1236 ╭───scanning: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──condition: def:sender_ident p1236 ├─────result: false p1236 ╭───scanning: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: from░ p1236 ├───scanning: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ╎╭───scanning: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 ╎ }}(Exim░$version_number)↩ -p1236 ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 ╎ }}id░$message_exim_id${if░def:received_for░{↩ -p1236 ╎ for░$received_for}} +p1236 ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ╎␉}}(Exim░$version_number)↩ +p1236 ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ╎␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ╎␉for░$received_for}} p1236 ╎├──────value: p1236 ╎├───scanning: }░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 ╎ }}(Exim░$version_number)↩ -p1236 ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 ╎ }}id░$message_exim_id${if░def:received_for░{↩ -p1236 ╎ for░$received_for}} +p1236 ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ╎␉}}(Exim░$version_number)↩ +p1236 ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ╎␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ╎␉for░$received_for}} p1236 ╎├───expanded: $sender_ident p1236 ╎├─────result: ◀skipped▶ p1236 ╎╰───skipping: result is not used p1236 ├───scanning: ░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: ░ p1236 ├───scanning: }}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───expanded: from░${quote_local_part:$sender_ident}░ p1236 ├─────result: ◀skipped▶ p1236 ╰───skipping: result is not used p1236 ├───item-res: p1236 ├───scanning: ${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──condition: def:sender_helo_name p1236 ├─────result: false p1236 ╭───scanning: (helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: (helo= p1236 ├───scanning: $sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──────value: p1236 ├───scanning: )↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: )↩ -p1236 +p1236 ␉ p1236 ├───scanning: }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───expanded: (helo=$sender_helo_name)↩ -p1236 +p1236 ␉ p1236 ├─────result: ◀skipped▶ p1236 ╰───skipping: result is not used p1236 ├───item-res: p1236 ├───scanning: }}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───expanded: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }} +p1236 ␉}} p1236 ├─────result: ◀skipped▶ p1236 ╰───skipping: result is not used p1236 ├───item-res: from░[127.0.0.1]░(helo=test.ex)↩ -p1236 +p1236 ␉ p1236 ╰──(tainted) p1236 ├considering: by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: by░ p1236 ├considering: $primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──────value: myhost.test.ex p1236 ├considering: ░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: ░ p1236 ├considering: ${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──condition: def:received_protocol p1236 ├─────result: true p1236 ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: with░ p1236 ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──────value: smtp p1236 ├considering: ░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: ░ p1236 ├considering: }}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───expanded: with░$received_protocol░ p1236 ╰─────result: with░smtp░ p1236 ├───item-res: with░smtp░ p1236 ╰──(tainted) p1236 ├considering: ${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───expanded: ░($tls_in_ver) p1236 ├─────result: ◀skipped▶ p1236 ╰───skipping: result is not used p1236 ├───item-res: p1236 ╰──(tainted) p1236 ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──condition: def:tls_in_cipher_std p1236 ├─────result: false p1236 ╭───scanning: ░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: ░tls░ p1236 ├───scanning: $tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──────value: p1236 ├───scanning: ↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: ↩ -p1236 +p1236 ␉ p1236 ├───scanning: }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───expanded: ░tls░$tls_in_cipher_std↩ -p1236 +p1236 ␉ p1236 ├─────result: ◀skipped▶ p1236 ╰───skipping: result is not used p1236 ├───item-res: p1236 ╰──(tainted) p1236 ├considering: (Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: (Exim░ p1236 ├considering: $version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──────value: x.yz p1236 ├considering: )↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: )↩ -p1236 +p1236 ␉ p1236 ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──condition: def:sender_address p1236 ├─────result: true p1236 ╭considering: (envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: (envelope-from░< p1236 ├considering: $sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├──────value: CALLER@test.ex p1236 ╰──(tainted) p1236 ├considering: >)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ├───────text: >)↩ -p1236 +p1236 ␉ p1236 ├considering: }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉for░$received_for}} p1236 ├───expanded: (envelope-from░<$sender_address>)↩ -p1236 +p1236 ␉ p1236 ╰─────result: (envelope-from░)↩ -p1236 +p1236 ␉ p1236 ╰──(tainted) p1236 ├───item-res: (envelope-from░)↩ -p1236 +p1236 ␉ p1236 ╰──(tainted) p1236 ├considering: id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉for░$received_for}} p1236 ├───────text: id░ p1236 ├considering: $message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉for░$received_for}} p1236 ├──────value: 10HmaY-000000005vi-0000 p1236 ├considering: ${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉for░$received_for}} p1236 ├──condition: def:received_for p1236 ├─────result: true p1236 ╭considering: ↩ -p1236 for░$received_for}} +p1236 ␉for░$received_for}} p1236 ├───────text: ↩ -p1236 for░ +p1236 ␉for░ p1236 ├considering: $received_for}} p1236 ├──────value: dest_2@test.ex p1236 ╰──(tainted) p1236 ├considering: }} p1236 ├───expanded: ↩ -p1236 for░$received_for +p1236 ␉for░$received_for p1236 ╰─────result: ↩ -p1236 for░dest_2@test.ex +p1236 ␉for░dest_2@test.ex p1236 ╰──(tainted) p1236 ├───item-res: ↩ -p1236 for░dest_2@test.ex +p1236 ␉for░dest_2@test.ex p1236 ╰──(tainted) p1236 ├───expanded: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ -p1236 }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ -p1236 }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ -p1236 }}(Exim░$version_number)↩ -p1236 ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ -p1236 }}id░$message_exim_id${if░def:received_for░{↩ -p1236 for░$received_for}} +p1236 ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ +p1236 ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ +p1236 ␉}}(Exim░$version_number)↩ +p1236 ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ +p1236 ␉}}id░$message_exim_id${if░def:received_for░{↩ +p1236 ␉for░$received_for}} p1236 ╰─────result: Received:░from░[127.0.0.1]░(helo=test.ex)↩ -p1236 by░myhost.test.ex░with░smtp░(Exim░x.yz)↩ -p1236 (envelope-from░)↩ -p1236 id░10HmaY-000000005vi-0000↩ -p1236 for░dest_2@test.ex +p1236 ␉by░myhost.test.ex░with░smtp░(Exim░x.yz)↩ +p1236 ␉(envelope-from░)↩ +p1236 ␉id░10HmaY-000000005vi-0000↩ +p1236 ␉for░dest_2@test.ex p1236 ╰──(tainted) p1236 try option acl_smtp_dkim -p1236 try option acl_smtp_mime p1236 try option acl_smtp_data p1236 ╭considering: ${tod_full} p1236 ├───expanded: ${tod_full} diff --git a/test/stderr/0633 b/test/stderr/0633 index 21a7f21cc..74415ceca 100644 --- a/test/stderr/0633 +++ b/test/stderr/0633 @@ -10,11 +10,11 @@ >>> list element: @ >>> list element: @[] >>> test in helo_lookup_domains? no (end of list) ->>> processing "accept" (TESTSUITE/test-config 21) +>>> processing "accept" (TESTSUITE/test-config 23) >>> accept: condition test succeeded in inline ACL >>> end of inline ACL: ACCEPT >>> using ACL "check_data" ->>> processing "accept" (TESTSUITE/test-config 15) +>>> processing "accept" (TESTSUITE/test-config 17) >>> check set acl_m0 = ${sg{${sg{${sg{aaa}{a}{bbbbbbbbbbb}}}{b}{cccccccccccc}}}{c}{ddddddddddddddddddd}} >>> = dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd **** debug string too long - truncated **** @@ -36,4 +36,2860 @@ LOG: 10HmaX-000000005vi-0000 ddddddddddddddddddddddddddddddddddddddddddddddddddd LOG: 10HmaX-000000005vi-0000 ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeaaa >>> accept: condition test succeeded in ACL "check_data" >>> end of ACL "check_data": ACCEPT -LOG: 10HmaX-000000005vi-0000 <= <> H=(test) [V4NET.0.0.0] P=smtp S=sss +LOG: 10HmaX-000000005vi-0000 <= <> H=(test) [V4NET.0.0.0] P=smtp S=sss for some@body +>>> host in hosts_connection_nolog? no (option unset) +>>> host in host_lookup? no (option unset) +>>> host in host_reject_connection? no (option unset) +>>> host in sender_unqualified_hosts? no (option unset) +>>> host in recipient_unqualified_hosts? no (option unset) +>>> host in helo_verify_hosts? no (option unset) +>>> host in helo_try_verify_hosts? no (option unset) +>>> host in helo_accept_junk_hosts? no (option unset) +>>> test in helo_lookup_domains? +>>> list element: @ +>>> list element: @[] +>>> test in helo_lookup_domains? no (end of list) +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> processing "accept" (TESTSUITE/test-config 23) +>>> accept: condition test succeeded in inline ACL +>>> end of inline ACL: ACCEPT +>>> using ACL "check_data" +>>> processing "accept" (TESTSUITE/test-config 17) +>>> check set acl_m0 = ${sg{${sg{${sg{aaa}{a}{bbbbbbbbbbb}}}{b}{cccccccccccc}}}{c}{ddddddddddddddddddd}} +>>> = dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +**** debug string too long - truncated **** +>>> check logwrite = ${acl_m0}eeeeeeeeeeeeeee +>>> = dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +**** debug string too long - truncated **** +LOG: 10HmaY-000000005vi-0000 ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeee +>>> check logwrite = ${acl_m0}eeeeeeeeeeeeeeea +>>> = dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +**** debug string too long - truncated **** +LOG: 10HmaY-000000005vi-0000 ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeea +>>> check logwrite = ${acl_m0}eeeeeeeeeeeeeeeaa +>>> = dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +**** debug string too long - truncated **** +LOG: 10HmaY-000000005vi-0000 ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeaa +>>> check logwrite = ${acl_m0}eeeeeeeeeeeeeeeaaa +>>> = dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +**** debug string too long - truncated **** +LOG: 10HmaY-000000005vi-0000 ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeaaa +>>> accept: condition test succeeded in ACL "check_data" +>>> end of ACL "check_data": ACCEPT +LOG: 10HmaY-000000005vi-0000 <= <> H=(test) [V4NET.0.0.0] P=smtp S=sss for some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body some@body som diff --git a/test/stderr/0909 b/test/stderr/0909 index 4d744afd0..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@test.ex) -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@test.ex) -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@test.ex) -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 @@ -189,7 +195,7 @@ ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL SMTP<< 221 Closing connection SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT+:QUIT+:250:250:451:221' -added retry item for T:127.0.0.1:127.0.0.1:PORT_D:10HmaZ-000000005vi-0000: errno=-46 more_errno=dd,A flags=6 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D:10HmaZ-000000005vi-0000: errno=-46 more_errno=dd,A flags=6 all IP addresses skipped or deferred at least one address Leaving send_to_server transport LOG: MAIN @@ -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@test.ex) -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@test.ex) -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 @@ -329,7 +339,7 @@ ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL SMTP(closed)<< SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT+:QUIT+:250:250' -added retry item for T:127.0.0.1:127.0.0.1:PORT_D:10HmbB-000000005vi-0000: errno=-18 more_errno=dd,A flags=6 +added retry item for T:[127.0.0.1]:127.0.0.1:PORT_D:10HmbB-000000005vi-0000: errno=-18 more_errno=dd,A flags=6 all IP addresses skipped or deferred at least one address Leaving send_to_server transport LOG: MAIN diff --git a/test/stderr/1000 b/test/stderr/1000 index f1a1de6a4..4d20918e4 100644 --- a/test/stderr/1000 +++ b/test/stderr/1000 @@ -14,18 +14,23 @@ >>> list element: 2001:ab8:37f:20:0:0:0:1 >>> host in "<; 2001:ab8:37f:20:0:0:0:1 ; v6.test.ex"? yes (matched "2001:ab8:37f:20:0:0:0:1") >>> warn: condition test succeeded in ACL "check_connect" -LOG: H=[2001:0ab8:037f:0020:0000:0000:0000:0001] Warning: matched hostlist +LOG: H=[2001:ab8:37f:20::1] Warning: matched hostlist >>> processing "accept" (TESTSUITE/test-config 24) >>> check condition = ${if eq{$sender_host_address}{2001:0ab8:037f:0020:0000:0000:0000:0001}} ->>> = true ->>> accept: condition test succeeded in ACL "check_connect" ->>> end of ACL "check_connect": ACCEPT +>>> = +>>> accept: condition test failed in ACL "check_connect" +>>> end of ACL "check_connect": implicit DENY +LOG: H=[2001:ab8:37f:20::1] rejected connection in "connect" ACL >>> host in hosts_connection_nolog? no (option unset) >>> host in host_lookup? >>> list element: * >>> host in host_lookup? yes (matched "*") ->>> looking up host name for V6NET:1234:0005:0006:0007:0008:0abc:000d +>>> looking up host name for V6NET:1234:5:6:7:8:abc:d >>> IP address lookup yielded "test3.ipv6.test.ex" +>>> check dnssec require list +>>> test3.ipv6.test.ex not in empty list (option unset? cannot trace name) +>>> check dnssec request list +>>> 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) @@ -51,7 +56,7 @@ MUNGED: ::1 will be omitted in what follows >>> = >>> accept: condition test failed in ACL "check_connect" >>> end of ACL "check_connect": implicit DENY -LOG: H=test3.ipv6.test.ex [V6NET:1234:0005:0006:0007:0008:0abc:000d] rejected connection in "connect" ACL +LOG: H=test3.ipv6.test.ex [V6NET:1234:5:6:7:8:abc:d] rejected connection in "connect" ACL >>> host in hosts_connection_nolog? no (option unset) >>> host in host_lookup? no (option unset) >>> host in host_reject_connection? no (option unset) @@ -72,10 +77,10 @@ MUNGED: ::1 will be omitted in what follows >>> name=v6.test.ex address=V6NET:ffff:836f:a00:a:800:200a:c032 >>> host in "<; 2001:ab8:37f:20:0:0:0:1 ; v6.test.ex"? yes (matched "v6.test.ex") >>> warn: condition test succeeded in ACL "check_connect" -LOG: H=[V6NET:ffff:836f:0a00:000a:0800:200a:c032] Warning: matched hostlist +LOG: H=[V6NET:ffff:836f:a00:a:800:200a:c032] Warning: matched hostlist >>> processing "accept" (TESTSUITE/test-config 24) >>> check condition = ${if eq{$sender_host_address}{2001:0ab8:037f:0020:0000:0000:0000:0001}} >>> = >>> accept: condition test failed in ACL "check_connect" >>> end of ACL "check_connect": implicit DENY -LOG: H=[V6NET:ffff:836f:0a00:000a:0800:200a:c032] rejected connection in "connect" ACL +LOG: H=[V6NET:ffff:836f:a00:a:800:200a:c032] rejected connection in "connect" ACL diff --git a/test/stderr/1002 b/test/stderr/1002 index cd8cae71f..7dba773b5 100644 --- a/test/stderr/1002 +++ b/test/stderr/1002 @@ -28,6 +28,8 @@ >>> check domains = <+ @mx_any/ignore=<;127.0.0.1;::1 >>> mxt11a.test.ex in "<+ @mx_any/ignore=<;127.0.0.1;::1"? >>> list element: @mx_any/ignore=<;127.0.0.1;::1 +>>> check dnssec require list +>>> check dnssec request list >>> ::1 in "<;127.0.0.1;::1"? >>> list element: 127.0.0.1 >>> list element: ::1 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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@test.ex 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..8435a4052 100644 --- a/test/stderr/2201 +++ b/test/stderr/2201 @@ -21,15 +21,15 @@ routing test.ex@test.ex --------> r0 router <-------- local_part=test.ex domain=test.ex checking senders -CALLER@myhost.test.ex in "a@shorthost.test.ex"? +CALLER@myhost.test.ex in senders? list element: a@shorthost.test.ex address match test: subject=CALLER@myhost.test.ex pattern=a@shorthost.test.ex -CALLER@myhost.test.ex in "a@shorthost.test.ex"? no (end of list) +CALLER@myhost.test.ex 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" @@ -40,13 +40,13 @@ test.ex in "dnsdb;test.ex"? database lookup required for test.ex (tainted) dnsdb key: test.ex -DNS lookup of test.ex (TXT) using fakens -DNS lookup of test.ex (TXT) succeeded + 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@test.ex domain = test.ex @@ -78,15 +78,15 @@ routing unknown@test.ex --------> r0 router <-------- local_part=unknown domain=test.ex checking senders -CALLER@myhost.test.ex in "a@shorthost.test.ex"? +CALLER@myhost.test.ex in senders? list element: a@shorthost.test.ex address match test: subject=CALLER@myhost.test.ex pattern=a@shorthost.test.ex -CALLER@myhost.test.ex in "a@shorthost.test.ex"? no (end of list) +CALLER@myhost.test.ex 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 @@ -111,19 +111,19 @@ unknown in "dnsdb;unknown"? database lookup required for unknown (tainted) dnsdb key: unknown -DNS lookup of unknown (TXT) using fakens -DNS lookup of unknown (TXT) gave HOST_NOT_FOUND -returning DNS_NOMATCH -faking res_search(TXT) response length as 65535 - writing neg-cache entry for unknown-TXT-xxxx, ttl 3000 + DNS lookup of unknown (TXT) using fakens + DNS lookup of unknown (TXT) gave HOST_NOT_FOUND + returning DNS_NOMATCH + faking res_search(TXT) response length as 65535 + writing neg-cache entry for unknown-TXT-4900041, 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@myhost.test.ex in "dnsdb;A=myhost.test.ex"? +CALLER@myhost.test.ex in senders? list element: dnsdb;A=myhost.test.ex address match test: subject=CALLER@myhost.test.ex pattern=dnsdb;A=myhost.test.ex search_open: dnsdb "NULL" @@ -148,11 +148,11 @@ CALLER@myhost.test.ex in "dnsdb;A=myhost.test.ex"? type=dnsdb key="A=myhost.test.ex" opts=NULL database lookup required for A=myhost.test.ex dnsdb key: myhost.test.ex -DNS lookup of myhost.test.ex (A) using fakens -DNS lookup of myhost.test.ex (A) succeeded + 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@myhost.test.ex in "dnsdb;A=myhost.test.ex"? yes (matched "dnsdb;A=myhost.test.ex") + CALLER@myhost.test.ex in senders? yes (matched "dnsdb;A=myhost.test.ex") calling r2 router r2 router called for unknown@test.ex 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..b49cf18fe 100644 --- a/test/stderr/2202 +++ b/test/stderr/2202 @@ -48,15 +48,15 @@ check hosts = +ignore_unknown : *.$sender_address_domain : $sender_address_domai database lookup required for >:defer_never,mxh=cioce.test.again.dns (tainted) dnsdb key: cioce.test.again.dns -DNS lookup of cioce.test.again.dns (MX) using fakens -DNS lookup of cioce.test.again.dns (MX) gave TRY_AGAIN + DNS lookup of cioce.test.again.dns (MX) using fakens + DNS lookup of cioce.test.again.dns (MX) gave TRY_AGAIN cioce.test.again.dns in dns_again_means_nonexist? list element: * cioce.test.again.dns in dns_again_means_nonexist? yes (matched "*") -cioce.test.again.dns is in dns_again_means_nonexist: returning DNS_NOMATCH -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for cioce.test.again.dns-MX-xxxx, ttl -1 + cioce.test.again.dns is in dns_again_means_nonexist: returning DNS_NOMATCH + DNS: couldn't fake dnsa len + DNS: no SOA record found for neg-TTL + writing neg-cache entry for cioce.test.again.dns-MX-4900041, ttl -1 creating new cache entry lookup failed host in "+ignore_unknown : *.cioce.test.again.dns : cioce.test.again.dns : "? @@ -64,13 +64,17 @@ host in "+ignore_unknown : *.cioce.test.again.dns : cioce.test.again.dns : "? list element: *.cioce.test.again.dns sender host name required, to match against *.cioce.test.again.dns 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 + 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" -DNS lookup of the.local.host.name (A) using fakens -DNS lookup of the.local.host.name (A) succeeded + check dnssec require list + the.local.host.name not in empty list (option unset? cannot trace name) + check dnssec request list + 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 -the.local.host.name ip4.ip4.ip4.ip4 mx=-1 sort=xx + the.local.host.name ip4.ip4.ip4.ip4 mx=-1 sort=xx checking addresses for the.local.host.name Forward DNS security status: unverified ip4.ip4.ip4.ip4 OK @@ -78,15 +82,15 @@ sender_fullhost = the.local.host.name (test) [ip4.ip4.ip4.ip4] sender_rcvhost = the.local.host.name ([ip4.ip4.ip4.ip4] helo=test) list element: cioce.test.again.dns using host_fake_gethostbyname for cioce.test.again.dns (IPv4) -DNS lookup of cioce.test.again.dns (A) using fakens -DNS lookup of cioce.test.again.dns (A) gave TRY_AGAIN + DNS lookup of cioce.test.again.dns (A) using fakens + DNS lookup of cioce.test.again.dns (A) gave TRY_AGAIN cioce.test.again.dns in dns_again_means_nonexist? list element: * cioce.test.again.dns in dns_again_means_nonexist? yes (matched "*") -cioce.test.again.dns is in dns_again_means_nonexist: returning DNS_NOMATCH -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for cioce.test.again.dns-A-xxxx, ttl -1 + cioce.test.again.dns is in dns_again_means_nonexist: returning DNS_NOMATCH + DNS: couldn't fake dnsa len + DNS: no SOA record found for neg-TTL + writing neg-cache entry for cioce.test.again.dns-A-49000c1, ttl -1 host_fake_gethostbyname(af=inet) returned 1 (HOST_NOT_FOUND) no IP address found for host cioce.test.again.dns (during SMTP connection from the.local.host.name (test) [ip4.ip4.ip4.ip4]) LOG: host_lookup_failed MAIN @@ -140,27 +144,31 @@ test.again.dns in "+try_again_dns_list"? start sublist try_again_dns_list test.again.dns in "@mx_any"? ╎list element: @mx_any -DNS lookup of test.again.dns (MX) using fakens -DNS lookup of test.again.dns (MX) gave TRY_AGAIN + ╎check dnssec require list + ╎check dnssec request list + ╎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? ╎ list element: !+try_again_dns_list ╎ start sublist try_again_dns_list ╎ test.again.dns in "@mx_any"? ╎ ╎list element: @mx_any -DNS lookup of test.again.dns (MX) using fakens -DNS lookup of test.again.dns (MX) gave TRY_AGAIN + ╎ ╎check dnssec require list + ╎ ╎check dnssec request list + ╎ ╎DNS lookup of test.again.dns (MX) using fakens + ╎ ╎DNS lookup of test.again.dns (MX) gave TRY_AGAIN LOG: MAIN PANIC dns_again_means_nonexist recursion seen for test.again.dns (assuming nonexist) -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for test.again.dns-MX-xxxx, ttl -1 + ╎ ╎DNS: couldn't fake dnsa len + ╎ ╎DNS: no SOA record found for neg-TTL + ╎ ╎ writing neg-cache entry for test.again.dns-MX-4100041, ttl -1 ╎ test.again.dns in "@mx_any"? no (end of list) ╎ end sublist try_again_dns_list ╎test.again.dns in dns_again_means_nonexist? yes (end of list) -test.again.dns is in dns_again_means_nonexist: returning DNS_NOMATCH -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - update neg-cache entry for test.again.dns-MX-xxxx, ttl -1 + ╎test.again.dns is in dns_again_means_nonexist: returning DNS_NOMATCH + ╎DNS: couldn't fake dnsa len + ╎DNS: no SOA record found for neg-TTL + ╎ update neg-cache entry for test.again.dns-MX-4100041, ttl -1 test.again.dns in "@mx_any"? no (end of list) end sublist try_again_dns_list test.again.dns in "+try_again_dns_list"? no (end of list) diff --git a/test/stderr/2600 b/test/stderr/2600 index 917ead58f..ae1208ca6 100644 --- a/test/stderr/2600 +++ b/test/stderr/2600 @@ -110,7 +110,7 @@ dropping to exim gid; retaining priv uid file lookup required for select * from them where id='tab'; in TESTSUITE/aux-fixed/sqlitedb creating new cache entry - lookup yielded: name="x x"░id=tab░ + lookup yielded: name="x␉x"░id=tab░ search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" cached open search_find: file="TESTSUITE/aux-fixed/sqlitedb" @@ -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 a32994c26..6f244223d 100644 --- a/test/stderr/2620 +++ b/test/stderr/2620 @@ -98,7 +98,7 @@ dropping to exim gid; retaining priv uid PostgreSQL query: "select * from them where id='newline';" opts 'NULL' PGSQL using cached connection for localhost:PORT_N/test/CALLER creating new cache entry - lookup yielded: name="before ↩ + lookup yielded: name="before␍↩ after"░id=newline░ search_open: pgsql "NULL" cached open @@ -111,7 +111,7 @@ dropping to exim gid; retaining priv uid PostgreSQL query: "select * from them where id='tab';" opts 'NULL' PGSQL using cached connection for localhost:PORT_N/test/CALLER creating new cache entry - lookup yielded: name="x x"░id=tab░ + lookup yielded: name="x␉x"░id=tab░ search_open: pgsql "NULL" cached open search_find: file="NULL" @@ -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= 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= 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= 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= temporarily rejected RCPT : testdb lookup forced DEFER @@ -172,21 +189,27 @@ LOG: H=(remote.host) [V4NET.0.0.1] F= 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= 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= temporarily rejected RCPT : 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@test.ex --------> 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..ef339abf6 100644 --- a/test/stderr/3211 +++ b/test/stderr/3211 @@ -19,10 +19,14 @@ >>> calling skipped router >>> skipped router declined for userx@test.again.dns >>> calling temp router ->>> test.again.dns in "*"? ->>> list element: * ->>> test.again.dns in "*"? yes (matched "*") +>>> check dnssec require list +>>> test.again.dns in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> test.again.dns in dnssec_request_domains? +>>> list element: * +>>> 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@test.again.dns >>> message: host lookup did not complete >>> ----------- end verify ------------ @@ -45,14 +49,18 @@ LOG: H=(test) [1.2.3.4] F= temporarily rejected RCPT >> check verify = recipient >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing r1-userx@test.again.dns ->>> 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 "*"? ->>> list element: * ->>> test.again.dns in "*"? yes (matched "*") +>>> check dnssec require list +>>> test.again.dns in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> test.again.dns in dnssec_request_domains? +>>> list element: * +>>> 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@test.again.dns >>> 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 ->>> 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 ->>> 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@test.ex: 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= 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 = * @@ -239,9 +270,12 @@ LOG: H=(test.host) [10.0.0.1] F= rejected RCPT >> 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= 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 = * @@ -279,29 +316,35 @@ LOG: H=(test.host) [10.0.0.1] F= rejected RCPT >> 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= 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= A=mylogin rejected RCPT >>> end of ACL "check_vrfy": ACCEPT >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing userx@test.ex ->>> 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= 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= A=mylogin rejected RCPT >>> end of ACL "check_expn": ACCEPT >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing list@test.ex ->>> 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= rejected RCPT >> 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= rejected RCPT >> 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@myhost.test.ex 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@myhost.test.ex 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@myhost.test.ex 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@exim.test.ex H=(exim.test.ex) [V4NET. >>> routing userx@exim.test.ex >>> calling system_aliases router >>> system_aliases router declined for userx@exim.test.ex ->>> 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@exim.test.ex 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@some.domain 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: 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/5005 b/test/stderr/5005 index d9041e69f..db4429ef0 100644 --- a/test/stderr/5005 +++ b/test/stderr/5005 @@ -124,7 +124,7 @@ appendfile: mode=600 notify_comsat=0 quota=500 warning=0 message_prefix=null message_suffix=null maildir_use_size_file=yes -de-tainting path 'TESTSUITE/test-mail/nofile' +below-home: de-tainting path 'TESTSUITE/test-mail/nofile' ensuring maildir directories exist in TESTSUITE/test-mail/nofile created directory TESTSUITE/test-mail/nofile created directory TESTSUITE/test-mail/nofile/tmp @@ -314,7 +314,7 @@ appendfile: mode=600 notify_comsat=0 quota=500 warning=0 message_prefix=null message_suffix=null maildir_use_size_file=yes -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' ensuring maildir directories exist in TESTSUITE/test-mail/userx created directory TESTSUITE/test-mail/userx/tmp created directory TESTSUITE/test-mail/userx/new @@ -506,7 +506,7 @@ appendfile: mode=600 notify_comsat=0 quota=500 warning=0 message_prefix=null message_suffix=null maildir_use_size_file=yes -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' ensuring maildir directories exist in TESTSUITE/test-mail/userx compiling RE '^(?:cur|new|\..*)$' using regex for maildir directory selection: ^(?:cur|new|\..*)$ @@ -716,7 +716,7 @@ appendfile: mode=600 notify_comsat=0 quota=500 warning=0 message_prefix=null message_suffix=null maildir_use_size_file=yes -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' ensuring maildir directories exist in TESTSUITE/test-mail/userx compiling RE '^(?:cur|new|\..*)$' using regex for maildir directory selection: ^(?:cur|new|\..*)$ diff --git a/test/stderr/5006 b/test/stderr/5006 index 864a726f5..a1c80c1a9 100644 --- a/test/stderr/5006 +++ b/test/stderr/5006 @@ -124,7 +124,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=50% message_prefix=null message_suffix=null maildir_use_size_file=yes -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' ensuring maildir directories exist in TESTSUITE/test-mail/userx created directory TESTSUITE/test-mail/userx created directory TESTSUITE/test-mail/userx/tmp diff --git a/test/stderr/5008 b/test/stderr/5008 index 648ebd046..a89631236 100644 --- a/test/stderr/5008 +++ b/test/stderr/5008 @@ -17,7 +17,7 @@ appendfile: mode=600 notify_comsat=0 quota=1048576 warning=0 message_prefix=null message_suffix=null maildir_use_size_file=no -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' ensuring maildir directories exist in TESTSUITE/test-mail/userx created directory TESTSUITE/test-mail/userx created directory TESTSUITE/test-mail/userx/tmp @@ -57,7 +57,7 @@ appendfile: mode=600 notify_comsat=0 quota=1048576 warning=0 message_prefix=null message_suffix=null maildir_use_size_file=no -de-tainting path 'TESTSUITE/test-mail/userx' +below-home: de-tainting path 'TESTSUITE/test-mail/userx' ensuring maildir directories exist in TESTSUITE/test-mail/userx quota checks on directory TESTSUITE/test-mail/userx MUNGED: the check_dir_size lines have been sorted to ensure consistency 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)"@some.host --------> b router <-------- local_part=decline cannot route this one (decline) domain=some.host checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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)"@some.host: domain = some.host requires uid=EXIM_UID gid=EXIM_GID current_directory=/ @@ -30,10 +34,14 @@ routing "FAIL cannot route this one (FAIL)"@some.host --------> b router <-------- local_part=fail cannot route this one (fail) domain=some.host checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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)"@some.host: domain = some.host requires uid=EXIM_UID gid=EXIM_GID current_directory=/ @@ -49,10 +57,14 @@ routing "ERROR cannot route this one (ERROR)"@some.host --------> b router <-------- local_part=error cannot route this one (error) domain=some.host checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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)"@some.host: domain = some.host requires uid=EXIM_UID gid=EXIM_GID current_directory=/ @@ -71,10 +83,14 @@ routing "DEFER cannot route this one (DEFER)"@some.host --------> b router <-------- local_part=defer cannot route this one (defer) domain=some.host checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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)"@some.host: 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"@some.host --------> 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@myhost.test.ex 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"@some.host: domain = some.host requires uid=EXIM_UID gid=EXIM_GID current_directory=/ @@ -119,10 +139,14 @@ routing PASS@some.host --------> b router <-------- local_part=pass domain=some.host checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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@some.host: domain = some.host requires uid=EXIM_UID gid=EXIM_GID current_directory=/ @@ -131,6 +155,7 @@ q router passed for PASS@some.host --------> 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@some.host domain = some.host @@ -159,10 +184,14 @@ routing "FREEZE cannot route this one (FREEZE)"@some.host --------> b router <-------- local_part=freeze cannot route this one (freeze) domain=some.host checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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)"@some.host: domain = some.host requires uid=EXIM_UID gid=EXIM_GID current_directory=/ @@ -179,10 +208,14 @@ routing "REDIRECT postmaster@test.ex"@some.host --------> b router <-------- local_part=redirect postmaster@test.ex domain=some.host checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex in senders? no (end of list) b router skipped: senders mismatch --------> q router <-------- local_part=REDIRECT postmaster@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 "REDIRECT postmaster@test.ex"@some.host: domain = some.host requires uid=EXIM_UID gid=EXIM_GID current_directory=/ @@ -201,6 +234,8 @@ routing postmaster@test.ex --------> b router <-------- local_part=postmaster domain=test.ex checking senders +myhost.test.ex in ""? no (end of list) +CALLER@myhost.test.ex 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)"@some.host --------> 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)"@some.host: 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@domain.com >>> check verify = recipient/callout=use_sender >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing verify@domain.com ->>> 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 876846e0d..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 @@ -288,354 +289,353 @@ try option message_id_header_text ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000 try option received_header_text ╭considering: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: Received:░ ├considering: ${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░$sender_rcvhost↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ╭considering: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├──────value: CALLER ╎├considering: }░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├───expanded: $sender_ident ╎╰─────result: CALLER ├─────op-res: CALLER ├considering: ░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░${quote_local_part:$sender_ident}░ ╰─────result: from░CALLER░ ├───item-res: from░CALLER░ ├considering: ${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (helo= ├considering: $sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: myhost.test.ex ╰──(tainted) ├considering: )↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: (helo=$sender_helo_name)↩ - + ␉ ╰─────result: (helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├───item-res: (helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├considering: }}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }} + ␉}} ╰─────result: from░CALLER░(helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├───item-res: from░CALLER░(helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├considering: by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: by░ ├considering: $primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: myhost.test.ex ├considering: ░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: ${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: local-esmtp ├considering: ░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: with░$received_protocol░ ╰─────result: with░local-esmtp░ ├───item-res: with░local-esmtp░ ╰──(tainted) ├considering: ${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░($tls_in_ver) ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ╰──(tainted) ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░tls░$tls_in_cipher_std↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ╰──(tainted) ├considering: (Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (Exim░ ├considering: $version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: x.yz ├considering: )↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: CALLER@myhost.test.ex ├considering: >)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: >)↩ - + ␉ ├considering: }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───expanded: (envelope-from░<$sender_address>)↩ - + ␉ ╰─────result: (envelope-from░)↩ - + ␉ ├───item-res: (envelope-from░)↩ - + ␉ ╰──(tainted) ├considering: id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──────value: 10HmaX-000000005vi-0000 ├considering: ${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──condition: def:received_for ├─────result: true ╭considering: ↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: ↩ - for░ + ␉for░ ├considering: $received_for}} ├──────value: userx@domain.com ╰──(tainted) ├considering: }} ├───expanded: ↩ - for░$received_for + ␉for░$received_for ╰─────result: ↩ - for░userx@domain.com + ␉for░userx@domain.com ╰──(tainted) ├───item-res: ↩ - for░userx@domain.com + ␉for░userx@domain.com ╰──(tainted) ├───expanded: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╰─────result: Received:░from░CALLER░(helo=myhost.test.ex)↩ - by░myhost.test.ex░with░local-esmtp░(Exim░x.yz)↩ - (envelope-from░)↩ - id░10HmaX-000000005vi-0000↩ - for░userx@domain.com + ␉by░myhost.test.ex░with░local-esmtp░(Exim░x.yz)↩ + ␉(envelope-from░)↩ + ␉id░10HmaX-000000005vi-0000↩ + ␉for░userx@domain.com ╰──(tainted) ----------- 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 @@ -897,354 +898,353 @@ try option message_id_header_text ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000 try option received_header_text ╭considering: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: Received:░ ├considering: ${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░$sender_rcvhost↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ╭considering: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├──────value: CALLER ╎├considering: }░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├───expanded: $sender_ident ╎╰─────result: CALLER ├─────op-res: CALLER ├considering: ░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░${quote_local_part:$sender_ident}░ ╰─────result: from░CALLER░ ├───item-res: from░CALLER░ ├considering: ${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (helo= ├considering: $sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: myhost.test.ex ╰──(tainted) ├considering: )↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: (helo=$sender_helo_name)↩ - + ␉ ╰─────result: (helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├───item-res: (helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├considering: }}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }} + ␉}} ╰─────result: from░CALLER░(helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├───item-res: from░CALLER░(helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├considering: by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: by░ ├considering: $primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: myhost.test.ex ├considering: ░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: ${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: local-esmtp ├considering: ░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: with░$received_protocol░ ╰─────result: with░local-esmtp░ ├───item-res: with░local-esmtp░ ╰──(tainted) ├considering: ${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░($tls_in_ver) ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ╰──(tainted) ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░tls░$tls_in_cipher_std↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ╰──(tainted) ├considering: (Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (Exim░ ├considering: $version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: x.yz ├considering: )↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: CALLER@myhost.test.ex ├considering: >)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: >)↩ - + ␉ ├considering: }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───expanded: (envelope-from░<$sender_address>)↩ - + ␉ ╰─────result: (envelope-from░)↩ - + ␉ ├───item-res: (envelope-from░)↩ - + ␉ ╰──(tainted) ├considering: id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──────value: 10HmaZ-000000005vi-0000 ├considering: ${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──condition: def:received_for ├─────result: true ╭considering: ↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: ↩ - for░ + ␉for░ ├considering: $received_for}} ├──────value: usery@domain.com ╰──(tainted) ├considering: }} ├───expanded: ↩ - for░$received_for + ␉for░$received_for ╰─────result: ↩ - for░usery@domain.com + ␉for░usery@domain.com ╰──(tainted) ├───item-res: ↩ - for░usery@domain.com + ␉for░usery@domain.com ╰──(tainted) ├───expanded: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╰─────result: Received:░from░CALLER░(helo=myhost.test.ex)↩ - by░myhost.test.ex░with░local-esmtp░(Exim░x.yz)↩ - (envelope-from░)↩ - id░10HmaZ-000000005vi-0000↩ - for░usery@domain.com + ␉by░myhost.test.ex░with░local-esmtp░(Exim░x.yz)↩ + ␉(envelope-from░)↩ + ␉id░10HmaZ-000000005vi-0000↩ + ␉for░usery@domain.com ╰──(tainted) ----------- 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 @@ -1506,354 +1507,353 @@ try option message_id_header_text ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000 try option received_header_text ╭considering: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: Received:░ ├considering: ${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░$sender_rcvhost↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ╭considering: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├──────value: CALLER ╎├considering: }░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - ╎ }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - ╎ }}(Exim░$version_number)↩ - ╎ ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - ╎ }}id░$message_exim_id${if░def:received_for░{↩ - ╎ for░$received_for}} + ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ╎␉}}(Exim░$version_number)↩ + ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ╎␉}}id░$message_exim_id${if░def:received_for░{↩ + ╎␉for░$received_for}} ╎├───expanded: $sender_ident ╎╰─────result: CALLER ├─────op-res: CALLER ├considering: ░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: from░${quote_local_part:$sender_ident}░ ╰─────result: from░CALLER░ ├───item-res: from░CALLER░ ├considering: ${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (helo= ├considering: $sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: myhost.test.ex ╰──(tainted) ├considering: )↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: (helo=$sender_helo_name)↩ - + ␉ ╰─────result: (helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├───item-res: (helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├considering: }}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }} + ␉}} ╰─────result: from░CALLER░(helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├───item-res: from░CALLER░(helo=myhost.test.ex)↩ - + ␉ ╰──(tainted) ├considering: by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: by░ ├considering: $primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: myhost.test.ex ├considering: ░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: ${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: local-esmtp ├considering: ░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░ ├considering: }}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: with░$received_protocol░ ╰─────result: with░local-esmtp░ ├───item-res: with░local-esmtp░ ╰──(tainted) ├considering: ${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░($tls_in_ver) ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ╰──(tainted) ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: ├───scanning: ↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: ↩ - + ␉ ├───scanning: }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───expanded: ░tls░$tls_in_cipher_std↩ - + ␉ ├─────result: ◀skipped▶ ╰───skipping: result is not used ├───item-res: ╰──(tainted) ├considering: (Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (Exim░ ├considering: $version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: x.yz ├considering: )↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: )↩ - + ␉ ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├──────value: CALLER@myhost.test.ex ├considering: >)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ├───────text: >)↩ - + ␉ ├considering: }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───expanded: (envelope-from░<$sender_address>)↩ - + ␉ ╰─────result: (envelope-from░)↩ - + ␉ ├───item-res: (envelope-from░)↩ - + ␉ ╰──(tainted) ├considering: id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──────value: 10HmbB-000000005vi-0000 ├considering: ${if░def:received_for░{↩ - for░$received_for}} + ␉for░$received_for}} ├──condition: def:received_for ├─────result: true ╭considering: ↩ - for░$received_for}} + ␉for░$received_for}} ├───────text: ↩ - for░ + ␉for░ ├considering: $received_for}} ├──────value: usery@domain.com ╰──(tainted) ├considering: }} ├───expanded: ↩ - for░$received_for + ␉for░$received_for ╰─────result: ↩ - for░usery@domain.com + ␉for░usery@domain.com ╰──(tainted) ├───item-res: ↩ - for░usery@domain.com + ␉for░usery@domain.com ╰──(tainted) ├───expanded: Received:░${if░def:sender_rcvhost░{from░$sender_rcvhost↩ - }{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ - }}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ - }}(Exim░$version_number)↩ - ${if░def:sender_address░{(envelope-from░<$sender_address>)↩ - }}id░$message_exim_id${if░def:received_for░{↩ - for░$received_for}} + ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ + ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ + ␉}}(Exim░$version_number)↩ + ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ + ␉}}id░$message_exim_id${if░def:received_for░{↩ + ␉for░$received_for}} ╰─────result: Received:░from░CALLER░(helo=myhost.test.ex)↩ - by░myhost.test.ex░with░local-esmtp░(Exim░x.yz)↩ - (envelope-from░)↩ - id░10HmbB-000000005vi-0000↩ - for░usery@domain.com + ␉by░myhost.test.ex░with░local-esmtp░(Exim░x.yz)↩ + ␉(envelope-from░)↩ + ␉id░10HmbB-000000005vi-0000↩ + ␉for░usery@domain.com ╰──(tainted) ----------- 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..809092727 100644 --- a/test/stderr/5840 +++ b/test/stderr/5840 @@ -18,9 +18,12 @@ >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>> routing rcptuser@dane256ee.test.ex >>> calling client router ->>> dane256ee.test.ex in "*"? ->>> list element: * ->>> dane256ee.test.ex in "*"? yes (matched "*") +>>> check dnssec require list +>>> dane256ee.test.ex in dnssec_require_domains? no (option unset) +>>> check dnssec request list +>>> dane256ee.test.ex in dnssec_request_domains? +>>> list element: * +>>> 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 +33,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 diff --git a/test/stdout/0121 b/test/stdout/0121 index f31f368eb..16fcbe1d0 100644 --- a/test/stdout/0121 +++ b/test/stdout/0121 @@ -73,12 +73,4 @@ 250-PIPELINING 250 HELP 250 OK -250 Reset OK -250-the.local.host.name Hello foo.bar [127.0.0.1] -250-SIZE 52428800 -250-LIMITS MAILMAX=1000 RCPTMAX=50000 -250-8BITMIME -250-PIPELINING -250 HELP -250 OK 221 the.local.host.name closing connection diff --git a/test/stdout/0213 b/test/stdout/0213 index d3dd7cffc..4647ccbed 100644 --- a/test/stdout/0213 +++ b/test/stdout/0213 @@ -1,5 +1,5 @@ +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224 -19 65 H=127.0.0.1 [127.0.0.1]: Malformed SMTP reply in response to RCPT TO:: 550 The answer is no, but I am going to make sure it is a very l + T:[127.0.0.1]:127.0.0.1:PORT_S -19 65 H=127.0.0.1 [127.0.0.1]: Malformed SMTP reply in response to RCPT TO:: 550 The answer is no, but I am going to make sure it is a very l first failed = time last try = time2 next try = time2 + 3600 ******** SERVER ******** diff --git a/test/stdout/0264 b/test/stdout/0264 index 159ebfabb..a4c1fb4ff 100644 --- a/test/stdout/0264 +++ b/test/stdout/0264 @@ -1,10 +1,10 @@ +++++++++++++++++++++++++++ - T:userx@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/userx) + T:userx@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 600 +++++++++++++++++++++++++++ - T:test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/notuser) + T:test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 1200 - T:userx@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/userx) + T:userx@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 600 Message 10HmaX-000000005vi-0000 has been removed Message 10HmbA-000000005vi-0000 has been removed diff --git a/test/stdout/0343 b/test/stdout/0343 index dbcd79079..37752fc5f 100644 --- a/test/stdout/0343 +++ b/test/stdout/0343 @@ -1,6 +1,6 @@ +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1223 dd 65 Connection refused + T:[127.0.0.1]:127.0.0.1:1223 dd 65 Connection refused first failed = time last try = time2 next try = time2 + 600 +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1223 dd 65 Connection refused + T:[127.0.0.1]:127.0.0.1:1223 dd 65 Connection refused first failed = time last try = time2 next try = time2 + 600 diff --git a/test/stdout/0345 b/test/stdout/0345 index 1fa2305cd..a3c51fa64 100644 --- a/test/stdout/0345 +++ b/test/stdout/0345 @@ -1,14 +1,14 @@ +++++++++++++++++++++++++++ - T:a@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/a) + T:a@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 20 -rw------- 1 CALLER CALLER 0 May 10 2002 TESTSUITE/test-mail/a +++++++++++++++++++++++++++ - T:a@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/a) + T:a@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 0 * - T:CALLER@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/CALLER) + T:CALLER@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 20 +++++++++++++++++++++++++++ - T:a@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/a) + T:a@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 0 * - T:CALLER@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/CALLER) + T:CALLER@test.ex -22 xxxx mailbox is full (MTA-imposed quota exceeded while writing to ) first failed = time last try = time2 next try = time2 + 20 diff --git a/test/stdout/0447 b/test/stdout/0447 index caecaea8a..9b4f1785d 100644 --- a/test/stdout/0447 +++ b/test/stdout/0447 @@ -4,13 +4,13 @@ Retry rule: * timeout_connect F,1d,1m; Retry rule: * timeout_A F,1d,30s; Retry rule: * timeout_connect_A F,1d,29s; +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224 dd 321 Connection timed out + T:[127.0.0.1]:127.0.0.1:PORT_S dd 321 Connection timed out first failed = time last try = time2 next try = time2 + 60 +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224 dd 321 Connection timed out + T:[127.0.0.1]:127.0.0.1:PORT_S dd 321 Connection timed out first failed = time last try = time2 next try = time2 + 30 +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224 dd 321 Connection timed out + T:[127.0.0.1]:127.0.0.1:PORT_S dd 321 Connection timed out first failed = time last try = time2 next try = time2 + 30 +++++++++++++++++++++++++++ R:xx.test.again.dns -1 0 host lookup did not complete diff --git a/test/stdout/0450 b/test/stdout/0450 index 2da7c051e..640292415 100644 --- a/test/stdout/0450 +++ b/test/stdout/0450 @@ -1,5 +1,5 @@ +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1225 dd 65 Connection refused + T:[127.0.0.1]:127.0.0.1:1225 dd 65 Connection refused first failed = time last try = time2 next try = time2 + 600 - T:127.0.0.1:127.0.0.1:1226 dd 65 Connection refused + T:[127.0.0.1]:127.0.0.1:1226 dd 65 Connection refused first failed = time last try = time2 next try = time2 + 600 diff --git a/test/stdout/0474 b/test/stdout/0474 index b4ae3cce2..4491500a7 100644 --- a/test/stdout/0474 +++ b/test/stdout/0474 @@ -1,8 +1,8 @@ +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224:10HmaX-000000005vi-0000 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after end of data: 850 NONSENSE + T:[127.0.0.1]:127.0.0.1:1224:10HmaX-000000005vi-0000 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after end of data: 850 NONSENSE first failed = time last try = time2 next try = time2 + 10 +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224:10HmaX-000000005vi-0000 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 850 RUBBISH + T:[127.0.0.1]:127.0.0.1:1224:10HmaX-000000005vi-0000 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 850 RUBBISH first failed = time last try = time2 next try = time2 + 10 +++++++++++++++++++++++++++ R:abcd@xyz: -44 12865 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 850 RUBBISH diff --git a/test/stdout/0497 b/test/stdout/0497 index ac02261ac..acba7c8db 100644 --- a/test/stdout/0497 +++ b/test/stdout/0497 @@ -1,5 +1,5 @@ +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224:10HmaX-000000005vi-0000 -45 13377 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 452 temporary error + T:[127.0.0.1]:127.0.0.1:1224:10HmaX-000000005vi-0000 -45 13377 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 452 temporary error first failed = time last try = time2 next try = time2 + 0 * +++++++++++++++++++++++++++ R:userx@x.y: -44 13377 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 452 temporary error diff --git a/test/stdout/0498 b/test/stdout/0498 index 727e2a2fb..635730dc9 100644 --- a/test/stdout/0498 +++ b/test/stdout/0498 @@ -1,5 +1,5 @@ +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224:10HmaX-000000005vi-0000 -45 12865 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 450 DELAY + T:[127.0.0.1]:127.0.0.1:1224:10HmaX-000000005vi-0000 -45 12865 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 450 DELAY first failed = time last try = time2 next try = time2 + 10 ******** SERVER ******** diff --git a/test/stdout/0572 b/test/stdout/0572 index acfa5a0cd..a7347706b 100644 --- a/test/stdout/0572 +++ b/test/stdout/0572 @@ -60,7 +60,6 @@ hosts_require_auth = hosts_try_auth = hosts_try_chunking = * hosts_try_fastopen = : -hosts_try_prdr = * interface = ip4.ip4.ip4.ip4 keepalive no_lmtp_ignore_quota diff --git a/test/stdout/0610 b/test/stdout/0610 index 48ce1dee0..5fc87bef2 100644 --- a/test/stdout/0610 +++ b/test/stdout/0610 @@ -11,9 +11,9 @@ 250 OK id=10HmaY-000000005vi-0000 221 the.local.host.name closing connection +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1225/127.0.0.1 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after initial connection: 451 Temporary local problem - please try later + T:[127.0.0.1]:127.0.0.1:1225/127.0.0.1 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after initial connection: 451 Temporary local problem - please try later first failed = time last try = time2 next try = time2 + 2 - T:127.0.0.1:127.0.0.1:1225/ip4.ip4.ip4.ip4 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after initial connection: 451 Temporary local problem - please try later + T:[127.0.0.1]:127.0.0.1:1225/ip4.ip4.ip4.ip4 0 65 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after initial connection: 451 Temporary local problem - please try later first failed = time last try = time2 next try = time2 + 2 +++++++++++++++++++++++++++ +++++++++++++++++++++++++++ diff --git a/test/stdout/0633 b/test/stdout/0633 index f7969f84f..91854d5cb 100644 --- a/test/stdout/0633 +++ b/test/stdout/0633 @@ -13,3 +13,957 @@ **** SMTP testing: that is not a real message id! 421 the.local.host.name lost input connection + +**** SMTP testing session as if from host V4NET.0.0.0 +**** but without any ident (RFC 1413) callback. +**** This is not for real! + +220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +250 the.local.host.name Hello test [V4NET.0.0.0] +250 OK +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +250 Accepted +354 Enter message, ending with "." on a line by itself +250 OK id=10HmaY-000000005vi-0000 + +**** SMTP testing: that is not a real message id! + +421 the.local.host.name lost input connection diff --git a/test/stdout/1000 b/test/stdout/1000 index b9ec648b7..00a85edfc 100644 --- a/test/stdout/1000 +++ b/test/stdout/1000 @@ -1,18 +1,17 @@ -**** SMTP testing session as if from host 2001:0ab8:037f:0020:0000:0000:0000:0001 +**** SMTP testing session as if from host 2001:ab8:37f:20::1 **** but without any ident (RFC 1413) callback. **** This is not for real! -220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 -421 myhost.test.ex lost input connection +550 Administrative prohibition -**** SMTP testing session as if from host V6NET:1234:0005:0006:0007:0008:0abc:000d +**** SMTP testing session as if from host V6NET:1234:5:6:7:8:abc:d **** but without any ident (RFC 1413) callback. **** This is not for real! 550 Administrative prohibition -**** SMTP testing session as if from host V6NET:ffff:836f:0a00:000a:0800:200a:c032 +**** SMTP testing session as if from host V6NET:ffff:836f:a00:a:800:200a:c032 **** but without any ident (RFC 1413) callback. **** This is not for real! diff --git a/test/stdout/1008 b/test/stdout/1008 index 0fb622a03..42485be93 100644 --- a/test/stdout/1008 +++ b/test/stdout/1008 @@ -1,18 +1,14 @@ +++++++++++++++++++++++++++ - T:127.0.0.1:127.0.0.1:1224:10HmaX-000000005vi-0000 -45 12865 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error + T:[127.0.0.1]:127.0.0.1:1224:10HmaX-000000005vi-0000 -45 12865 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error first failed = time last try = time2 next try = time2 + 7200 - T:::1:::1:1224:10HmaX-000000005vi-0000 -45 12865 H=::1 [::1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error + T:[::1]:[::1]:1224:10HmaX-000000005vi-0000 -45 12865 H=::1 [::1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error first failed = time last try = time2 next try = time2 + 7200 -Transport: 127.0.0.1 [127.0.0.1]:1111 10HmaX-000000005vi-0000 error -45: H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error - first failed: 07-Mar-2000 12:21:52 - last tried: 07-Mar-2000 12:21:52 - next try at: 07-Mar-2000 12:21:52 -Transport: [:1:::1:1224:10HmaX-000000005vi-0000]:1224 10HmaX-000000005vi-0000 error -45: H=::1 [::1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error +Transport: [127.0.0.1] 127.0.0.1:PORT_S 10HmaX-000000005vi-0000 error -45: H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error first failed: 07-Mar-2000 12:21:52 last tried: 07-Mar-2000 12:21:52 next try at: 07-Mar-2000 12:21:52 exinext exit code = 0 -Transport: [:1:::1:1224:10HmaX-000000005vi-0000] error -45: H=::1 [::1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error +Transport: [::1] [::1]:PORT_S 10HmaX-000000005vi-0000 error -45: H=::1 [::1]: SMTP error from remote mail server after MAIL FROM:: 450 Temporary error first failed: 07-Mar-2000 12:21:52 last tried: 07-Mar-2000 12:21:52 next try at: 07-Mar-2000 12:21:52 diff --git a/test/stdout/5708 b/test/stdout/5708 new file mode 100644 index 000000000..d2c78b4a2 --- /dev/null +++ b/test/stdout/5708 @@ -0,0 +1,71 @@ +Connecting to 127.0.0.1 port 1225 ... connected +??? 220 +<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +>>> HELO nonexistent.test.ex +??? 250 +<<< 250 myhost.test.ex Hello nonexistent.test.ex [127.0.0.1] +>>> MAIL FROM: +??? 250 +<<< 250 OK +>>> RCPT TO: +??? 550 +<<< 550 Administrative prohibition +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script +Connecting to 127.0.0.1 port 1225 ... connected +??? 220 +<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +>>> HELO badcname.test.ex +??? 250 +<<< 250 myhost.test.ex Hello badcname.test.ex [127.0.0.1] +>>> MAIL FROM: +??? 250 +<<< 250 OK +>>> RCPT TO: +??? 550 +<<< 550 Administrative prohibition +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script +Connecting to 127.0.0.1 port 1225 ... connected +??? 220 +<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +>>> HELO test.again.dns +??? 250 +<<< 250 myhost.test.ex Hello test.again.dns [127.0.0.1] +>>> MAIL FROM: +??? 250 +<<< 250 OK +>>> RCPT TO: +??? 550 +<<< 550 Administrative prohibition +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script +Connecting to 127.0.0.1 port 1225 ... connected +??? 220 +<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +>>> HELO localhost +??? 250 +<<< 250 myhost.test.ex Hello localhost [127.0.0.1] +>>> MAIL FROM: +??? 250 +<<< 250 OK +>>> RCPT TO: +??? 250 Accepted +<<< 250 Accepted +>>> DATA +??? 354 +<<< 354 Enter message, ending with "." on a line by itself +>>> Subject: test +>>> . +??? 250 +<<< 250 OK id=10HmaX-000000005vi-0000 +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script diff --git a/test/stdout/5709 b/test/stdout/5709 new file mode 100644 index 000000000..5f68af5c1 --- /dev/null +++ b/test/stdout/5709 @@ -0,0 +1,19 @@ +Connecting to 127.0.0.1 port 1225 ... connected +??? 220 +<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +>>> HELO nonexistent.test.ex +??? 250 +<<< 250 myhost.test.ex Hello nonexistent.test.ex [127.0.0.1] +>>> HELO badcname.test.ex +??? 250 +<<< 250 myhost.test.ex Hello badcname.test.ex [127.0.0.1] +>>> HELO test.again.dns +??? 250 +<<< 250 myhost.test.ex Hello test.again.dns [127.0.0.1] +>>> HELO localhost +??? 250 +<<< 250 myhost.test.ex Hello localhost [127.0.0.1] +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script