From: Jeremy Harris Date: Tue, 18 Jun 2024 08:23:51 +0000 (+0100) Subject: Fix 2-phase, in-order queue run delivery order X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/master?ds=sidebyside;hp=8a5d7421f117c332c90b94bfd6f50ca71494d705 Fix 2-phase, in-order queue run delivery order Broken-by: a39bd74d3e94 --- diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index f7ed7964a..202c27659 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -1805,6 +1805,11 @@ suited to Exim's usage model. Yet another DBM library, called &'tdb'&, is available from &url(https://sourceforge.net/projects/tdb/files/). It has its own interface, and also operates on a single file. +.next +.new +It is possible to use sqlite3 (&url(https://www.sqlite.org/index.html)) +for the DBM library. +.wen .endlist .cindex "USE_DB" @@ -1816,8 +1821,9 @@ USE_DB in an appropriate configuration file (typically .code USE_DB=yes .endd -Similarly, for gdbm you set USE_GDBM, and for tdb you set USE_TDB. An -error is diagnosed if you set more than one of these. +Similarly, for gdbm you set USE_GDBM, for tdb you set USE_TDB, +and for sqlite3 you set USE_SQLITE. +An error is diagnosed if you set more than one of these. You can set USE_NDBM if needed to override an operating system default. At the lowest level, the build-time configuration sets none of these options, @@ -1833,6 +1839,7 @@ in one of these lines: .code DBMLIB = -ldb DBMLIB = -ltdb +DBMLIB = -lsqlite3 DBMLIB = -lgdbm -lgdbm_compat .endd The last of those was for a Linux having GDBM provide emulated NDBM facilities. @@ -3101,7 +3108,7 @@ options, as appropriate. The &%-bnq%& option (see below) provides a way of suppressing this for special cases. Policy checks on the contents of local messages can be enforced by means of -the non-SMTP ACL. See chapter &<>& for details. +the non-SMTP ACL. See section &<>& for details. .cindex "return code" "for &%-bm%&" The return code is zero if the message is successfully accepted. Otherwise, the @@ -3377,7 +3384,7 @@ dots doubled), terminated by a line containing just a single dot. An error is provoked if the terminating dot is missing. A further message may then follow. As for other local message submissions, the contents of incoming batch SMTP -messages can be checked using the non-SMTP ACL (see chapter &<>&). +messages can be checked using the non-SMTP ACL (see section &<>&). Unqualified addresses are automatically qualified using &%qualify_domain%& and &%qualify_recipient%&, as appropriate, unless the &%-bnq%& option is used. @@ -4715,7 +4722,7 @@ all selected messages, not just the first; frozen messages are included when The &%-R%& option makes it straightforward to initiate delivery of all messages to a given domain after a host has been down for some time. When the SMTP -command ETRN is accepted by its ACL (see chapter &<>&), its default +command ETRN is accepted by its ACL (see section &<>&), its default effect is to run Exim with the &%-R%& option, but it can be configured to run an arbitrary command instead. @@ -6846,7 +6853,10 @@ by default, but has an option to omit them (see section &<>&). .cindex "dsearch lookup type" The given file must be an absolute directory path; this is searched for an entry whose name is the key by calling the &[lstat()]& function. -The key may not contain any forward slash characters. +.new +Unless the options (below) permit a path, +.wen +the key may not contain any forward slash characters. If &[lstat()]& succeeds then so does the lookup. .cindex "tainted data" "dsearch result" The result is regarded as untainted. @@ -6855,7 +6865,7 @@ Options for the lookup can be given by appending them after the word "dsearch", separated by a comma. Options, if present, are a comma-separated list having each element starting with a tag name and an equals. -Two options are supported, for the return value and for filtering match +Three options are supported, for the return value and for filtering match candidates. The "ret" option requests an alternate result value of the entire path for the entry. Example: @@ -6863,6 +6873,7 @@ the entire path for the entry. Example: ${lookup {passwd} dsearch,ret=full {/etc}} .endd The default result is just the requested entry. + The "filter" option requests that only directory entries of a given type are matched. The match value is one of "file", "dir" or "subdir" (the latter not matching "." or ".."). Example: @@ -6872,6 +6883,14 @@ ${lookup {passwd} dsearch,filter=file {/etc}} The default matching is for any entry type, including directories and symlinks. +The "key" option relaxes the restriction that only a simple path component can +be searched for, to permit a sequence of path components. Example: +.code +${lookup {foo/bar} dsearch,key=path {/etc}} +.endd +If this option is used, a ".." component in the key is specifically disallowed. +The default operation is that the key may only be a single path component. + An example of how this lookup can be used to support virtual domains is given in section &<>&. @@ -6901,8 +6920,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 @@ -8202,6 +8221,11 @@ or delete command), the result of the lookup is the number of rows affected. anything (for example, setting a field to the value it already has), the result is zero because no rows are affected. +.new +To get an encryted connection, use a Mysql option file with the required +parameters for the connection. +.wen + .subsection "Special PostgreSQL features" SECID74 PostgreSQL lookups can also use Unix domain socket connections to the database. @@ -9235,8 +9259,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. @@ -11567,6 +11592,19 @@ literal question mark). .cindex "&%utf8_localpart_from_alabel%& expansion item" These convert EAI mail name components between UTF-8 and a-label forms. For information on internationalisation support see &<>&. + + +.new +.vitem &*${xtextd:*&<&'string'&>&*}*& +.cindex "text forcing in strings" +.cindex "string" "xtext decoding" +.cindex "xtext" +.cindex "&%xtextd%& expansion item" +This performs xtext decoding of the string (per RFC 3461 section 4). +.wen + + + .endlist @@ -12056,7 +12094,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 @@ -14817,6 +14856,7 @@ listed in more than one group. .row &%acl_smtp_rcpt%& "ACL for RCPT" .row &%acl_smtp_starttls%& "ACL for STARTTLS" .row &%acl_smtp_vrfy%& "ACL for VRFY" +.row &%acl_smtp_wellknown%& "ACL for WELLKNOWN" .row &%av_scanner%& "specify virus scanner" .row &%check_rfc2047_length%& "check length of RFC 2047 &""encoded &&& words""&" @@ -14983,6 +15023,7 @@ See also the &'Policy controls'& section above. .row &%prdr_enable%& "advertise PRDR to all hosts" .row &%smtputf8_advertise_hosts%& "advertise SMTPUTF8 to these hosts" .row &%tls_advertise_hosts%& "advertise TLS to these hosts" +.row &%wellknown_advertise_hosts%& "advertise WELLKNOWN to these hosts" .endtable @@ -15106,7 +15147,7 @@ log_selector = +8bitmime .cindex "&ACL;" "for non-SMTP messages" .cindex "non-SMTP messages" "ACLs for" This option defines the ACL that is run when a non-SMTP message has been -read and is on the point of being accepted. See chapter &<>& for +read and is on the point of being accepted. See section &<>& for further details. .option acl_not_smtp_mime main string&!! unset @@ -15118,24 +15159,26 @@ SMTP messages. .cindex "&ACL;" "at start of non-SMTP message" .cindex "non-SMTP messages" "ACLs for" This option defines the ACL that is run before Exim starts reading a -non-SMTP message. See chapter &<>& for further details. +non-SMTP message. See section &<>& for further details. .option acl_smtp_auth main string&!! unset .cindex "&ACL;" "setting up for SMTP commands" .cindex "AUTH" "ACL for" This option defines the ACL that is run when an SMTP AUTH command is -received. See chapter &<>& for further details. +received. +See chapter &<>& for general information on ACLs, and chapter +&<>& for details of authentication. .option acl_smtp_connect main string&!! unset .cindex "&ACL;" "on SMTP connection" This option defines the ACL that is run when an SMTP connection is received. -See chapter &<>& for further details. +See section &<>& for further details. .option acl_smtp_data main string&!! unset .cindex "DATA" "ACL for" This option defines the ACL that is run after an SMTP DATA command has been processed and the message itself has been received, but before the final -acknowledgment is sent. See chapter &<>& for further details. +acknowledgment is sent. See section &<>& for further details. .option acl_smtp_data_prdr main string&!! accept .cindex "PRDR" "ACL for" @@ -15146,7 +15189,7 @@ This option defines the ACL that, if the PRDR feature has been negotiated, is run for each recipient after an SMTP DATA command has been processed and the message itself has been received, but before the -acknowledgment is sent. See chapter &<>& for further details. +acknowledgment is sent. See section &<>& for further details. .option acl_smtp_dkim main string&!! unset .cindex DKIM "ACL for" @@ -15169,7 +15212,7 @@ received. See chapter &<>& for further details. .cindex "EHLO" "ACL for" .cindex "HELO" "ACL for" This option defines the ACL that is run when an SMTP EHLO or HELO -command is received. See chapter &<>& for further details. +command is received. See section &<>& for further details. .option acl_smtp_mail main string&!! unset @@ -15180,7 +15223,8 @@ received. See chapter &<>& for further details. .option acl_smtp_mailauth main string&!! unset .cindex "AUTH" "on MAIL command" This option defines the ACL that is run when there is an AUTH parameter on -a MAIL command. See chapter &<>& for details of ACLs, and chapter +a MAIL command. +See chapter &<>& for general information on ACLs, and chapter &<>& for details of authentication. .option acl_smtp_mime main string&!! unset @@ -15193,7 +15237,7 @@ section &<>& for details. .cindex "not-QUIT, ACL for" This option defines the ACL that is run when an SMTP session ends without a QUIT command being received. -See chapter &<>& for further details. +See section &<>& for further details. .option acl_smtp_predata main string&!! unset This option defines the ACL that is run when an SMTP DATA command is @@ -15208,7 +15252,7 @@ received. See chapter &<>& for further details. .option acl_smtp_rcpt main string&!! unset .cindex "RCPT" "ACL for" This option defines the ACL that is run when an SMTP RCPT command is -received. See chapter &<>& for further details. +received. See section &<>& for further details. .option acl_smtp_starttls main string&!! unset .cindex "STARTTLS, ACL for" @@ -15220,6 +15264,13 @@ received. See chapter &<>& for further details. This option defines the ACL that is run when an SMTP VRFY command is received. See chapter &<>& for further details. +.new +.option acl_smtp_wellknown main string&!! unset +.cindex "WELLKNOWN, ACL for" +This option defines the ACL that is run when an SMTP WELLKNOWN command is +received. See section &<>& for further details. +.wen + .option add_environment main "string list" empty .cindex "environment" "set values" This option adds individual environment variables that the @@ -16194,11 +16245,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. @@ -16572,7 +16625,7 @@ If permitted, Exim as a servier will advertise in the EHLO response the limit for RCPT commands set by the &%recipients_max%& option (if it is set) and the limit for MAIL commands set by the &%smtp_accept_max_per_connection%& option. -,wen +.wen .option local_from_check main boolean true .cindex "&'Sender:'& header line" "disabling addition of" @@ -18889,6 +18942,14 @@ absolute and untainted. See also &%bounce_message_file%&. +.new +.option wellknown_advertise_hosts main boolean unset +.cindex WELLKNOWN advertisement +.cindex "ESMTP extensions" WELLKNOWN +This option enables the advertising of the SMTP WELLKNOWN extension. +See also the &%acl_smtp_wellknown%& ACL (&<>&). +.wen + .option write_rejectlog main boolean true .cindex "reject log" "disabling" If this option is set false, Exim no longer writes anything to the reject log. @@ -30540,12 +30601,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 @@ -30616,6 +30682,7 @@ options in the main part of the configuration. These options are: .cindex "RCPT" "ACL for" .cindex "STARTTLS, ACL for" .cindex "VRFY" "ACL for" +.cindex "WELLKNOWN" "ACL for" .cindex "SMTP" "connection, ACL for" .cindex "non-SMTP messages" "ACLs for" .cindex "MIME content scanning" "ACL for" @@ -30642,6 +30709,7 @@ options in the main part of the configuration. These options are: .irow &%acl_smtp_rcpt%& "ACL for RCPT" .irow &%acl_smtp_starttls%& "ACL for STARTTLS" .irow &%acl_smtp_vrfy%& "ACL for VRFY" +.irow &%acl_smtp_wellknown%& "ACL for WELLKNOWN" .endtable For example, if you set @@ -30657,7 +30725,7 @@ trying to deliver the message. It is therefore recommended that you do as much testing as possible at RCPT time. -.subsection "The non-SMTP ACLs" SECID190 +.subsection "The non-SMTP ACLs" SECnonSMTP .cindex "non-SMTP messages" "ACLs for" The non-SMTP ACLs apply to all non-interactive incoming messages, that is, they apply to batched SMTP as well as to non-SMTP messages. (Batched SMTP is not @@ -30691,7 +30759,7 @@ kind of rejection is treated as permanent, because there is no way of sending a temporary error for these kinds of message. -.subsection "The SMTP connect ACL" SECID191 +.subsection "The SMTP connect ACL" SECconnectACL .cindex "SMTP" "connection, ACL for" .oindex &%smtp_banner%& The ACL test specified by &%acl_smtp_connect%& happens at the start of an SMTP @@ -30706,7 +30774,7 @@ is accepted; if the ACL does not accept then the TCP connection is dropped witho any TLS startup attempt and without any SMTP response being transmitted. -.subsection "The EHLO/HELO ACL" SECID192 +.subsection "The EHLO/HELO ACL" SECheloACL .cindex "EHLO" "ACL for" .cindex "HELO" "ACL for" The ACL test specified by &%acl_smtp_helo%& happens when the client issues an @@ -30727,7 +30795,7 @@ affect the EHLO options that are listed on the second and subsequent lines of an EHLO response. -.subsection "The DATA ACLs" SECID193 +.subsection "The DATA ACLs" SECdataACLS .cindex "DATA" "ACLs for" Two ACLs are associated with the DATA command, because it is two-stage command, with two responses being sent to the client. @@ -30824,6 +30892,62 @@ This ACL is evaluated after &%acl_smtp_dkim%& but before &%acl_smtp_data%&. If the ACL is not defined, processing completes as if the feature was not requested by the client. +.new +.subsection "The SMTP WELLKNOWN ACL" SECTWELLKNOWNACL +.cindex "WELLKNOWN" "ACL for" +.oindex "&%acl_smtp_wellknown%&" +The &%acl_smtp_wellknown%& ACL is available only when Exim is compiled +with WELLKNOWN support enabled. + +The ACL determines the response to an SMTP WELLKNOWN command, using the normal +accept/defer/deny verbs for the response code, +and a new &"control=wellknown"& modifier. +This modifier takes a single option, separated by a '/' +character, which must be the name of a file containing the response +cleartext. The modifier is expanded before use in the usual way before +it is used. The configuration is responsible for picking a suitable file +to return and, most importantly, not returning any unexpected file. +The argument for the SMTP verb will be available in the &$smtp_command_argument$& +variable and can be used for building the file path. +If the file path given in the modifier is empty or inacessible, the control will +fail. + +For example: +.code + check_wellknown: + accept control = wellknown/\ + ${lookup {${xtextd:$smtp_command_argument}} \ + dsearch,key=path,filter=file,ret=full \ + {$spooldir/wellknown.d}} +.endd +File content will be encoded in &"xtext"& form, and line-wrapping +for line-length limitation will be done before transmission. +A response summary line will be prepended, with the (pre-encoding) file size. + +The above example uses the expansion operator ${xtextd:} +which is needed to decode the xtext-encoded key from the SMTP verb. + +Under the util directory there is a "mailtest" utility which can be used +to test/retrieve WELLKNOWN items. Syntax is +.code + mailtest -h host.example.com -w security.txt +.endd + +WELLKNOWN is a ESMTP extension providing access to extended +information about the server. It is modelled on the webserver +facilities documented in RFC 8615 and can be used for a security.txt +file and could be used for ACME handshaking (RFC 8555). + +Exim will advertise WELLKNOWN support in the EHLO response +.oindex &%wellknown_advertise_hosts%& +(conditional on a new option &%wellknown_advertise_hosts%&) +and service WELLKNOWN smtp verbs having a single parameter +giving a key for an item of "site-wide metadata". +The verb and key are separated by whitespace, +and the key is xtext-encoded (per RFC 3461 section 4). +.wen + + .subsection "The QUIT ACL" SECTQUITACL .cindex "QUIT, ACL for" The ACL for the SMTP QUIT command is anomalous, in that the outcome of the ACL @@ -30994,12 +31118,15 @@ For &%acl_not_smtp%&, &%acl_smtp_auth%&, &%acl_smtp_connect%&, &%acl_smtp_mime%&, &%acl_smtp_predata%&, and &%acl_smtp_starttls%&, the action when the ACL is not defined is &"accept"&. -For the others (&%acl_smtp_etrn%&, &%acl_smtp_expn%&, &%acl_smtp_rcpt%&, and -&%acl_smtp_vrfy%&), the action when the ACL is not defined is &"deny"&. -This means that &%acl_smtp_rcpt%& must be defined in order to receive any -messages over an SMTP connection. For an example, see the ACL in the default -configuration file. - +For the others (&%acl_smtp_etrn%&, &%acl_smtp_expn%&, &%acl_smtp_rcpt%&, +&%acl_smtp_vrfy%& +.new +and &%acl_smtp_wellknown%&), +.wen +the action when the ACL +is not defined is &"deny"&. This means that &%acl_smtp_rcpt%& must be +defined in order to receive any messages over an SMTP connection. +For an example, see the ACL in the default configuration file. @@ -32104,6 +32231,13 @@ that are being submitted at the same time using &%-bs%& or &%-bS%&. This control enables conversion of UTF-8 in message envelope addresses to a-label form. For details see section &<>&. + +.new +.vitem &*control&~=&~wellknown*& +This control sets up a response data file for a WELLKNOWN SMTP command. +It may only be used in an ACL servicing that command. +For details see section &<>&. +.wen .endlist vlist @@ -42422,7 +42556,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 @@ -43008,10 +43143,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" @@ -43045,6 +43183,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" @@ -43094,6 +43233,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 af4678913..daa62ad0e 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -150,6 +150,20 @@ JH/29 Bug 3087: Fix SRS encode. A zero-length quoted element in the local-part 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. + +JH/32 Bug 3096: MAIL before HELO/EHLO, where required by hosts_require_helo, is + now classed as a protocol error and subject to smtp_max_synprot_errors. + +JH/33 Bug 2994: A subdir dsearch lookup should permit a directory name that starts + ".." and has following characters. + +JH/34 Fix delivery ordering for 2-phase queue run combined with + queue_run_in_order. + Exim version 4.97 ----------------- diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff index 58ab945be..778c3259e 100644 --- a/doc/doc-txt/NewStuff +++ b/doc/doc-txt/NewStuff @@ -13,13 +13,25 @@ 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. + + 7. The dsearch lookup supports search for a sub-path. + + 8. Include mailtest utility for simple connection checking. + + 9. Add SMTP WELLKNOWN extension. + + 10. Sqlite3 can be used for the hints databases (vs. DBD, NDB, GBDM, TDB). + Add "USE_SQLITE = y" and "DBMLIB = -lsqlite3" in Local/Makefile, to override + the settings done in the OS/Makefile- file. + Version 4.97 ------------ diff --git a/doc/doc-txt/experimental-spec.txt b/doc/doc-txt/experimental-spec.txt index aa3a278fd..56ee10f82 100644 --- a/doc/doc-txt/experimental-spec.txt +++ b/doc/doc-txt/experimental-spec.txt @@ -658,6 +658,9 @@ After a success: $proxy_external_address, $proxy_external_port have the proxy "outside" values $sender_host_address, $sender_host_port have the remot client values + + + -------------------------------------------------------------- End of file -------------------------------------------------------------- diff --git a/doc/doc-txt/id-wellknown.txt b/doc/doc-txt/id-wellknown.txt new file mode 100644 index 000000000..79e71582c --- /dev/null +++ b/doc/doc-txt/id-wellknown.txt @@ -0,0 +1,145 @@ +Internet Draft + +Stream: Independent Submission +Category: +Date: 2024/05/26 +Author: J.Harris +Author: B.Quatermass + +-- + + Mailmaint Working Group J. Harris + Internet Draft Independent + Category: Experimental B. Quatermass + Independent + May 2024 + +The WELLKNOWN SMTP Service Extension + +Abstract +-------- + +This document defines a WELLKNOWN extension for the Simple Mail Transfer Protocol +(SMTP). The extension provides the means for an SMTP server to inform a client +of information relating to the server which is intended to be public. + +Status of this Memo +------------------- + +This document is published for examination, experimental implementation, and +evaluation. + +This document defines an Experimental Protocol for the Internet community. + +This is a contribution to the RFC Series, independently of any other RFC +stream. The RFC Editor has chosen to publish this document at its discretion +and makes no statement about its value for implementation or deployment. + +1. Introduction +--------------- + +The Simple Mail Transfer Protocol [SMTP] provides the ability to transfer email +messages from a sending system to a recieving one. + +Senders may on occasion wish to discover additional information, not directly +related to a specific email message, about the receiving system. An example +is a contact point for discussing problems in communications. + +The WELLKNOWN extension provides a means for delivering such information, by an +SMTP server on request from an SMTP client. + +2. The WELLKNOWN SMTP Extension +------------------------------ + +The extension mechanism for SMTP is defined in Section 2.2 of the current SMTP +specification [RFC5321a]. + +The name of the extension is WELLKNOWN. Servers implementing this extension +advertise a WELLKNOWN as a keyword in the response to EHLO. The keyword has no +parameters. + +A new SMTP verb, "WELLKNOWN" is defined. + +3. The WELLNOWN verb +-------------------- + +The format for the WELLKNOWN verb is: + + WELLKNOWN + +The parameter identifies the specific type of information being +requested. It is separated from the verb by whitespace, and is xtext-encoded +per RFC 3461 Section 4 [RFC3461]. + +After the client gives the WELLKNOWN command, the server responds with one of +the 2xx, 4xx or 5xx response codes. + +A success response MUST be a 250 response code, and MUST be multi-line. + +The first line of a success response will be a response summary; the following +lines are the information data requested, xtext-encoded [RFC3461]. The encoded +information data MAY be split over multiple response lines. + +A response summary MAY be empty. In this case the first line of the response +will be only "250-". + +A response summary MAY contain a size parameter, giving the number of bytes +of data. This parameter is expressed as "SIZE=" followed by a decimal number. +The size value does not include the xtext-encoding overheader, the "250-" or +"250 " response code prefixing each line, nor the CR,LF bytes between lines. + +4. Example +---------- + +S: 220 ESMTP spoken here + +C: EHLO test + +S: 250-Hi there, mate +S: 250-SIZE +S: 250-LIMITS +S: 250-8BITMIME +S: 250-PIPELINING +S: 250-WELLKNOWN +S: 250 HELP + +C: WELLKNOWN security.txt + +S: 250-SIZE=285 +S: 250-Contact:+20mailto:security@example.com+0A +S: 250-+0A +S: 250-Canonical:+20https://www.example.com/.well-known/security.txt+0A +S: 250-Canonical:+20mailserver://mx1.example.com/WELLKNOWN/security.txt+0A +S: 250-Canonical:+20mailserver://mx2.example.com/WELLKNOWN/security.txt+0A +S: 250-+0A +S: 250-Preferred-Languages:+20en+0A +S: 250-+0A +S: 250-Expires:+202025-02-01T00:00:00.000Z+0A +S: 250 +0A + +C: QUIT + +S: 221 + + +5. Use Cases +------------ + +5.1 security.txt +--- +It is common for a website to provide public-access information via the HTTP +protocol. One such item, a "security.txt" file, is descibed in RFC 9116. + +The WELLKNOWN extension provides a method for publishing similar information +for an SMTP host, without the need to operate an HTTP server. + +It is RECOMMENDED that the request-key for this usage be "security.txt". + +5.2 ACME handshake +--- +ACME [RFC8555] provides for obtaining a certificate, needed for encrpted +communications using TLS. It defines handshake methods using the DNS and using +HTTP, for verifying ownership of the domain being certified. + +The WELLKNOWN extension provides a method for operating a similar handshake, +without the need to operate an HTTP server or manipulate the DNS. diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base index 6dcf18b58..afa2a7a23 100644 --- a/src/OS/Makefile-Base +++ b/src/OS/Makefile-Base @@ -5,7 +5,7 @@ # optional, Local/* files at the front of this file, to create Makefile in the # build directory. # -# Copyright (c) The Exim Maintainers 1995 - 2023 +# Copyright (c) The Exim Maintainers 1995 - 2024 # SPDX-License-Identifier: GPL-2.0-or-later SHELL = $(MAKE_SHELL) @@ -108,7 +108,7 @@ config.h: Makefile buildconfig ../src/config.h.defaults $(EDITME) # Build the builtin-macros data struct -MACRO_HSRC = macro_predef.h os.h globals.h config.h macros.h \ +MACRO_HSRC = macro_predef.h os.h globals.h config.h macros.h path_max.h \ routers/accept.h routers/dnslookup.h routers/ipliteral.h \ routers/iplookup.h routers/manualroute.h routers/queryprogram.h \ routers/redirect.h @@ -664,7 +664,7 @@ OBJ_MONBIN = util-host_address.o \ $(MONBIN) eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) ../exim_monitor/em_version.c \ - mytypes.h store.h macros.h + mytypes.h store.h path_max.h macros.h @echo "$(CC) exim_monitor/em_version.c" $(FE)$(CC) -o em_version.o -c \ $(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c @@ -698,6 +698,7 @@ HDRS = blob.h \ local_scan.h \ macros.h \ mytypes.h \ + path_max.h \ sha_ver.h \ structs.h \ os.h @@ -711,6 +712,7 @@ PHDRS = ../config.h \ ../local_scan.h \ ../macros.h \ ../mytypes.h \ + ../path_max.h \ ../structs.h \ ../os.h diff --git a/src/OS/os.h-FreeBSD b/src/OS/os.h-FreeBSD index 11f8b1ae7..57ea82265 100644 --- a/src/OS/os.h-FreeBSD +++ b/src/OS/os.h-FreeBSD @@ -1,6 +1,6 @@ /* Exim: OS-specific C header file for FreeBSD */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 - 2021 */ /* SPDX-License-Identifier: GPL-2.0-or-later */ /* See the file NOTICE for conditions of use and distribution. */ diff --git a/src/OS/os.h-Linux b/src/OS/os.h-Linux index cebda3367..dcd9ec02d 100644 --- a/src/OS/os.h-Linux +++ b/src/OS/os.h-Linux @@ -1,6 +1,6 @@ /* Exim: OS-specific C header file for Linux */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2020 */ -/* Copyright (c) The Exim Maintainers 2021 */ /* SPDX-License-Identifier: GPL-2.0-or-later */ /* See the file NOTICE for conditions of use and distribution. */ diff --git a/src/exim_monitor/em_globals.c b/src/exim_monitor/em_globals.c index 3822746ba..b23accc65 100644 --- a/src/exim_monitor/em_globals.c +++ b/src/exim_monitor/em_globals.c @@ -2,8 +2,8 @@ * Exim Monitor * *************************************************/ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2021 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/exim_monitor/em_hdr.h b/src/exim_monitor/em_hdr.h index f79686a80..315c1d250 100644 --- a/src/exim_monitor/em_hdr.h +++ b/src/exim_monitor/em_hdr.h @@ -2,8 +2,8 @@ * Exim Monitor * *************************************************/ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2009 */ -/* Copyright (c) The Exim Maintainers 2021 - 2022 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -99,6 +99,7 @@ this interface so that this kind of kludge isn't needed. */ typedef void * hctx; #include "local_scan.h" +#include "path_max.h" #include "macros.h" #include "structs.h" #include "blob.h" diff --git a/src/exim_monitor/em_log.c b/src/exim_monitor/em_log.c index 49f649d7e..55dad0bae 100644 --- a/src/exim_monitor/em_log.c +++ b/src/exim_monitor/em_log.c @@ -2,8 +2,8 @@ * Exim Monitor * *************************************************/ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainters 2021 - 2022 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/exim_monitor/em_queue.c b/src/exim_monitor/em_queue.c index c7c61a652..892b4f856 100644 --- a/src/exim_monitor/em_queue.c +++ b/src/exim_monitor/em_queue.c @@ -2,8 +2,8 @@ * Exim Monitor * *************************************************/ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/exim_monitor/em_version.c b/src/exim_monitor/em_version.c index 4c562925c..066ccab56 100644 --- a/src/exim_monitor/em_version.c +++ b/src/exim_monitor/em_version.c @@ -2,26 +2,16 @@ * Exim Monitor * *************************************************/ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 - 2021 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ #define EM_VERSION_C -/* Needed by macros.h */ -/* Some systems have PATH_MAX and some have MAX_PATH_LEN. */ - -#ifndef PATH_MAX -# ifdef MAX_PATH_LEN -# define PATH_MAX MAX_PATH_LEN -# else -# define PATH_MAX 1024 -# endif -#endif - #include "mytypes.h" #include "store.h" +#include "path_max.h" #include "macros.h" #include #include diff --git a/src/scripts/MakeLinks b/src/scripts/MakeLinks index 352176fa4..ddb237980 100755 --- a/src/scripts/MakeLinks +++ b/src/scripts/MakeLinks @@ -3,7 +3,7 @@ # Script to build links for all the exim source files from the system- # specific build directory. It should be run from within that directory. # -# Copyright (c) The Exim Maintainers 1995 - 2023 +# Copyright (c) The Exim Maintainers 1995 - 2024 # SPDX-License-Identifier: GPL-2.0-or-later test ! -d ../src && \ @@ -98,7 +98,8 @@ cd .. for f in blob.h dbfunctions.h exim.h functions.h globals.h \ hash.h hintsdb.h hintsdb_structs.h local_scan.h \ - macros.h mytypes.h osfunctions.h store.h structs.h lookupapi.h sha_ver.h \ + macros.h mytypes.h osfunctions.h path_max.h store.h \ + structs.h lookupapi.h sha_ver.h \ \ acl.c buildconfig.c base64.c child.c crypt16.c daemon.c dbfn.c debug.c \ deliver.c directory.c dns.c dnsbl.c drtables.c dummies.c enq.c exim.c \ diff --git a/src/src/EDITME b/src/src/EDITME index 85d24f73f..ebfaf640a 100644 --- a/src/src/EDITME +++ b/src/src/EDITME @@ -1,7 +1,7 @@ ################################################## # The Exim mail transport agent # ################################################## -# Copyright (c) The Exim Maintainers 2022 - 2023 +# Copyright (c) The Exim Maintainers 2022 - 2024 # SPDX-License-Identifier: GPL-2.0-or-later # This is the template for Exim's main build-time configuration file. It @@ -47,7 +47,8 @@ # compile the Exim monitor utility. Exim itself does not use X11. # Another area of variability between systems is the type and location of the -# DBM library package. Exim has support for ndbm, gdbm, tdb, and Berkeley DB. +# DBM library package. Exim has support for ndbm, gdbm, tdb, Berkeley DB and +# sqlite3. # By default the code assumes ndbm; this often works with gdbm or DB, provided # they are correctly installed, via their compatibility interfaces. However, # Exim can also be configured to use the native calls for Berkeley DB (obsolete @@ -60,8 +61,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 @@ -591,6 +592,9 @@ DISABLE_MAL_MKS=yes # using only native facilities. # SUPPORT_SRS=yes +# Uncomment the following to remove support for the ESMTP extension "WELLKNOWN" +# DISABLE_WELLKNOWN=yes + #------------------------------------------------------------------------------ # Compiling Exim with experimental features. These are documented in @@ -673,6 +677,10 @@ DISABLE_MAL_MKS=yes # USE_DB = yes # DBMLIB = -ldb +# sqlite +# USE_SQLITE = yes +# DBMLIB = -lsqlite3 + #------------------------------------------------------------------------------ # Although Exim is normally a setuid program, owned by root, it refuses to run diff --git a/src/src/acl.c b/src/src/acl.c index d719a937b..0aa789dbf 100644 --- a/src/src/acl.c +++ b/src/src/acl.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -57,9 +57,7 @@ static int msgcond[] = { #endif -/* ACL condition and modifier codes - keep in step with the table that -follows. -down. */ +/* ACL condition and modifier codes */ enum { ACLC_ACL, ACLC_ADD_HEADER, @@ -119,7 +117,8 @@ enum { ACLC_ACL, ACLC_SPF_GUESS, #endif ACLC_UDPSEND, - ACLC_VERIFY }; + ACLC_VERIFY, +}; /* ACL conditions/modifiers: "delay", "control", "continue", "endpass", "message", "log_message", "log_reject_target", "logwrite", "queue" and "set" are @@ -149,7 +148,7 @@ static condition_def conditions[] = { [ACLC_ACL] = { US"acl", FALSE, FALSE, 0 }, [ACLC_ADD_HEADER] = { US"add_header", TRUE, TRUE, - (unsigned int) + (unsigned) ~(ACL_BIT_MAIL | ACL_BIT_RCPT | ACL_BIT_PREDATA | ACL_BIT_DATA | #ifndef DISABLE_PRDR @@ -188,7 +187,7 @@ static condition_def conditions[] = { #ifdef EXPERIMENTAL_DCC [ACLC_DCC] = { US"dcc", TRUE, FALSE, - (unsigned int) + (unsigned) ~(ACL_BIT_DATA | # ifndef DISABLE_PRDR ACL_BIT_PRDR | @@ -204,7 +203,7 @@ static condition_def conditions[] = { #ifndef DISABLE_DKIM [ACLC_DKIM_SIGNER] = { US"dkim_signers", TRUE, FALSE, (unsigned int) ~ACL_BIT_DKIM }, [ACLC_DKIM_STATUS] = { US"dkim_status", TRUE, FALSE, - (unsigned int) + (unsigned) ~(ACL_BIT_DKIM | ACL_BIT_DATA | ACL_BIT_MIME # ifndef DISABLE_PRDR | ACL_BIT_PRDR @@ -221,7 +220,7 @@ static condition_def conditions[] = { [ACLC_DNSLISTS] = { US"dnslists", TRUE, FALSE, 0 }, [ACLC_DOMAINS] = { US"domains", FALSE, FALSE, - (unsigned int) + (unsigned) ~(ACL_BIT_RCPT | ACL_BIT_VRFY #ifndef DISABLE_PRDR |ACL_BIT_PRDR @@ -239,7 +238,7 @@ static condition_def conditions[] = { ACL_BIT_NOTSMTP | ACL_BIT_NOTSMTP_START, }, [ACLC_LOCAL_PARTS] = { US"local_parts", FALSE, FALSE, - (unsigned int) + (unsigned) ~(ACL_BIT_RCPT | ACL_BIT_VRFY #ifndef DISABLE_PRDR | ACL_BIT_PRDR @@ -253,7 +252,7 @@ static condition_def conditions[] = { #ifdef WITH_CONTENT_SCAN [ACLC_MALWARE] = { US"malware", TRUE, FALSE, - (unsigned int) + (unsigned) ~(ACL_BIT_DATA | # ifndef DISABLE_PRDR ACL_BIT_PRDR | @@ -280,7 +279,7 @@ static condition_def conditions[] = { #ifdef WITH_CONTENT_SCAN [ACLC_REGEX] = { US"regex", TRUE, FALSE, - (unsigned int) + (unsigned) ~(ACL_BIT_DATA | # ifndef DISABLE_PRDR ACL_BIT_PRDR | @@ -291,7 +290,7 @@ static condition_def conditions[] = { #endif [ACLC_REMOVE_HEADER] = { US"remove_header", TRUE, TRUE, - (unsigned int) + (unsigned) ~(ACL_BIT_MAIL|ACL_BIT_RCPT | ACL_BIT_PREDATA | ACL_BIT_DATA | #ifndef DISABLE_PRDR @@ -320,7 +319,7 @@ static condition_def conditions[] = { #ifdef WITH_CONTENT_SCAN [ACLC_SPAM] = { US"spam", TRUE, FALSE, - (unsigned int) ~(ACL_BIT_DATA | + (unsigned) ~(ACL_BIT_DATA | # ifndef DISABLE_PRDR ACL_BIT_PRDR | # endif @@ -370,8 +369,7 @@ for (condition_def * c = conditions; c < conditions + nelem(conditions); c++) #ifndef MACRO_PREDEF -/* Return values from decode_control(); used as index so keep in step -with the controls_list table that follows! */ +/* Return values from decode_control() */ enum { CONTROL_AUTH_UNADVERTISED, @@ -411,6 +409,9 @@ enum { #ifdef SUPPORT_I18N CONTROL_UTF8_DOWNCONVERT, #endif +#ifndef DISABLE_WELLKNOWN + CONTROL_WELLKNOWN, +#endif }; @@ -564,7 +565,12 @@ static control_def controls_list[] = { #ifdef SUPPORT_I18N [CONTROL_UTF8_DOWNCONVERT] = { US"utf8_downconvert", TRUE, (unsigned) ~(ACL_BIT_RCPT | ACL_BIT_VRFY) - } + }, +#endif +#ifndef DISABLE_WELLKNOWN +[CONTROL_WELLKNOWN] = + { US"wellknown", TRUE, (unsigned) ~ACL_BIT_WELLKNOWN + }, #endif }; @@ -806,7 +812,7 @@ if (*s++ != '=') { *error = string_sprintf("\"=\" missing after ACL \"%s\" %s", name, conditions[cond->type].is_modifier ? US"modifier" : US"condition"); - return FALSE;; + return FALSE; } Uskip_whitespace(&s); cond->arg = taint ? string_copy_taint(s, GET_TAINTED) : string_copy(s); @@ -3122,6 +3128,80 @@ return DEFER; +#ifndef DISABLE_WELLKNOWN +/************************************************* +* The "wellknown" ACL modifier * +*************************************************/ + +/* Called by acl_check_condition() below. + +Retrieve the given file and encode content as xtext. +Prefix with a summary line giving the length of plaintext. +Leave a global pointer to the whole, for output by +the smtp verb handler code (smtp_in.c). + +Arguments: + arg the option string for wellknown= + log_msgptr for error messages + +Returns: OK/FAIL +*/ + +static int +wellknown_process(const uschar * arg, uschar ** log_msgptr) +{ +struct stat statbuf; +FILE * rf; +gstring * g; + +wellknown_response = NULL; +if (f.no_multiline_responses) return FAIL; + +/* Check for file existence */ + +if (!*arg) return FAIL; +if (Ustat(arg, &statbuf) != 0) + { *log_msgptr = US"stat"; goto fail; } + +/*XXX perhaps refuse to serve a group- or world-writeable file? */ + +if (!(rf = Ufopen(arg, "r"))) + { *log_msgptr = US"open"; goto fail; } + +/* Set up summary line for output */ + +g = string_fmt_append(NULL, "SIZE=%lu\n", (long) statbuf.st_size); + +#define LINE_LIM 75 +for (int n = 0, ch; (ch = fgetc(rf)) != EOF; ) + { + /* Xtext-encode, adding output linebreaks for input linebreaks + or when the line gets long enough */ + + if (ch == '\n') + { g = string_fmt_append(g, "+%02X", ch); n = LINE_LIM; } + else if (ch < 33 || ch > 126 || ch == '+' || ch == '=') + { g = string_fmt_append(g, "+%02X", ch); n += 3; } + else + { g = string_fmt_append(g, "%c", ch); n++; } + + if (n >= LINE_LIM) + { g = string_catn(g, US"\n", 1); n = 0; } + } +#undef LINE_LIM + +gstring_release_unused(g); +wellknown_response = string_from_gstring(g); +return OK; + +fail: + *log_msgptr = string_sprintf("wellknown: failed to %s file \"%s\": %s", + *log_msgptr, arg, strerror(errno)); + return FAIL; +} +#endif + + /************************************************* * Handle conditions/modifiers on an ACL item * *************************************************/ @@ -3311,7 +3391,7 @@ for (; cb; cb = cb->next) case ACLC_CONTROL: { - const uschar *p = NULL; + const uschar * p = NULL; control_type = decode_control(arg, &p, where, log_msgptr); /* Check if this control makes sense at this time */ @@ -3323,6 +3403,7 @@ for (; cb; cb = cb->next) return ERROR; } + /*XXX ought to sort these, just for sanity */ switch(control_type) { case CONTROL_AUTH_UNADVERTISED: @@ -3668,8 +3749,13 @@ for (; cb; cb = cb->next) break; } return ERROR; -#endif +#endif /*I18N*/ +#ifndef DISABLE_WELLKNOWN + case CONTROL_WELLKNOWN: + rc = *p == '/' ? wellknown_process(p+1, log_msgptr) : FAIL; + break; +#endif } break; } @@ -4450,7 +4536,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; } diff --git a/src/src/arc.c b/src/src/arc.c index bd2fa3bae..48f69a8cf 100644 --- a/src/src/arc.c +++ b/src/src/arc.c @@ -2,8 +2,8 @@ * Exim - an Internet mail transport agent * *************************************************/ /* Experimental ARC support for Exim + Copyright (c) The Exim Maintainers 2021 - 2024 Copyright (c) Jeremy Harris 2018 - 2020 - Copyright (c) The Exim Maintainers 2021 - 2023 License: GPL SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c index 5817be7c9..6d31d4b1d 100644 --- a/src/src/auths/cram_md5.c +++ b/src/src/auths/cram_md5.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/dovecot.c b/src/src/auths/dovecot.c index 7f437fa0d..8b80f2c3f 100644 --- a/src/src/auths/dovecot.c +++ b/src/src/auths/dovecot.c @@ -1,5 +1,5 @@ /* - * Copyright (c) The Exim Maintainers 2006 - 2023 + * Copyright (c) The Exim Maintainers 2006 - 2024 * Copyright (c) 2004 Andrey Panin * SPDX-License-Identifier: GPL-2.0-or-later * diff --git a/src/src/auths/external.c b/src/src/auths/external.c index 6ae5833af..a8e04310f 100644 --- a/src/src/auths/external.c +++ b/src/src/auths/external.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2023 */ +/* Copyright (c) The Exim Maintainers 2023 - 2024 */ /* Copyright (c) Jeremy Harris 2019-2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/get_data.c b/src/src/auths/get_data.c index 0c9fb37fe..4b79cbfa4 100644 --- a/src/src/auths/get_data.c +++ b/src/src/auths/get_data.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/get_no64_data.c b/src/src/auths/get_no64_data.c index ae11ae5dc..3f9ac2f3c 100644 --- a/src/src/auths/get_no64_data.c +++ b/src/src/auths/get_no64_data.c @@ -2,6 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/plaintext.c b/src/src/auths/plaintext.c index 814896047..7f59e4c7d 100644 --- a/src/src/auths/plaintext.c +++ b/src/src/auths/plaintext.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/spa.c b/src/src/auths/spa.c index 51418c4ed..7ec3974e1 100644 --- a/src/src/auths/spa.c +++ b/src/src/auths/spa.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/tls.c b/src/src/auths/tls.c index 005032f57..85b9a6722 100644 --- a/src/src/auths/tls.c +++ b/src/src/auths/tls.c @@ -2,6 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2024 */ /* Copyright (c) Jeremy Harris 1995 - 2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/auths/xtextencode.c b/src/src/auths/xtextencode.c index 75be18161..04cd302de 100644 --- a/src/src/auths/xtextencode.c +++ b/src/src/auths/xtextencode.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2022 */ +/* Copyright (c) The Exim Maintainers 2022 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -40,3 +40,5 @@ return string_from_gstring(g); /* End of xtextencode.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/buildconfig.c b/src/src/buildconfig.c index 8f53671a0..bfd267929 100644 --- a/src/src/buildconfig.c +++ b/src/src/buildconfig.c @@ -53,7 +53,7 @@ typedef struct { char *data; } save_item; -static const char *db_opts[] = { "", "USE_DB", "USE_GDBM", "USE_TDB", "USE_NDBM" }; +static const char *db_opts[] = { "", "USE_DB", "USE_GDBM", "USE_TDB", "USE_NDBM", "USE_SQLITE" }; static int have_ipv6 = 0; static int have_iconv = 0; @@ -266,7 +266,7 @@ while (fgets(buffer, sizeof(buffer), base) != NULL) { if (use_which_db_in_local_makefile) { - printf("*** Only one of USE_DB, USE_GDBM, or USE_TDB should be " + printf("*** Only one of USE_DB, USE_GDBM, USE_SQLITE or USE_TDB should be " "defined in Local/Makefile\n"); exit(1); } diff --git a/src/src/config.h.defaults b/src/src/config.h.defaults index c08f1874d..13b203e80 100644 --- a/src/src/config.h.defaults +++ b/src/src/config.h.defaults @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2018 - 2023 */ +/* Copyright (c) The Exim Maintainers 2018 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -59,6 +59,7 @@ Do not put spaces between # and the 'define'. #define DISABLE_QUEUE_RAMP #define DISABLE_TLS #define DISABLE_TLS_RESUME +#define DISABLE_WELLKNOWN #define ENABLE_DISABLE_FSYNC @@ -187,6 +188,7 @@ Do not put spaces between # and the 'define'. #define USE_OPENSSL #define USE_READLINE #define USE_TCP_WRAPPERS +#define USE_SQLITE #define USE_TDB #define WHITELIST_D_MACROS diff --git a/src/src/daemon.c b/src/src/daemon.c index 88114d648..16137f9f6 100644 --- a/src/src/daemon.c +++ b/src/src/daemon.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -311,7 +311,7 @@ if (smtp_accept_max_per_host) /* For speed, interpret a decimal number inline here */ else { - uschar *s = expanded; + uschar * s = expanded; while (isdigit(*s)) max_for_this_host = max_for_this_host * 10 + *s++ - '0'; if (*s) @@ -320,9 +320,9 @@ if (smtp_accept_max_per_host) } } -/* If we have fewer connections than max_for_this_host, we can skip the tedious -per host_address checks. Note that at this stage smtp_accept_count contains the -count of *other* connections, not including this one. */ +/* If we have fewer total connections than max_for_this_host, we can skip the +tedious per host_address checks. Note that at this stage smtp_accept_count +contains the count of *other* connections, not including this one. */ if (max_for_this_host > 0 && smtp_accept_count >= max_for_this_host) { @@ -920,7 +920,7 @@ while ((pid = waitpid(-1, &status, WNOHANG)) > 0) smtp_slots[i] = empty_smtp_slot; if (--smtp_accept_count < 0) smtp_accept_count = 0; DEBUG(D_any) debug_printf("%d SMTP accept process%s now running\n", - smtp_accept_count, (smtp_accept_count == 1)? "" : "es"); + smtp_accept_count, smtp_accept_count == 1 ? "" : "es"); break; } if (i < smtp_accept_max) continue; /* Found an accepting process */ @@ -2157,7 +2157,7 @@ if (f.background_daemon) pid_t pid = exim_fork(US"daemon"); if (pid < 0) log_write(0, LOG_MAIN|LOG_PANIC_DIE, "fork() failed when starting daemon: %s", strerror(errno)); - if (pid > 0) exit(EXIT_SUCCESS); /* in parent process, just exit */ + if (pid > 0) exim_exit(EXIT_SUCCESS); /* in parent process, just exit */ (void)setsid(); /* release controlling terminal */ f.daemon_listen = daemon_listen; } diff --git a/src/src/dbfn.c b/src/src/dbfn.c index 389d1518e..2b5ec908b 100644 --- a/src/src/dbfn.c +++ b/src/src/dbfn.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -20,7 +20,7 @@ with database files like $spooldirectory/db/ */ different DBM files. This module does not contain code for reading DBM files for (e.g.) alias expansion. That is all contained within the general search functions. As Exim now has support for several DBM interfaces, all the relevant -functions are called as macros. +functions are called as inlinable functions from an included file. All the data in Exim's database is in the nature of *hints*. Therefore it doesn't matter if it gets destroyed by accident. These functions are not @@ -35,7 +35,25 @@ means of locking on independent lock files. (Earlier attempts to lock on the DBM files themselves were never completely successful.) Since callers may in general want to do more than one read or write while holding the lock, there are separate open and close functions. However, the calling modules should -arrange to hold the locks for the bare minimum of time. */ +arrange to hold the locks for the bare minimum of time. + +API: + dbfn_open + dbfn_close + dbfn_read_with_length + dbfn_read_enforce_length + dbfn_write + dbfn_delete + dbfn_scan unused; ifdeffout out + +Users: + ACL ratelimit & seen conditions + delivery retry handling + delivery serialization + TLS session resumption + peer capability cache + callout & quota cache +*/ @@ -43,6 +61,68 @@ arrange to hold the locks for the bare minimum of time. */ * Open and lock a database file * *************************************************/ +/* Ensure the directory for the DB is present */ + +static inline void +db_dir_make(BOOL panic) +{ +(void) directory_make(spool_directory, US"db", EXIMDB_DIRECTORY_MODE, panic); +} + + +/* Lock a file to protect the DB. Return TRUE for success */ + +static inline BOOL +lockfile_take(open_db * dbblock, const uschar * filename, BOOL rdonly, BOOL panic) +{ +flock_t lock_data; +int rc, * fdp = &dbblock->lockfd; + +priv_drop_temp(exim_uid, exim_gid); +if ((*fdp = Uopen(filename, O_RDWR, EXIMDB_LOCKFILE_MODE)) < 0) + { + db_dir_make(panic); + *fdp = Uopen(filename, O_RDWR|O_CREAT, EXIMDB_LOCKFILE_MODE); + } +priv_restore(); + +if (*fdp < 0) + { + log_write(0, LOG_MAIN, "%s", + string_open_failed("database lock file %s", filename)); + errno = 0; /* Indicates locking failure */ + return FALSE; + } + +/* Now we must get a lock on the opened lock file; do this with a blocking +lock that times out. */ + +lock_data.l_type = rdonly ? F_RDLCK : F_WRLCK; +lock_data.l_whence = lock_data.l_start = lock_data.l_len = 0; + +DEBUG(D_hints_lookup|D_retry|D_route|D_deliver) + debug_printf_indent("locking %s\n", filename); + +sigalrm_seen = FALSE; +ALARM(EXIMDB_LOCK_TIMEOUT); +rc = fcntl(*fdp, F_SETLKW, &lock_data); +ALARM_CLR(0); + +if (sigalrm_seen) errno = ETIMEDOUT; +if (rc < 0) + { + log_write(0, LOG_MAIN|LOG_PANIC, "Failed to get %s lock for %s: %s", + rdonly ? "read" : "write", filename, + errno == ETIMEDOUT ? "timed out" : strerror(errno)); + (void)close(*fdp); *fdp = -1; + errno = 0; /* Indicates locking failure */ + return FALSE; + } + +DEBUG(D_hints_lookup) debug_printf_indent("locked %s\n", filename); +return TRUE; +} + /* Used for accessing Exim's hints databases. Arguments: @@ -59,17 +139,13 @@ Returns: NULL if the open failed, or the locking failed. After locking On success, dbblock is returned. This contains the dbm pointer and the fd of the locked lock file. - -There are some calls that use O_RDWR|O_CREAT for the flags. Having discovered -this in December 2005, I'm not sure if this is correct or not, but for the -moment I haven't changed them. */ open_db * -dbfn_open(uschar *name, int flags, open_db *dbblock, BOOL lof, BOOL panic) +dbfn_open(const uschar * name, int flags, open_db * dbblock, + BOOL lof, BOOL panic) { int rc, save_errno; -BOOL read_only = flags == O_RDONLY; flock_t lock_data; uschar dirname[PATHLEN], filename[PATHLEN]; @@ -91,51 +167,18 @@ exists, there is no error. */ snprintf(CS dirname, sizeof(dirname), "%s/db", spool_directory); snprintf(CS filename, sizeof(filename), "%s/%s.lockfile", dirname, name); -priv_drop_temp(exim_uid, exim_gid); -if ((dbblock->lockfd = Uopen(filename, O_RDWR, EXIMDB_LOCKFILE_MODE)) < 0) - { - (void)directory_make(spool_directory, US"db", EXIMDB_DIRECTORY_MODE, panic); - dbblock->lockfd = Uopen(filename, O_RDWR|O_CREAT, EXIMDB_LOCKFILE_MODE); - } -priv_restore(); - -if (dbblock->lockfd < 0) - { - log_write(0, LOG_MAIN, "%s", - string_open_failed("database lock file %s", filename)); - errno = 0; /* Indicates locking failure */ - DEBUG(D_hints_lookup) acl_level--; - return NULL; - } - -/* Now we must get a lock on the opened lock file; do this with a blocking -lock that times out. */ - -lock_data.l_type = read_only? F_RDLCK : F_WRLCK; -lock_data.l_whence = lock_data.l_start = lock_data.l_len = 0; - -DEBUG(D_hints_lookup|D_retry|D_route|D_deliver) - debug_printf_indent("locking %s\n", filename); - -sigalrm_seen = FALSE; -ALARM(EXIMDB_LOCK_TIMEOUT); -rc = fcntl(dbblock->lockfd, F_SETLKW, &lock_data); -ALARM_CLR(0); - -if (sigalrm_seen) errno = ETIMEDOUT; -if (rc < 0) +dbblock->lockfd = -1; +if (!exim_lockfile_needed()) + db_dir_make(panic); +else { - log_write(0, LOG_MAIN|LOG_PANIC, "Failed to get %s lock for %s: %s", - read_only ? "read" : "write", filename, - errno == ETIMEDOUT ? "timed out" : strerror(errno)); - (void)close(dbblock->lockfd); - errno = 0; /* Indicates locking failure */ - DEBUG(D_hints_lookup) acl_level--; - return NULL; + if (!lockfile_take(dbblock, filename, flags == O_RDONLY, panic)) + { + DEBUG(D_hints_lookup) acl_level--; + return NULL; + } } -DEBUG(D_hints_lookup) debug_printf_indent("locked %s\n", filename); - /* At this point we have an opened and locked separate lock file, that is, exclusive access to the database, so we can go ahead and open it. If we are expected to create it, don't do so at first, again so that we can detect @@ -145,6 +188,7 @@ databases - often this is caused by non-matching db.h and the library. To make it easy to pin this down, there are now debug statements on either side of the open call. */ +flags &= O_RDONLY | O_RDWR; snprintf(CS filename, sizeof(filename), "%s/%s", dirname, name); priv_drop_temp(exim_uid, exim_gid); @@ -173,6 +217,7 @@ if (!dbblock->dbptr) debug_printf_indent("%s\n", CS string_open_failed("DB file %s", filename)); (void)close(dbblock->lockfd); + dbblock->lockfd = -1; errno = save_errno; DEBUG(D_hints_lookup) acl_level--; return NULL; @@ -182,7 +227,6 @@ DEBUG(D_hints_lookup) debug_printf_indent("opened hints database %s: flags=%s\n", filename, flags == O_RDONLY ? "O_RDONLY" : flags == O_RDWR ? "O_RDWR" - : flags == (O_RDWR|O_CREAT) ? "O_RDWR|O_CREAT" : "??"); /* Pass back the block containing the opened database handle and the open fd @@ -199,7 +243,7 @@ return dbblock; *************************************************/ /* Closing a file automatically unlocks it, so after closing the database, just -close the lock file. +close the lock file if there was one. Argument: a pointer to an open database block Returns: nothing @@ -208,10 +252,17 @@ Returns: nothing void dbfn_close(open_db *dbblock) { +int * fdp = &dbblock->lockfd; + exim_dbclose(dbblock->dbptr); -(void)close(dbblock->lockfd); +if (*fdp >= 0) (void)close(*fdp); DEBUG(D_hints_lookup) - { debug_printf_indent("closed hints database and lockfile\n"); acl_level--; } + { + debug_printf_indent("closed hints database%s\n", + *fdp < 0 ? "" : " and lockfile"); + acl_level--; + } +*fdp = -1; } @@ -256,7 +307,11 @@ exim_datum_init(&result_datum); /* to be cleared before use. */ exim_datum_data_set(&key_datum, key_copy); exim_datum_size_set(&key_datum, klen); -if (!exim_dbget(dbblock->dbptr, &key_datum, &result_datum)) return NULL; +if (!exim_dbget(dbblock->dbptr, &key_datum, &result_datum)) + { + DEBUG(D_hints_lookup) debug_printf_indent("dbfn_read: null return\n"); + return NULL; + } /* Assume the data store could have been tainted. Properly, we should store the taint status with the data. */ @@ -264,6 +319,7 @@ store the taint status with the data. */ dlen = exim_datum_size_get(&result_datum); yield = store_get(dlen, GET_TAINTED); memcpy(yield, exim_datum_data_get(&result_datum), dlen); +DEBUG(D_hints_lookup) debug_printf_indent("dbfn_read: size %u return\n", dlen); if (length) *length = dlen; exim_datum_free(&result_datum); /* Some DBM libs require freeing */ @@ -326,7 +382,8 @@ uschar * key_copy = store_get(klen, key); memcpy(key_copy, key, klen); gptr->time_stamp = time(NULL); -DEBUG(D_hints_lookup) debug_printf_indent("dbfn_write: key=%s\n", key); +DEBUG(D_hints_lookup) + debug_printf_indent("dbfn_write: key=%s datalen %d\n", key, length); exim_datum_init(&key_datum); /* Some DBM libraries require the datum */ exim_datum_init(&value_datum); /* to be cleared before use. */ @@ -369,6 +426,11 @@ return exim_dbdel(dbblock->dbptr, &key_datum); +#ifdef notdef +/* XXX This appears to be unused. There's a separate implementation +in dbutils.c for dumpdb and fixdb, using the same underlying support. +*/ + /************************************************* * Scan the keys of a database file * *************************************************/ @@ -408,6 +470,7 @@ yield = exim_dbscan(dbblock->dbptr, &key_datum, &value_datum, start, *cursor) if (!yield) exim_dbdelete_cursor(*cursor); return yield; } +#endif diff --git a/src/src/dbfunctions.h b/src/src/dbfunctions.h index 1f0dec1f7..0b0bcab22 100644 --- a/src/src/dbfunctions.h +++ b/src/src/dbfunctions.h @@ -14,7 +14,7 @@ void dbfn_close(open_db *); int dbfn_delete(open_db *, const uschar *); -open_db *dbfn_open(uschar *, int, open_db *, BOOL, BOOL); +open_db *dbfn_open(const uschar *, int, open_db *, BOOL, BOOL); void *dbfn_read_with_length(open_db *, const uschar *, int *); void *dbfn_read_enforce_length(open_db *, const uschar *, size_t); uschar *dbfn_scan(open_db *, BOOL, EXIM_CURSOR **); diff --git a/src/src/deliver.c b/src/src/deliver.c index 0157743a1..eadc96d22 100644 --- a/src/src/deliver.c +++ b/src/src/deliver.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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; +transport_name = save_tn; } #endif /*DISABLE_EVENT*/ @@ -2458,8 +2462,7 @@ if ((pid = exim_fork(US"delivery-local")) == 0) and close the pipe we were writing down before exiting. */ (void)close(pfd[pipe_write]); - search_tidyup(); - exit(EXIT_SUCCESS); + exim_exit(EXIT_SUCCESS); } /* Back in the main process: panic if the fork did not succeed. This seems @@ -5022,7 +5025,7 @@ all pipes, so I do not see a reason to use non-blocking IO here big_buffer[0] = continue_transport ? '1' : '0'; rmt_dlv_checked_write(fd, 'Z', '0', big_buffer, 1); (void)close(fd); - exit(EXIT_SUCCESS); + exim_exit(EXIT_SUCCESS); } /* Back in the mainline: close the unwanted half of the pipe. */ diff --git a/src/src/directory.c b/src/src/directory.c index 94303db0b..876d097b5 100644 --- a/src/src/directory.c +++ b/src/src/directory.c @@ -36,7 +36,7 @@ Returns: panic on failure if panic is set; otherwise return FALSE; */ BOOL -directory_make(const uschar *parent, const uschar *name, +directory_make(const uschar * parent, const uschar * name, int mode, BOOL panic) { BOOL use_chown = parent == spool_directory && geteuid() == root_uid; diff --git a/src/src/dkim.c b/src/src/dkim.c index 9e76c51a0..e0b76c3b1 100644 --- a/src/src/dkim.c +++ b/src/src/dkim.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge, 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/dkim_transport.c b/src/src/dkim_transport.c index 8c8d9b41a..63870c57f 100644 --- a/src/src/dkim_transport.c +++ b/src/src/dkim_transport.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2022 - 2023 */ +/* Copyright (c) The Exim Maintainers 2022 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/dmarc.c b/src/src/dmarc.c index f684e08ea..28fce0624 100644 --- a/src/src/dmarc.c +++ b/src/src/dmarc.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ /* DMARC support. - Copyright (c) The Exim Maintainers 2019 - 2023 + Copyright (c) The Exim Maintainers 2019 - 2024 Copyright (c) Todd Lyons 2012 - 2014 License: GPL */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/dns.c b/src/src/dns.c index 74c5a58c5..45dc1574d 100644 --- a/src/src/dns.c +++ b/src/src/dns.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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,71 @@ 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: + { +#ifndef DISABLE_EVENT + 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; +#endif /*EVENT*/ + return rc; + } } @@ -1172,12 +1218,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 +1243,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 +1281,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 +1308,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 5c9e64021..8111a4489 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -237,7 +237,7 @@ va_end(ap); static void term_handler(int sig) { -exit(1); +exim_exit(EXIT_FAILURE); } @@ -997,32 +997,35 @@ if (s) static gstring * show_db_version(gstring * g) { +g = string_cat(g, US"Hints DB:\n"); #ifdef DB_VERSION_STRING DEBUG(D_any) { - g = string_fmt_append(g, "Library version: BDB: Compile: %s\n", DB_VERSION_STRING); - g = string_fmt_append(g, " Runtime: %s\n", + g = string_fmt_append(g, " Library version: BDB: Compile: %s\n", DB_VERSION_STRING); + g = string_fmt_append(g, " Runtime: %s\n", db_version(NULL, NULL, NULL)); } else - g = string_fmt_append(g, "Berkeley DB: %s\n", DB_VERSION_STRING); + g = string_fmt_append(g, " Berkeley DB: %s\n", DB_VERSION_STRING); #elif defined(BTREEVERSION) && defined(HASHVERSION) # ifdef USE_DB - g = string_cat(g, US"Probably Berkeley DB version 1.8x (native mode)\n"); + g = string_cat(g, US" Probably Berkeley DB version 1.8x (native mode)\n"); # else - g = string_cat(g, US"Probably Berkeley DB version 1.8x (compatibility mode)\n"); + g = string_cat(g, US" Probably Berkeley DB version 1.8x (compatibility mode)\n"); # endif #elif defined(_DBM_RDONLY) || defined(dbm_dirfno) -g = string_cat(g, US"Probably ndbm\n"); +g = string_cat(g, US" Probably ndbm\n"); +#elif defined(USE_SQLITE) +g = string_cat(g, US" Using sqlite3\n"); #elif defined(USE_TDB) -g = string_cat(g, US"Using tdb\n"); +g = string_cat(g, US" Using tdb\n"); #else # ifdef USE_GDBM - g = string_cat(g, US"Probably GDBM (native mode)\n"); +g = string_cat(g, US" Probably GDBM (native mode)\n"); # else - g = string_cat(g, US"Probably GDBM (compatibility mode)\n"); +g = string_cat(g, US" Probably GDBM (compatibility mode)\n"); # endif #endif return g; @@ -1108,6 +1111,9 @@ g = string_cat(g, US"Support for:"); #ifndef DISABLE_ESMTP_LIMITS g = string_cat(g, US" ESMTP_Limits"); #endif +#ifndef DISABLE_WELLKNOWN + g = string_cat(g, US" ESMTP_Wellknown"); +#endif #ifndef DISABLE_EVENT g = string_cat(g, US" Event"); #endif @@ -2339,9 +2345,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 +2355,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, @@ -4685,12 +4692,12 @@ if (malware_test_file) if ((result = malware_in_file(malware_test_file)) == FAIL) { printf("No malware found.\n"); - exit(EXIT_SUCCESS); + exim_exit(EXIT_SUCCESS); } if (result != OK) { printf("Malware lookup returned non-okay/fail: %d\n", result); - exit(EXIT_FAILURE); + exim_exit(EXIT_FAILURE); } if (malware_name) printf("Malware found: %s\n", malware_name); @@ -4699,7 +4706,7 @@ if (malware_test_file) #else printf("Malware scanning not enabled at compile time.\n"); #endif - exit(EXIT_FAILURE); + exim_exit(EXIT_FAILURE); } /* Handle a request to list the delivery queue */ @@ -4708,7 +4715,7 @@ if (list_queue) { set_process_info("listing the queue"); queue_list(list_queue_option, argv + recipients_arg, argc - recipients_arg); - exit(EXIT_SUCCESS); + exim_exit(EXIT_SUCCESS); } /* Handle a request to count the delivery queue */ @@ -4717,7 +4724,7 @@ if (count_queue) { set_process_info("counting the queue"); fprintf(stdout, "%u\n", queue_count()); - exit(EXIT_SUCCESS); + exim_exit(EXIT_SUCCESS); } /* Handle actions on specific messages, except for the force delivery and @@ -4756,7 +4763,7 @@ if (msg_action_arg > 0 && msg_action != MSG_DELIVER && msg_action != MSG_LOAD) else if (!queue_action(argv[msg_action_arg], msg_action, argv, argc, recipients_arg)) yield = EXIT_FAILURE; - exit(yield); + exim_exit(yield); } /* We used to set up here to skip reading the ACL section, on @@ -5159,7 +5166,7 @@ if (f.daemon_listen || f.inetd_wait_mode || is_multiple_qrun()) (void)gettimeofday(&t0, NULL); # endif if (!tls_dropprivs_validate_require_cipher(FALSE)) - exit(1); + exim_exit(EXIT_FAILURE); # ifdef MEASURE_TIMING report_time_since(&t0, US"validate_ciphers (delta)"); # endif @@ -5443,11 +5450,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 */ @@ -6189,3 +6199,5 @@ return 0; /* To stop compiler warning */ /* End of exim.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/exim.h b/src/src/exim.h index 699b39165..9bf5dcdfc 100644 --- a/src/src/exim.h +++ b/src/src/exim.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2021 - 2022 */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -127,16 +127,6 @@ making unique names. */ # define EXIM_ARITH_MIN (-EXIM_ARITH_MAX - 1) #endif -/* Some systems have PATH_MAX and some have MAX_PATH_LEN. */ - -#ifndef PATH_MAX -# ifdef MAX_PATH_LEN -# define PATH_MAX MAX_PATH_LEN -# else -# define PATH_MAX 1024 -# endif -#endif - /* RFC 5321 specifies that the maximum length of a local-part is 64 octets and the maximum length of a domain is 255 octets, but then also defines the maximum length of a forward/reverse path as 256 not 64+1+255. @@ -532,7 +522,9 @@ config.h, mytypes.h, and store.h, so we don't need to mention them explicitly. */ #include "local_scan.h" +#include "path_max.h" #include "macros.h" +#include "blob.h" #include "hintsdb.h" #include "hintsdb_structs.h" #include "structs.h" diff --git a/src/src/exim_dbmbuild.c b/src/src/exim_dbmbuild.c index bd24faa5b..05387aa3f 100644 --- a/src/src/exim_dbmbuild.c +++ b/src/src/exim_dbmbuild.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -76,14 +76,6 @@ uschar * queue_name; BOOL split_spool_directory; -/* These introduced by the taintwarn handling */ -rmark -store_mark_3(const char *func, int linenumber) -{ return NULL; } -#ifdef ALLOW_INSECURE_TAINTED_DATA -BOOL allow_insecure_tainted_data; -#endif - /******************************************************************************/ @@ -177,7 +169,7 @@ BOOL lowercase = TRUE; BOOL warn = TRUE; BOOL duperr = TRUE; BOOL lastdup = FALSE; -#if !defined (USE_DB) && !defined(USE_TDB) && !defined(USE_GDBM) +#if !defined (USE_DB) && !defined(USE_TDB) && !defined(USE_GDBM) && !defined(USE_SQLITE) int is_db = 0; struct stat statbuf; #endif @@ -207,7 +199,7 @@ while (argc > 1) if (argc != 3) { printf("usage: exim_dbmbuild [-nolc] \n"); - exit(1); + exit(EXIT_FAILURE); } if (Ustrcmp(argv[arg], "-") == 0) @@ -215,17 +207,17 @@ if (Ustrcmp(argv[arg], "-") == 0) else if (!(f = fopen(argv[arg], "rb"))) { printf("exim_dbmbuild: unable to open %s: %s\n", argv[arg], strerror(errno)); - exit(1); + exit(EXIT_FAILURE); } /* By default Berkeley db does not put extensions on... which can be painful! */ -#if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) +#if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) && !defined(USE_SQLITE) if (Ustrcmp(argv[arg], argv[arg+1]) == 0) { printf("exim_dbmbuild: input and output filenames are the same\n"); - exit(1); + exit(EXIT_FAILURE); } #endif @@ -235,7 +227,7 @@ if (Ustrcmp(argv[arg], argv[arg+1]) == 0) if (strlen(argv[arg+1]) > sizeof(temp_dbmname) - 20) { printf("exim_dbmbuild: output filename is ridiculously long\n"); - exit(1); + exit(EXIT_FAILURE); } Ustrcpy(temp_dbmname, US argv[arg+1]); @@ -255,13 +247,13 @@ if (!(d = exim_dbopen(temp_dbmname, dirname, O_RDWR|O_CREAT|O_EXCL, 0644))) printf("exim_dbmbuild: unable to create %s: %s\n", temp_dbmname, strerror(errno)); (void)fclose(f); - exit(1); + exit(EXIT_FAILURE); } /* Unless using native db calls, see if we have created .db; if not, assume .dir & .pag */ -#if !defined(USE_DB) && !defined(USE_TDB) && !defined(USE_GDBM) +#if !defined(USE_DB) && !defined(USE_TDB) && !defined(USE_GDBM) && !defined(USE_SQLITE) sprintf(CS real_dbmname, "%s.db", temp_dbmname); is_db = Ustat(real_dbmname, &statbuf) == 0; #endif @@ -333,7 +325,8 @@ while (Ufgets(line, max_insize, f) != NULL) exim_datum_data_set(&content, buffer); exim_datum_size_set(&content, bptr - buffer + add_zero); - switch(rc = exim_dbputb(d, &key, &content)) + rc = exim_dbputb(d, &key, &content); + switch(rc) { case EXIM_DBPUTB_OK: count++; @@ -423,7 +416,8 @@ if (started) exim_datum_data_set(&content, buffer); exim_datum_size_set(&content, bptr - buffer + add_zero); - switch(rc = exim_dbputb(d, &key, &content)) + rc = exim_dbputb(d, &key, &content); + switch(rc) { case EXIM_DBPUTB_OK: count++; @@ -462,7 +456,7 @@ if (yield == 0 || yield == 1) printf("%d duplicate key%s \n", dupcount, (dupcount > 1)? "s" : ""); } - #if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) +#if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) || defined(USE_SQLITE) Ustrcpy(real_dbmname, temp_dbmname); Ustrcpy(buffer, US argv[arg+1]); if (Urename(real_dbmname, buffer) != 0) @@ -470,7 +464,7 @@ if (yield == 0 || yield == 1) printf("Unable to rename %s as %s\n", real_dbmname, buffer); return 1; } - #else +#else /* Rename a single .db file */ @@ -506,7 +500,7 @@ if (yield == 0 || yield == 1) } } - #endif /* USE_DB || USE_TDB || USE_GDBM */ +#endif /* USE_DB || USE_TDB || USE_GDBM || USE_SQLITE */ } /* Otherwise unlink the temporary files. */ @@ -514,7 +508,7 @@ if (yield == 0 || yield == 1) else { printf("dbmbuild abandoned\n"); -#if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) +#if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) || defined(USE_SQLITE) /* We created it, so safe to delete despite the name coming from outside */ /* coverity[tainted_string] */ Uunlink(temp_dbmname); @@ -531,10 +525,12 @@ else sprintf(CS real_dbmname, "%s.pag", temp_dbmname); Uunlink(real_dbmname); } -#endif /* USE_DB || USE_TDB */ +#endif /* USE_DB || USE_TDB || USE_GDBM || USE_SQLITE */ } return yield; } /* End of exim_dbmbuild.c */ +/* se aw ai sw=2 +*/ diff --git a/src/src/exim_dbutil.c b/src/src/exim_dbutil.c index c868832b1..397b1162e 100644 --- a/src/src/exim_dbutil.c +++ b/src/src/exim_dbutil.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -81,11 +81,6 @@ uschar * queue_name; BOOL split_spool_directory; -/* These introduced by the taintwarn handling */ -#ifdef ALLOW_INSECURE_TAINTED_DATA -BOOL allow_insecure_tainted_data; -#endif - /******************************************************************************/ @@ -287,78 +282,77 @@ Returns: NULL if the open failed, or the locking failed. */ open_db * -dbfn_open(uschar *name, int flags, open_db *dbblock, BOOL lof, BOOL panic) +dbfn_open(const uschar * name, int flags, open_db * dbblock, + BOOL lof, BOOL panic) { int rc; struct flock lock_data; -BOOL read_only = flags == O_RDONLY; +BOOL read_only = (flags & (O_WRONLY|O_RDWR)) == O_RDONLY; uschar * dirname, * filename; /* The first thing to do is to open a separate file on which to lock. This ensures that Exim has exclusive use of the database before it even tries to -open it. If there is a database, there should be a lock file in existence. */ +open it. If there is a database, there should be a lock file in existence; +if no lockfile we infer there is no database and error out. We open the +lockfile using the r/w mode requested for the DB, users lacking permission +for the DB access mode will error out here. */ -#ifdef COMPILE_UTILITY if ( asprintf(CSS &dirname, "%s/db", spool_directory) < 0 || asprintf(CSS &filename, "%s/%s.lockfile", dirname, name) < 0) return NULL; -#else -dirname = string_sprintf("%s/db", spool_directory); -filename = string_sprintf("%s/%s.lockfile", dirname, name); -#endif -dbblock->lockfd = Uopen(filename, flags, 0); -if (dbblock->lockfd < 0) +dbblock->lockfd = -1; +if (exim_lockfile_needed()) { - printf("** Failed to open database lock file %s: %s\n", filename, - strerror(errno)); - return NULL; - } + if ((dbblock->lockfd = Uopen(filename, flags, 0)) < 0) + { + printf("** Failed to open database lock file %s: %s\n", filename, + strerror(errno)); + return NULL; + } -/* Now we must get a lock on the opened lock file; do this with a blocking -lock that times out. */ + /* Now we must get a lock on the opened lock file; do this with a blocking + lock that times out. */ -lock_data.l_type = read_only ? F_RDLCK : F_WRLCK; -lock_data.l_whence = lock_data.l_start = lock_data.l_len = 0; + lock_data.l_type = read_only ? F_RDLCK : F_WRLCK; + lock_data.l_whence = lock_data.l_start = lock_data.l_len = 0; -sigalrm_seen = FALSE; -os_non_restarting_signal(SIGALRM, sigalrm_handler); -ALARM(EXIMDB_LOCK_TIMEOUT); -rc = fcntl(dbblock->lockfd, F_SETLKW, &lock_data); -ALARM_CLR(0); + sigalrm_seen = FALSE; + os_non_restarting_signal(SIGALRM, sigalrm_handler); + ALARM(EXIMDB_LOCK_TIMEOUT); + rc = fcntl(dbblock->lockfd, F_SETLKW, &lock_data); + ALARM_CLR(0); -if (sigalrm_seen) errno = ETIMEDOUT; -if (rc < 0) - { - printf("** Failed to get %s lock for %s: %s", - flags & O_WRONLY ? "write" : "read", - filename, - errno == ETIMEDOUT ? "timed out" : strerror(errno)); - (void)close(dbblock->lockfd); - return NULL; - } + if (sigalrm_seen) errno = ETIMEDOUT; + if (rc < 0) + { + printf("** Failed to get %s lock for %s: %s", + read_only ? "read" : "write", + filename, + errno == ETIMEDOUT ? "timed out" : strerror(errno)); + (void)close(dbblock->lockfd); + return NULL; + } -/* At this point we have an opened and locked separate lock file, that is, -exclusive access to the database, so we can go ahead and open it. */ + /* At this point we have an opened and locked separate lock file, that is, + exclusive access to the database, so we can go ahead and open it. */ + } -#ifdef COMPILE_UTILITY if (asprintf(CSS &filename, "%s/%s", dirname, name) < 0) return NULL; -#else -filename = string_sprintf("%s/%s", dirname, name); -#endif -dbblock->dbptr = exim_dbopen(filename, dirname, flags, 0); -if (!dbblock->dbptr) +if (flags & O_RDWR) flags |= O_CREAT; + +if (!(dbblock->dbptr = exim_dbopen(filename, dirname, flags, 0))) { - printf("** Failed to open DBM file %s for %s:\n %s%s\n", filename, - read_only? "reading" : "writing", strerror(errno), - #ifdef USE_DB + printf("** Failed to open DBM file %s for %s: %s%s\n", filename, + read_only ? "reading" : "writing", strerror(errno), +#ifdef USE_DB " (or Berkeley DB error while opening)" - #else +#else "" - #endif +#endif ); - (void)close(dbblock->lockfd); + if (dbblock->lockfd >= 0) (void)close(dbblock->lockfd); return NULL; } @@ -373,17 +367,17 @@ return dbblock; *************************************************/ /* Closing a file automatically unlocks it, so after closing the database, just -close the lock file. +close the lock file if there was one. Argument: a pointer to an open database block Returns: nothing */ void -dbfn_close(open_db *dbblock) +dbfn_close(open_db * dbp) { -exim_dbclose(dbblock->dbptr); -(void)close(dbblock->lockfd); +exim_dbclose(dbp->dbptr); +if (dbp->lockfd >= 0) (void) close(dbp->lockfd); } @@ -520,7 +514,7 @@ Arguments: cursor a pointer to a pointer to a cursor anchor, for those dbm libraries that use the notion of a cursor -Returns: the next record from the file, or +Returns: the next *key* (nul-terminated) from the file, or NULL if there are no more */ @@ -575,7 +569,7 @@ argc -= optind; argv += optind; spool_directory = argv[0]; if (!(dbm = dbfn_open(argv[1], O_RDONLY, &dbblock, FALSE, TRUE))) - exit(1); + exit(EXIT_FAILURE); /* Scan the file, formatting the information for each entry. Note that data is returned in a malloc'ed block, in order that it be @@ -1216,7 +1210,7 @@ printf("Tidying Exim hints database %s/db/%s\n", argv[1], argv[2]); spool_directory = argv[1]; if (!(dbm = dbfn_open(argv[2], O_RDWR, &dbblock, FALSE, TRUE))) - exit(1); + exit(EXIT_FAILURE); /* Prepare for building file names */ @@ -1427,3 +1421,5 @@ return 0; #endif /* EXIM_TIDYDB */ /* End of exim_dbutil.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/exim_lock.c b/src/src/exim_lock.c index 363c1bc71..b37f962d2 100644 --- a/src/src/exim_lock.c +++ b/src/src/exim_lock.c @@ -103,7 +103,7 @@ usage(void) printf("usage: exim_lock [-v] [-q] [-lockfile] [-fcntl] [-flock] [-mbx]\n" " [-retries ] [-interval ] [-timeout ] [-restore-times]\n" " [command]\n"); -exit(1); +exit(EXIT_FAILURE); } @@ -227,7 +227,7 @@ if (use_flock) { printf("exim_lock: can't use flock() because it was not available in the\n" " operating system when exim_lock was compiled\n"); - exit(1); + exit(EXIT_FAILURE); } #endif @@ -271,14 +271,14 @@ if (*filename == '~') if (pw == NULL) { printf("exim_lock: unable to expand file name %s\n", argv[i-1]); - exit(1); + exit(EXIT_FAILURE); } if ((int)strlen(pw->pw_dir) + (int)strlen(filename) + 1 > sizeof(buffer)) { printf("exim_lock: expanded file name %s%s is too long", pw->pw_dir, filename); - exit(1); + exit(EXIT_FAILURE); } strcpy(buffer, pw->pw_dir); @@ -294,7 +294,7 @@ if (use_lockfile) if (uname(&s) < 0) { printf("exim_lock: failed to find host name using uname()\n"); - exit(1); + exit(EXIT_FAILURE); } primary_hostname = s.nodename; @@ -331,7 +331,7 @@ for (j = 0; j < lock_retries; j++) { printf("exim_lock: failed to create hitching post %s: %s\n", hitchname, strerror(errno)); - exit(1); + exit(EXIT_FAILURE); } /* Apply hitching post algorithm. */ diff --git a/src/src/exinext.src b/src/src/exinext.src index 5724812c4..882db6873 100644 --- a/src/src/exinext.src +++ b/src/src/exinext.src @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (c) The Exim Maintainers 2023 +# Copyright (c) The Exim Maintainers 2023 - 2024 # Copyright (c) University of Cambridge, 1995 - 2007 # See the file NOTICE for conditions of use and distribution. diff --git a/src/src/expand.c b/src/src/expand.c index 1d121756d..e7d089909 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -259,7 +259,9 @@ static uschar *op_table_main[] = { US"strlen", US"substr", US"uc", - US"utf8clean" }; + US"utf8clean", + US"xtextd", + }; enum { EOP_ADDRESS = nelem(op_table_underscore), @@ -307,7 +309,9 @@ enum { EOP_STRLEN, EOP_SUBSTR, EOP_UC, - EOP_UTF8CLEAN }; + EOP_UTF8CLEAN, + EOP_XTEXTD, + }; /* Table of condition names, and corresponding switch numbers. The names must @@ -7326,19 +7330,20 @@ NOT_ITEM: ; case EOP_LC: { - int count = 0; - uschar *t = sub - 1; - while (*(++t) != 0) { *t = tolower(*t); count++; } - yield = string_catn(yield, sub, count); + uschar * t = sub - 1; + while (*++t) *t = tolower(*t); + yield = string_catn(yield, sub, t-sub); break; } + { + uschar * s = sub; + } case EOP_UC: { - int count = 0; - uschar *t = sub - 1; - while (*(++t) != 0) { *t = toupper(*t); count++; } - yield = string_catn(yield, sub, count); + uschar * t = sub - 1; + while (*++t) *t = toupper(*t); + yield = string_catn(yield, sub, t-sub); break; } @@ -7774,7 +7779,6 @@ NOT_ITEM: ; } else yield = string_cat(yield, sub); - break; } /* quote_lookuptype does lookup-specific quoting */ @@ -7806,526 +7810,533 @@ NOT_ITEM: ; } yield = string_cat(yield, sub); - break; } + break; - /* rx quote sticks in \ before any non-alphameric character so that - the insertion works in a regular expression. */ + /* rx quote sticks in \ before any non-alphameric character so that + the insertion works in a regular expression. */ - case EOP_RXQUOTE: + case EOP_RXQUOTE: + { + uschar *t = sub - 1; + while (*(++t) != 0) { - uschar *t = sub - 1; - while (*(++t) != 0) - { - if (!isalnum(*t)) - yield = string_catn(yield, US"\\", 1); - yield = string_catn(yield, t, 1); - } - break; + if (!isalnum(*t)) + yield = string_catn(yield, US"\\", 1); + yield = string_catn(yield, t, 1); } + break; + } - /* RFC 2047 encodes, assuming headers_charset (default ISO 8859-1) as - prescribed by the RFC, if there are characters that need to be encoded */ + /* RFC 2047 encodes, assuming headers_charset (default ISO 8859-1) as + prescribed by the RFC, if there are characters that need to be encoded */ - case EOP_RFC2047: - yield = string_cat(yield, - parse_quote_2047(sub, Ustrlen(sub), headers_charset, - FALSE)); - break; + case EOP_RFC2047: + yield = string_cat(yield, + parse_quote_2047(sub, Ustrlen(sub), headers_charset, + FALSE)); + break; - /* RFC 2047 decode */ + /* RFC 2047 decode */ - case EOP_RFC2047D: + case EOP_RFC2047D: + { + int len; + uschar *error; + uschar *decoded = rfc2047_decode(sub, check_rfc2047_length, + headers_charset, '?', &len, &error); + if (error) { - int len; - uschar *error; - uschar *decoded = rfc2047_decode(sub, check_rfc2047_length, - headers_charset, '?', &len, &error); - if (error) - { - expand_string_message = error; - goto EXPAND_FAILED; - } - yield = string_catn(yield, decoded, len); - break; + expand_string_message = error; + goto EXPAND_FAILED; } + yield = string_catn(yield, decoded, len); + break; + } - /* from_utf8 converts UTF-8 to 8859-1, turning non-existent chars into - underscores */ + /* from_utf8 converts UTF-8 to 8859-1, turning non-existent chars into + underscores */ - case EOP_FROM_UTF8: + case EOP_FROM_UTF8: + { + uschar * buff = store_get(4, sub); + while (*sub) { - uschar * buff = store_get(4, sub); - while (*sub) - { - int c; - GETUTF8INC(c, sub); - if (c > 255) c = '_'; - buff[0] = c; - yield = string_catn(yield, buff, 1); - } - break; + int c; + GETUTF8INC(c, sub); + if (c > 255) c = '_'; + buff[0] = c; + yield = string_catn(yield, buff, 1); } + break; + } - /* replace illegal UTF-8 sequences by replacement character */ + /* replace illegal UTF-8 sequences by replacement character */ - #define UTF8_REPLACEMENT_CHAR US"?" + #define UTF8_REPLACEMENT_CHAR US"?" + + case EOP_UTF8CLEAN: + { + int seq_len = 0, index = 0, bytes_left = 0, complete; + u_long codepoint = (u_long)-1; + uschar seq_buff[4]; /* accumulate utf-8 here */ - case EOP_UTF8CLEAN: + /* Manually track tainting, as we deal in individual chars below */ + + if (!yield) + yield = string_get_tainted(Ustrlen(sub), sub); + else if (!yield->s || !yield->ptr) { - int seq_len = 0, index = 0, bytes_left = 0, complete; - u_long codepoint = (u_long)-1; - uschar seq_buff[4]; /* accumulate utf-8 here */ + yield->s = store_get(yield->size = Ustrlen(sub), sub); + gstring_reset(yield); + } + else if (is_incompatible(yield->s, sub)) + gstring_rebuffer(yield, sub); - /* Manually track tainting, as we deal in individual chars below */ + /* Check the UTF-8, byte-by-byte */ + + while (*sub) + { + complete = 0; + uschar c = *sub++; - if (!yield) - yield = string_get_tainted(Ustrlen(sub), sub); - else if (!yield->s || !yield->ptr) + if (bytes_left) { - yield->s = store_get(yield->size = Ustrlen(sub), sub); - gstring_reset(yield); + if ((c & 0xc0) != 0x80) + /* wrong continuation byte; invalidate all bytes */ + complete = 1; /* error */ + else + { + codepoint = (codepoint << 6) | (c & 0x3f); + seq_buff[index++] = c; + if (--bytes_left == 0) /* codepoint complete */ + if(codepoint > 0x10FFFF) /* is it too large? */ + complete = -1; /* error (RFC3629 limit) */ + else if ( (codepoint & 0x1FF800 ) == 0xD800 ) /* surrogate */ + /* A UTF-16 surrogate (which should be one of a pair that + encode a Unicode codepoint that is outside the Basic + Multilingual Plane). Error, not UTF8. + RFC2279.2 is slightly unclear on this, but + https://unicodebook.readthedocs.io/issues.html#strict-utf8-decoder + says "Surrogates characters are also invalid in UTF-8: + characters in U+D800—U+DFFF have to be rejected." */ + complete = -1; + else + { /* finished; output utf-8 sequence */ + yield = string_catn(yield, seq_buff, seq_len); + index = 0; + } + } } - else if (is_incompatible(yield->s, sub)) - gstring_rebuffer(yield, sub); - - /* Check the UTF-8, byte-by-byte */ - - while (*sub) + else /* no bytes left: new sequence */ { - complete = 0; - uschar c = *sub++; - - if (bytes_left) + if (!(c & 0x80)) /* 1-byte sequence, US-ASCII, keep it */ { - if ((c & 0xc0) != 0x80) - /* wrong continuation byte; invalidate all bytes */ - complete = 1; /* error */ + yield = string_catn(yield, &c, 1); + continue; + } + if ((c & 0xe0) == 0xc0) /* 2-byte sequence */ + if (c == 0xc0 || c == 0xc1) /* 0xc0 and 0xc1 are illegal */ + complete = -1; else { - codepoint = (codepoint << 6) | (c & 0x3f); - seq_buff[index++] = c; - if (--bytes_left == 0) /* codepoint complete */ - if(codepoint > 0x10FFFF) /* is it too large? */ - complete = -1; /* error (RFC3629 limit) */ - else if ( (codepoint & 0x1FF800 ) == 0xD800 ) /* surrogate */ - /* A UTF-16 surrogate (which should be one of a pair that - encode a Unicode codepoint that is outside the Basic - Multilingual Plane). Error, not UTF8. - RFC2279.2 is slightly unclear on this, but - https://unicodebook.readthedocs.io/issues.html#strict-utf8-decoder - says "Surrogates characters are also invalid in UTF-8: - characters in U+D800—U+DFFF have to be rejected." */ - complete = -1; - else - { /* finished; output utf-8 sequence */ - yield = string_catn(yield, seq_buff, seq_len); - index = 0; - } + bytes_left = 1; + codepoint = c & 0x1f; } + else if ((c & 0xf0) == 0xe0) /* 3-byte sequence */ + { + bytes_left = 2; + codepoint = c & 0x0f; } - else /* no bytes left: new sequence */ + else if ((c & 0xf8) == 0xf0) /* 4-byte sequence */ { - if (!(c & 0x80)) /* 1-byte sequence, US-ASCII, keep it */ - { - yield = string_catn(yield, &c, 1); - continue; - } - if ((c & 0xe0) == 0xc0) /* 2-byte sequence */ - if (c == 0xc0 || c == 0xc1) /* 0xc0 and 0xc1 are illegal */ - complete = -1; - else - { - bytes_left = 1; - codepoint = c & 0x1f; - } - else if ((c & 0xf0) == 0xe0) /* 3-byte sequence */ - { - bytes_left = 2; - codepoint = c & 0x0f; - } - else if ((c & 0xf8) == 0xf0) /* 4-byte sequence */ - { - bytes_left = 3; - codepoint = c & 0x07; - } - else /* invalid or too long (RFC3629 allows only 4 bytes) */ - complete = -1; + bytes_left = 3; + codepoint = c & 0x07; + } + else /* invalid or too long (RFC3629 allows only 4 bytes) */ + complete = -1; - seq_buff[index++] = c; - seq_len = bytes_left + 1; - } /* if(bytes_left) */ + seq_buff[index++] = c; + seq_len = bytes_left + 1; + } /* if(bytes_left) */ - if (complete != 0) - { - bytes_left = index = 0; - yield = string_catn(yield, UTF8_REPLACEMENT_CHAR, 1); - } - if ((complete == 1) && ((c & 0x80) == 0)) - /* ASCII character follows incomplete sequence */ - yield = string_catn(yield, &c, 1); + if (complete != 0) + { + bytes_left = index = 0; + yield = string_catn(yield, UTF8_REPLACEMENT_CHAR, 1); } - /* If given a sequence truncated mid-character, we also want to report ? - Eg, ${length_1:フィル} is one byte, not one character, so we expect - ${utf8clean:${length_1:フィル}} to yield '?' */ + if ((complete == 1) && ((c & 0x80) == 0)) + /* ASCII character follows incomplete sequence */ + yield = string_catn(yield, &c, 1); + } + /* If given a sequence truncated mid-character, we also want to report ? + Eg, ${length_1:フィル} is one byte, not one character, so we expect + ${utf8clean:${length_1:フィル}} to yield '?' */ - if (bytes_left != 0) - yield = string_catn(yield, UTF8_REPLACEMENT_CHAR, 1); + if (bytes_left != 0) + yield = string_catn(yield, UTF8_REPLACEMENT_CHAR, 1); - break; - } + break; + } #ifdef SUPPORT_I18N - case EOP_UTF8_DOMAIN_TO_ALABEL: + case EOP_UTF8_DOMAIN_TO_ALABEL: + { + uschar * error = NULL; + uschar * s = string_domain_utf8_to_alabel(sub, &error); + if (error) { - uschar * error = NULL; - uschar * s = string_domain_utf8_to_alabel(sub, &error); - if (error) - { - expand_string_message = string_sprintf( - "error converting utf8 (%s) to alabel: %s", - string_printing(sub), error); - goto EXPAND_FAILED; - } - yield = string_cat(yield, s); - break; + expand_string_message = string_sprintf( + "error converting utf8 (%s) to alabel: %s", + string_printing(sub), error); + goto EXPAND_FAILED; } + yield = string_cat(yield, s); + break; + } - case EOP_UTF8_DOMAIN_FROM_ALABEL: + case EOP_UTF8_DOMAIN_FROM_ALABEL: + { + uschar * error = NULL; + uschar * s = string_domain_alabel_to_utf8(sub, &error); + if (error) { - uschar * error = NULL; - uschar * s = string_domain_alabel_to_utf8(sub, &error); - if (error) - { - expand_string_message = string_sprintf( - "error converting alabel (%s) to utf8: %s", - string_printing(sub), error); - goto EXPAND_FAILED; - } - yield = string_cat(yield, s); - break; + expand_string_message = string_sprintf( + "error converting alabel (%s) to utf8: %s", + string_printing(sub), error); + goto EXPAND_FAILED; } + yield = string_cat(yield, s); + break; + } - case EOP_UTF8_LOCALPART_TO_ALABEL: + case EOP_UTF8_LOCALPART_TO_ALABEL: + { + uschar * error = NULL; + uschar * s = string_localpart_utf8_to_alabel(sub, &error); + if (error) { - uschar * error = NULL; - uschar * s = string_localpart_utf8_to_alabel(sub, &error); - if (error) - { - expand_string_message = string_sprintf( - "error converting utf8 (%s) to alabel: %s", - string_printing(sub), error); - goto EXPAND_FAILED; - } - yield = string_cat(yield, s); - DEBUG(D_expand) debug_printf_indent("yield: '%Y'\n", yield); - break; + expand_string_message = string_sprintf( + "error converting utf8 (%s) to alabel: %s", + string_printing(sub), error); + goto EXPAND_FAILED; } + yield = string_cat(yield, s); + DEBUG(D_expand) debug_printf_indent("yield: '%Y'\n", yield); + break; + } - case EOP_UTF8_LOCALPART_FROM_ALABEL: + case EOP_UTF8_LOCALPART_FROM_ALABEL: + { + uschar * error = NULL; + uschar * s = string_localpart_alabel_to_utf8(sub, &error); + if (error) { - uschar * error = NULL; - uschar * s = string_localpart_alabel_to_utf8(sub, &error); - if (error) - { - expand_string_message = string_sprintf( - "error converting alabel (%s) to utf8: %s", - string_printing(sub), error); - goto EXPAND_FAILED; - } - yield = string_cat(yield, s); - break; + expand_string_message = string_sprintf( + "error converting alabel (%s) to utf8: %s", + string_printing(sub), error); + goto EXPAND_FAILED; } + yield = string_cat(yield, s); + break; + } #endif /* EXPERIMENTAL_INTERNATIONAL */ - /* escape turns all non-printing characters into escape sequences. */ + /* escape turns all non-printing characters into escape sequences. */ - case EOP_ESCAPE: - { - const uschar * t = string_printing(sub); - yield = string_cat(yield, t); - break; - } + case EOP_ESCAPE: + { + const uschar * t = string_printing(sub); + yield = string_cat(yield, t); + break; + } - case EOP_ESCAPE8BIT: - { - uschar c; + case EOP_ESCAPE8BIT: + { + uschar c; - for (const uschar * s = sub; (c = *s); s++) - yield = c < 127 && c != '\\' - ? string_catn(yield, s, 1) - : string_fmt_append(yield, "\\%03o", c); - break; - } + for (const uschar * s = sub; (c = *s); s++) + yield = c < 127 && c != '\\' + ? string_catn(yield, s, 1) + : string_fmt_append(yield, "\\%03o", c); + break; + } - /* Handle numeric expression evaluation */ + /* Handle numeric expression evaluation */ - case EOP_EVAL: - case EOP_EVAL10: + case EOP_EVAL: + case EOP_EVAL10: + { + uschar *save_sub = sub; + uschar *error = NULL; + int_eximarith_t n = eval_expr(&sub, (c == EOP_EVAL10), &error, FALSE); + if (error) { - uschar *save_sub = sub; - uschar *error = NULL; - int_eximarith_t n = eval_expr(&sub, (c == EOP_EVAL10), &error, FALSE); - if (error) - { - expand_string_message = string_sprintf("error in expression " - "evaluation: %s (after processing \"%.*s\")", error, - (int)(sub-save_sub), save_sub); - goto EXPAND_FAILED; - } - yield = string_fmt_append(yield, PR_EXIM_ARITH, n); - break; + expand_string_message = string_sprintf("error in expression " + "evaluation: %s (after processing \"%.*s\")", error, + (int)(sub-save_sub), save_sub); + goto EXPAND_FAILED; } + yield = string_fmt_append(yield, PR_EXIM_ARITH, n); + break; + } - /* Handle time period formatting */ + /* Handle time period formatting */ - case EOP_TIME_EVAL: + case EOP_TIME_EVAL: + { + int n = readconf_readtime(sub, 0, FALSE); + if (n < 0) { - int n = readconf_readtime(sub, 0, FALSE); - if (n < 0) - { - expand_string_message = string_sprintf("string \"%s\" is not an " - "Exim time interval in \"%s\" operator", sub, name); - goto EXPAND_FAILED; - } - yield = string_fmt_append(yield, "%d", n); - break; + expand_string_message = string_sprintf("string \"%s\" is not an " + "Exim time interval in \"%s\" operator", sub, name); + goto EXPAND_FAILED; } + yield = string_fmt_append(yield, "%d", n); + break; + } - case EOP_TIME_INTERVAL: + case EOP_TIME_INTERVAL: + { + int n; + uschar *t = read_number(&n, sub); + if (*t != 0) /* Not A Number*/ { - int n; - uschar *t = read_number(&n, sub); - if (*t != 0) /* Not A Number*/ - { - expand_string_message = string_sprintf("string \"%s\" is not a " - "positive number in \"%s\" operator", sub, name); - goto EXPAND_FAILED; - } - t = readconf_printtime(n); - yield = string_cat(yield, t); - break; + expand_string_message = string_sprintf("string \"%s\" is not a " + "positive number in \"%s\" operator", sub, name); + goto EXPAND_FAILED; } + t = readconf_printtime(n); + yield = string_cat(yield, t); + break; + } - /* Convert string to base64 encoding */ + /* Convert string to base64 encoding */ - case EOP_STR2B64: - case EOP_BASE64: - { + case EOP_STR2B64: + case EOP_BASE64: + { #ifndef DISABLE_TLS - uschar * s = vp && *(void **)vp->value - ? tls_cert_der_b64(*(void **)vp->value) - : b64encode(CUS sub, Ustrlen(sub)); + uschar * s = vp && *(void **)vp->value + ? tls_cert_der_b64(*(void **)vp->value) + : b64encode(CUS sub, Ustrlen(sub)); #else - uschar * s = b64encode(CUS sub, Ustrlen(sub)); + uschar * s = b64encode(CUS sub, Ustrlen(sub)); #endif - yield = string_cat(yield, s); - break; - } + yield = string_cat(yield, s); + break; + } - case EOP_BASE64D: + case EOP_BASE64D: + { + uschar * s; + int len = b64decode(sub, &s, sub); + if (len < 0) { - uschar * s; - int len = b64decode(sub, &s, sub); - if (len < 0) - { - expand_string_message = string_sprintf("string \"%s\" is not " - "well-formed for \"%s\" operator", sub, name); - goto EXPAND_FAILED; - } - yield = string_cat(yield, s); - break; + expand_string_message = string_sprintf("string \"%s\" is not " + "well-formed for \"%s\" operator", sub, name); + goto EXPAND_FAILED; } + yield = string_cat(yield, s); + break; + } - /* strlen returns the length of the string */ + /* strlen returns the length of the string */ - case EOP_STRLEN: - yield = string_fmt_append(yield, "%d", Ustrlen(sub)); - break; + case EOP_STRLEN: + yield = string_fmt_append(yield, "%d", Ustrlen(sub)); + break; + + /* length_n or l_n takes just the first n characters or the whole string, + whichever is the shorter; + + substr_m_n, and s_m_n take n characters from offset m; negative m take + from the end; l_n is synonymous with s_0_n. If n is omitted in substr it + takes the rest, either to the right or to the left. + + hash_n or h_n makes a hash of length n from the string, yielding n + characters from the set a-z; hash_n_m makes a hash of length n, but + uses m characters from the set a-zA-Z0-9. + + nhash_n returns a single number between 0 and n-1 (in text form), while + nhash_n_m returns a div/mod hash as two numbers "a/b". The first lies + between 0 and n-1 and the second between 0 and m-1. */ + + case EOP_LENGTH: + case EOP_L: + case EOP_SUBSTR: + case EOP_S: + case EOP_HASH: + case EOP_H: + case EOP_NHASH: + case EOP_NH: + { + int sign = 1; + int value1 = 0; + int value2 = -1; + int *pn; + int len; + uschar *ret; - /* length_n or l_n takes just the first n characters or the whole string, - whichever is the shorter; - - substr_m_n, and s_m_n take n characters from offset m; negative m take - from the end; l_n is synonymous with s_0_n. If n is omitted in substr it - takes the rest, either to the right or to the left. - - hash_n or h_n makes a hash of length n from the string, yielding n - characters from the set a-z; hash_n_m makes a hash of length n, but - uses m characters from the set a-zA-Z0-9. - - nhash_n returns a single number between 0 and n-1 (in text form), while - nhash_n_m returns a div/mod hash as two numbers "a/b". The first lies - between 0 and n-1 and the second between 0 and m-1. */ - - case EOP_LENGTH: - case EOP_L: - case EOP_SUBSTR: - case EOP_S: - case EOP_HASH: - case EOP_H: - case EOP_NHASH: - case EOP_NH: + if (!arg) { - int sign = 1; - int value1 = 0; - int value2 = -1; - int *pn; - int len; - uschar *ret; + expand_string_message = string_sprintf("missing values after %s", + name); + goto EXPAND_FAILED; + } - if (!arg) - { - expand_string_message = string_sprintf("missing values after %s", - name); - goto EXPAND_FAILED; - } + /* "length" has only one argument, effectively being synonymous with + substr_0_n. */ - /* "length" has only one argument, effectively being synonymous with - substr_0_n. */ + if (c == EOP_LENGTH || c == EOP_L) + { + pn = &value2; + value2 = 0; + } - if (c == EOP_LENGTH || c == EOP_L) + /* The others have one or two arguments; for "substr" the first may be + negative. The second being negative means "not supplied". */ + + else + { + pn = &value1; + if (name[0] == 's' && *arg == '-') { sign = -1; arg++; } + } + + /* Read up to two numbers, separated by underscores */ + + ret = arg; + while (*arg != 0) + { + if (arg != ret && *arg == '_' && pn == &value1) { pn = &value2; value2 = 0; + if (arg[1] != 0) arg++; } - - /* The others have one or two arguments; for "substr" the first may be - negative. The second being negative means "not supplied". */ - - else + else if (!isdigit(*arg)) { - pn = &value1; - if (name[0] == 's' && *arg == '-') { sign = -1; arg++; } + expand_string_message = + string_sprintf("non-digit after underscore in \"%s\"", name); + goto EXPAND_FAILED; } + else *pn = (*pn)*10 + *arg++ - '0'; + } + value1 *= sign; - /* Read up to two numbers, separated by underscores */ - - ret = arg; - while (*arg != 0) - { - if (arg != ret && *arg == '_' && pn == &value1) - { - pn = &value2; - value2 = 0; - if (arg[1] != 0) arg++; - } - else if (!isdigit(*arg)) - { - expand_string_message = - string_sprintf("non-digit after underscore in \"%s\"", name); - goto EXPAND_FAILED; - } - else *pn = (*pn)*10 + *arg++ - '0'; - } - value1 *= sign; + /* Perform the required operation */ - /* Perform the required operation */ + ret = c == EOP_HASH || c == EOP_H + ? compute_hash(sub, value1, value2, &len) + : c == EOP_NHASH || c == EOP_NH + ? compute_nhash(sub, value1, value2, &len) + : extract_substr(sub, value1, value2, &len); + if (!ret) goto EXPAND_FAILED; - ret = c == EOP_HASH || c == EOP_H - ? compute_hash(sub, value1, value2, &len) - : c == EOP_NHASH || c == EOP_NH - ? compute_nhash(sub, value1, value2, &len) - : extract_substr(sub, value1, value2, &len); - if (!ret) goto EXPAND_FAILED; + yield = string_catn(yield, ret, len); + break; + } - yield = string_catn(yield, ret, len); - break; - } + /* Stat a path */ - /* Stat a path */ + case EOP_STAT: + { + uschar smode[12]; + uschar **modetable[3]; + mode_t mode; + struct stat st; - case EOP_STAT: + if (expand_forbid & RDO_EXISTS) { - uschar smode[12]; - uschar **modetable[3]; - mode_t mode; - struct stat st; + expand_string_message = US"Use of the stat() expansion is not permitted"; + goto EXPAND_FAILED; + } - if (expand_forbid & RDO_EXISTS) - { - expand_string_message = US"Use of the stat() expansion is not permitted"; - goto EXPAND_FAILED; - } + if (stat(CS sub, &st) < 0) + { + expand_string_message = string_sprintf("stat(%s) failed: %s", + sub, strerror(errno)); + goto EXPAND_FAILED; + } + mode = st.st_mode; + switch (mode & S_IFMT) + { + case S_IFIFO: smode[0] = 'p'; break; + case S_IFCHR: smode[0] = 'c'; break; + case S_IFDIR: smode[0] = 'd'; break; + case S_IFBLK: smode[0] = 'b'; break; + case S_IFREG: smode[0] = '-'; break; + default: smode[0] = '?'; break; + } - if (stat(CS sub, &st) < 0) - { - expand_string_message = string_sprintf("stat(%s) failed: %s", - sub, strerror(errno)); - goto EXPAND_FAILED; - } - mode = st.st_mode; - switch (mode & S_IFMT) - { - case S_IFIFO: smode[0] = 'p'; break; - case S_IFCHR: smode[0] = 'c'; break; - case S_IFDIR: smode[0] = 'd'; break; - case S_IFBLK: smode[0] = 'b'; break; - case S_IFREG: smode[0] = '-'; break; - default: smode[0] = '?'; break; - } + modetable[0] = ((mode & 01000) == 0)? mtable_normal : mtable_sticky; + modetable[1] = ((mode & 02000) == 0)? mtable_normal : mtable_setid; + modetable[2] = ((mode & 04000) == 0)? mtable_normal : mtable_setid; - modetable[0] = ((mode & 01000) == 0)? mtable_normal : mtable_sticky; - modetable[1] = ((mode & 02000) == 0)? mtable_normal : mtable_setid; - modetable[2] = ((mode & 04000) == 0)? mtable_normal : mtable_setid; + for (int i = 0; i < 3; i++) + { + memcpy(CS(smode + 7 - i*3), CS(modetable[i][mode & 7]), 3); + mode >>= 3; + } - for (int i = 0; i < 3; i++) - { - memcpy(CS(smode + 7 - i*3), CS(modetable[i][mode & 7]), 3); - mode >>= 3; - } + smode[10] = 0; + yield = string_fmt_append(yield, + "mode=%04lo smode=%s inode=%ld device=%ld links=%ld " + "uid=%ld gid=%ld size=" OFF_T_FMT " atime=%ld mtime=%ld ctime=%ld", + (long)(st.st_mode & 077777), smode, (long)st.st_ino, + (long)st.st_dev, (long)st.st_nlink, (long)st.st_uid, + (long)st.st_gid, st.st_size, (long)st.st_atime, + (long)st.st_mtime, (long)st.st_ctime); + break; + } - smode[10] = 0; - yield = string_fmt_append(yield, - "mode=%04lo smode=%s inode=%ld device=%ld links=%ld " - "uid=%ld gid=%ld size=" OFF_T_FMT " atime=%ld mtime=%ld ctime=%ld", - (long)(st.st_mode & 077777), smode, (long)st.st_ino, - (long)st.st_dev, (long)st.st_nlink, (long)st.st_uid, - (long)st.st_gid, st.st_size, (long)st.st_atime, - (long)st.st_mtime, (long)st.st_ctime); - break; - } + /* vaguely random number less than N */ - /* vaguely random number less than N */ + case EOP_RANDINT: + { + int_eximarith_t max = expanded_string_integer(sub, TRUE); - case EOP_RANDINT: - { - int_eximarith_t max = expanded_string_integer(sub, TRUE); + if (expand_string_message) + goto EXPAND_FAILED; + yield = string_fmt_append(yield, "%d", vaguely_random_number((int)max)); + break; + } - if (expand_string_message) - goto EXPAND_FAILED; - yield = string_fmt_append(yield, "%d", vaguely_random_number((int)max)); - break; - } + /* Reverse IP, including IPv6 to dotted-nibble */ - /* Reverse IP, including IPv6 to dotted-nibble */ + case EOP_REVERSE_IP: + { + int family, maskptr; + uschar reversed[128]; - case EOP_REVERSE_IP: + family = string_is_ip_address(sub, &maskptr); + if (family == 0) { - int family, maskptr; - uschar reversed[128]; - - family = string_is_ip_address(sub, &maskptr); - if (family == 0) - { - expand_string_message = string_sprintf( - "reverse_ip() not given an IP address [%s]", sub); - goto EXPAND_FAILED; - } - invert_address(reversed, sub); - yield = string_cat(yield, reversed); - break; + expand_string_message = string_sprintf( + "reverse_ip() not given an IP address [%s]", sub); + goto EXPAND_FAILED; } + invert_address(reversed, sub); + yield = string_cat(yield, reversed); + break; + } - /* Unknown operator */ + case EOP_XTEXTD: + { + uschar * s; + int len = auth_xtextdecode(sub, &s); + yield = string_catn(yield, s, len); + break; + } - default: - expand_string_message = - string_sprintf("unknown expansion operator \"%s\"", name); - goto EXPAND_FAILED; - } /* EOP_* switch */ + /* Unknown operator */ + default: + expand_string_message = + string_sprintf("unknown expansion operator \"%s\"", name); + goto EXPAND_FAILED; + } /* EOP_* switch */ - DEBUG(D_expand) + DEBUG(D_expand) { const uschar * res = string_from_gstring(yield); const uschar * s = res + expansion_start; diff --git a/src/src/filter.c b/src/src/filter.c index 18567f17c..813ffdd7c 100644 --- a/src/src/filter.c +++ b/src/src/filter.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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 }; @@ -795,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: @@ -810,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; } } @@ -904,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 @@ -920,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. @@ -1225,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) @@ -1712,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]; @@ -1744,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]; @@ -1820,7 +1848,7 @@ while (commands) } break; - case save_command: + case SAVE_COMMAND: s = expargs[0]; mode = commands->args[1].i; @@ -1863,7 +1891,7 @@ while (commands) } break; - case pipe_command: + case PIPE_COMMAND: s = string_copy(commands->args[0].u); if (filter_test != FTEST_NONE) { @@ -1913,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) @@ -1929,7 +1957,7 @@ while (commands) } break; - case logwrite_command: + case LOGWRITE_COMMAND: s = expargs[0]; if (filter_test != FTEST_NONE) @@ -1988,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]; @@ -2032,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; @@ -2062,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(); @@ -2074,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; @@ -2099,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) @@ -2196,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++) { @@ -2238,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++) { @@ -2344,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]); diff --git a/src/src/filtertest.c b/src/src/filtertest.c index 2af5f87c2..60a853dcf 100644 --- a/src/src/filtertest.c +++ b/src/src/filtertest.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2021 - 2022 */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/functions.h b/src/src/functions.h index 9f6396a17..cdf97f8bd 100644 --- a/src/src/functions.h +++ b/src/src/functions.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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); diff --git a/src/src/globals.c b/src/src/globals.c index 2885caa23..d51644e05 100644 --- a/src/src/globals.c +++ b/src/src/globals.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -467,7 +467,7 @@ uschar *acl_smtp_quit = NULL; uschar *acl_smtp_rcpt = NULL; uschar *acl_smtp_starttls = NULL; uschar *acl_smtp_vrfy = NULL; -#ifdef EXPERIMENTAL_WELLKNOWN +#ifndef DISABLE_WELLKNOWN uschar *acl_smtp_wellknown = NULL; #endif @@ -500,6 +500,9 @@ uschar *acl_wherenames[] = { [ACL_WHERE_RCPT] = US"RCPT", [ACL_WHERE_QUIT] = US"QUIT", [ACL_WHERE_STARTTLS] = US"STARTTLS", [ACL_WHERE_VRFY] = US"VRFY", +#ifndef DISABLE_WELLKNOWN + [ACL_WHERE_WELLKNOWN] = US"WELLKNOWN", +#endif [ACL_WHERE_DELIVERY] = US"delivery", [ACL_WHERE_UNKNOWN] = US"unknown" }; @@ -519,6 +522,9 @@ uschar *acl_wherecodes[] = { [ACL_WHERE_RCPT] = US"550", [ACL_WHERE_EXPN] = US"550", [ACL_WHERE_HELO] = US"550", [ACL_WHERE_STARTTLS] = US"550", +#ifndef DISABLE_WELLKNOWN + [ACL_WHERE_WELLKNOWN] =US"550", +#endif [ACL_WHERE_VRFY] = US"252", }; @@ -909,10 +915,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 @@ -999,9 +1005,6 @@ 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 @@ -1669,6 +1672,11 @@ int warning_count = 0; const uschar *warnmsg_delay = NULL; const uschar *warnmsg_recipients = NULL; +#ifndef DISABLE_WELLKNOWN +uschar *wellknown_advertise_hosts = NULL; +uschar *wellknown_response = NULL; +#endif + /* End of globals.c */ /* vi: aw ai sw=2 */ diff --git a/src/src/globals.h b/src/src/globals.h index 427590050..dc9d384db 100644 --- a/src/src/globals.h +++ b/src/src/globals.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -342,6 +342,9 @@ extern uschar *acl_smtp_quit; /* ACL run for QUIT */ extern uschar *acl_smtp_rcpt; /* ACL run for RCPT */ extern uschar *acl_smtp_starttls; /* ACL run for STARTTLS */ extern uschar *acl_smtp_vrfy; /* ACL run for VRFY */ +#ifndef DISABLE_WELLKNOWN +extern uschar *acl_smtp_wellknown; /* ACL run for WELLKNOWN */ +#endif extern tree_node *acl_var_c; /* ACL connection variables */ extern tree_node *acl_var_m; /* ACL message variables */ extern uschar *acl_verify_message; /* User message for verify failure */ @@ -602,7 +605,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 @@ -1134,4 +1137,9 @@ extern uschar *version_string; /* Version string */ extern int warning_count; /* Delay warnings sent for this msg */ +#ifndef DISABLE_WELLKNOWN +extern uschar *wellknown_advertise_hosts;/* Allow WELLKNOWN command for specified hosts */ +extern uschar *wellknown_response; /* SMTP response for WELLKNOWN verb */ +#endif + /* End of globals.h */ diff --git a/src/src/hintsdb.h b/src/src/hintsdb.h index 2d7199eda..c5a856abc 100644 --- a/src/src/hintsdb.h +++ b/src/src/hintsdb.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -16,13 +16,362 @@ from Pierre A. Humblet, so Exim could be made to work with Cygwin. For convenience, the definitions of the structures used in the various hints databases are also kept in this file, which is used by the maintenance -utilities as well as the main Exim binary. */ +utilities as well as the main Exim binary. + +A key/value store is supported (only). Keys are strings; values arbitrary +binary blobs. + +The API is: + Functions: + exim_lockfile_needed API semantics predicate + exim_dbopen + exim_dbclose + exim_dbget + exim_dbput + exim_dbputb non-overwriting put + exim_dbdel + exim_dbcreate_cursor + exim_dbscan get, and bump cursor + exim_dbdelete_cursor + exim_datum_init + exim_datum_size_get/set + exim_datum_data_get/set + exim_datum_free + Defines: + EXIM_DB access handle + EXIM_CURSOR datatype for cursor + EXIM_DATUM datatype for "value" + EXIM_DBTYPE text for logging & debuug + +Selection of the shim layer implementation, and backend, is by #defines. + +The users of this API are: + hintsdb interface dbfn.c + hintsdb utilities exim_dbutil.c and exim_dbmvuild.c + dbmdb lookup lookups/dbmdb,c + autoreply transport transports/autoreply.c + +Note that the dbmdb lookup use, bypassing the dbfn.c layer, +means that no file-locking is done. +XXX This feels like a layering violation; I don't see it commented on +anywhere. + +Future: consider re-architecting to support caching of the open-handle +for hintsdb uses (the dbmdb use gets that already). This would need APIs +for transaction locks. Perhaps merge the implementation with the lookups +layer, in some way, for the open-handle caching (since that manages closes +required by Exim's process transisitions)? +*/ #ifndef HINTSDB_H #define HINTSDB_H -#if defined(USE_TDB) +#ifdef USE_SQLITE +# if defined(USE_DB) || defined(USE_GDBM) || defined(USE_TDB) +# error USE_SQLITE conflict with alternate definition +# endif + +/* ********************* sqlite3 interface ************************ */ + +# include + +/* Basic DB type */ +# define EXIM_DB sqlite3 + +# define EXIM_CURSOR int + +# /* The datum type used for queries */ +# define EXIM_DATUM blob + +/* Some text for messages */ +# define EXIM_DBTYPE "sqlite3" + +# /* Access functions */ + +static inline BOOL +exim_lockfile_needed(void) +{ +return FALSE; /* We do transaction; no extra locking needed */ +} + +/* EXIM_DBOPEN - return pointer to an EXIM_DB, NULL if failed */ +static inline EXIM_DB * +exim_dbopen__(const uschar * name, const uschar * dirname, int flags, + unsigned mode) +{ +EXIM_DB * dbp; +int ret, sflags = flags & O_RDWR ? SQLITE_OPEN_READWRITE : SQLITE_OPEN_READONLY; +if (flags & O_CREAT) sflags |= SQLITE_OPEN_CREATE; +if ((ret = sqlite3_open_v2(CCS name, &dbp, sflags, NULL)) == SQLITE_OK) + { + sqlite3_busy_timeout(dbp, 5000); + ret = sqlite3_exec(dbp, "BEGIN TRANSACTION;", NULL, NULL, NULL); + if (ret == SQLITE_OK && flags & O_CREAT) + ret = sqlite3_exec(dbp, + "CREATE TABLE IF NOT EXISTS tbl (ky TEXT PRIMARY KEY, dat BLOB);", + NULL, NULL, NULL); + if (ret != SQLITE_OK) + sqlite3_close(dbp); + } +//else +// fprintf(stderr, "sqlite3_open_v2: %s\n", sqlite3_errmsg(dbp)); +return ret == SQLITE_OK ? dbp : NULL; +} + +/* EXIM_DBGET - returns TRUE if successful, FALSE otherwise */ +/* note we alloc'n'copy - the caller need not do so */ +/* result has a NUL appended, but the length is as per the DB */ + +static inline BOOL +exim_dbget__(EXIM_DB * dbp, const uschar * s, EXIM_DATUM * res) +{ +sqlite3_stmt * statement; +int ret; + +res->len = (size_t) -1; +/* fprintf(stderr, "exim_dbget__(%s)\n", s); */ +if ((ret = sqlite3_prepare_v2(dbp, CCS s, -1, &statement, NULL)) != SQLITE_OK) + { +/* fprintf(stderr, "prepare fail: %s\n", sqlite3_errmsg(dbp)); */ + return FALSE; + } +if (sqlite3_step(statement) != SQLITE_ROW) + { +/* fprintf(stderr, "step fail: %s\n", sqlite3_errmsg(dbp)); */ + sqlite3_finalize(statement); + return FALSE; + } + +res->len = sqlite3_column_bytes(statement, 0); +# ifdef COMPILE_UTILITY +res->data = malloc(res->len); +# else +res->data = store_get(res->len, GET_TAINTED); +# endif +memcpy(res->data, sqlite3_column_blob(statement, 0), res->len); +res->data[res->len] = '\0'; +/* fprintf(stderr, "res %d bytes: '%.*s'\n", (int)res->len, (int)res->len, res->data); */ +sqlite3_finalize(statement); +return TRUE; +} + +static inline BOOL +exim_dbget(EXIM_DB * dbp, EXIM_DATUM * key, EXIM_DATUM * res) +{ +# define FMT "SELECT dat FROM tbl WHERE ky = '%.*s';" +uschar * qry; +int i; +BOOL ret; + +# ifdef COMPILE_UTILITY +/* fprintf(stderr, "exim_dbget(k len %d '%.*s')\n", (int)key->len, (int)key->len, key->data); */ +qry = malloc(i = snprintf(NULL, 0, FMT, (int) key->len, key->data)); +snprintf(CS qry, i, FMT, (int) key->len, key->data); +ret = exim_dbget__(dbp, qry, res); +free(qry); +# else +/* fprintf(stderr, "exim_dbget(k len %d '%.*s')\n", (int)key->len, (int)key->len, key->data); */ +qry = string_sprintf(FMT, (int) key->len, key->data); +ret = exim_dbget__(dbp, qry, res); +# endif + +return ret; +# undef FMT +} + +/**/ +# define EXIM_DBPUTB_OK 0 +# define EXIM_DBPUTB_DUP (-1) + +static inline int +exim_s_dbp(EXIM_DB * dbp, EXIM_DATUM * key, EXIM_DATUM * data, const uschar * alt) +{ +int hlen = data->len * 2, off = 0, res; +# define FMT "INSERT OR %s INTO tbl (ky,dat) VALUES ('%.*s', X'%.*s');" +# ifdef COMPILE_UTILITY +uschar * hex = malloc(hlen+1); +# else +uschar * hex = store_get(hlen+1, data->data); +# endif +uschar * qry; + +for (const uschar * s = data->data, * t = s + data->len; s < t; s++, off += 2) + sprintf(CS hex + off, "%02X", *s); + +# ifdef COMPILE_UTILITY +res = snprintf(CS hex, 0, FMT, alt, (int) key->len, key->data, hlen, hex); +qry = malloc(res); +snprintf(CS qry, res, FMT, alt, (int) key->len, key->data, hlen, hex); +/* fprintf(stderr, "exim_s_dbp(%s)\n", qry); */ +res = sqlite3_exec(dbp, CS qry, NULL, NULL, NULL); +free(qry); +free(hex); +# else +qry = string_sprintf(FMT, alt, (int) key->len, key->data, hlen, hex); +/* fprintf(stderr, "exim_s_dbp(%s)\n", qry); */ +res = sqlite3_exec(dbp, CS qry, NULL, NULL, NULL); +/* fprintf(stderr, "exim_s_dbp res %d\n", res); */ +# endif + +if (res != SQLITE_OK) + fprintf(stderr, "sqlite3_exec: %s\n", sqlite3_errmsg(dbp)); + +return res == SQLITE_OK ? EXIM_DBPUTB_OK : EXIM_DBPUTB_DUP; +# undef FMT +} + +/* EXIM_DBPUT - returns nothing useful, assumes replace mode */ + +static inline int +exim_dbput(EXIM_DB * dbp, EXIM_DATUM * key, EXIM_DATUM * data) +{ +/* fprintf(stderr, "exim_dbput()\n"); */ +(void) exim_s_dbp(dbp, key, data, US"REPLACE"); +return 0; +} + +/* EXIM_DBPUTB - non-overwriting for use by dbmbuild */ + +/* Returns from EXIM_DBPUTB */ + +static inline int +exim_dbputb(EXIM_DB * dbp, EXIM_DATUM * key, EXIM_DATUM * data) +{ +return exim_s_dbp(dbp, key, data, US"ABORT"); +} + +/* EXIM_DBDEL */ +static inline int +exim_dbdel(EXIM_DB * dbp, EXIM_DATUM * key) +{ +# define FMT "DELETE FROM tbl WHERE ky = '%.*s';" +uschar * qry; +int res; + +# ifdef COMPILE_UTILITY +res = snprintf(NULL, 0, FMT, (int) key->len, key->data); /* res excludes nul */ +qry = malloc(res); +snprintf(CS qry, res, FMT, (int) key->len, key->data); +res = sqlite3_exec(dbp, CS qry, NULL, NULL, NULL); +free(qry); +# else +qry = string_sprintf(FMT, (int) key->len, key->data); +res = sqlite3_exec(dbp, CS qry, NULL, NULL, NULL); +# endif + +return res; +# undef FMT +} + + +/* EXIM_DBCREATE_CURSOR - initialize for scanning operation */ +/* Cursors are inefficiently emulated by repeating searches */ + +static inline EXIM_CURSOR * +exim_dbcreate_cursor(EXIM_DB * dbp) +{ +# ifdef COMPILE_UTILITY +EXIM_CURSOR * c = malloc(sizeof(int)); +# else +EXIM_CURSOR * c = store_malloc(sizeof(int)); +# endif +*c = 0; +return c; +} + +/* EXIM_DBSCAN */ +/* Note that we return the (next) key, not the record value */ +static inline BOOL +exim_dbscan(EXIM_DB * dbp, EXIM_DATUM * key, EXIM_DATUM * res, BOOL first, + EXIM_CURSOR * cursor) +{ +# define FMT "SELECT ky FROM tbl ORDER BY ky LIMIT 1 OFFSET %d;" +uschar * qry; +int i; +BOOL ret; + +# ifdef COMPILE_UTILITY +qry = malloc((i = snprintf(NULL, 0, FMT, *cursor))); +snprintf(CS qry, i-1, FMT, *cursor); +/* fprintf(stderr, "exim_dbscan(%s)\n", qry); */ +ret = exim_dbget__(dbp, qry, key); +free(qry); +/* fprintf(stderr, "exim_dbscan ret %c\n", ret ? 'T':'F'); */ +# else +qry = string_sprintf(FMT, *cursor); +/* fprintf(stderr, "exim_dbscan(%s)\n", qry); */ +ret = exim_dbget__(dbp, qry, key); +/* fprintf(stderr, "exim_dbscan ret %c\n", ret ? 'T':'F'); */ +# endif +if (ret) *cursor = *cursor + 1; +return ret; +# undef FMT +} + +/* EXIM_DBDELETE_CURSOR - terminate scanning operation. */ +static inline void +exim_dbdelete_cursor(EXIM_CURSOR * cursor) +{ +# ifdef COMPILE_UTILITY +free(cursor); +# else +store_free(cursor); +# endif +} + + +/* EXIM_DBCLOSE */ +static void +exim_dbclose__(EXIM_DB * dbp) +{ +(void) sqlite3_exec(dbp, "COMMIT TRANSACTION;", NULL, NULL, NULL); +sqlite3_close(dbp); +} + + +/* Datum access */ + +static uschar * +exim_datum_data_get(EXIM_DATUM * dp) +{ return US dp->data; } +static void +exim_datum_data_set(EXIM_DATUM * dp, void * s) +{ dp->data = s; } + +static unsigned +exim_datum_size_get(EXIM_DATUM * dp) +{ return dp->len; } +static void +exim_datum_size_set(EXIM_DATUM * dp, unsigned n) +{ dp->len = n; } + + + +static inline void +exim_datum_init(EXIM_DATUM * dp) +{ dp->data = NULL; } /* compiler quietening */ + +/* No free needed for a datum */ + +static inline void +exim_datum_free(EXIM_DATUM * dp) +{ } + +/* size limit */ + +# define EXIM_DB_RLIMIT 150 + + + + + + +#elif defined(USE_TDB) + +# if defined(USE_DB) || defined(USE_GDBM) || defined(USE_SQLITE) +# error USE_TDB conflict with alternate definition +# endif /* ************************* tdb interface ************************ */ /*XXX https://manpages.org/tdb/3 mentions concurrent writes. @@ -45,6 +394,12 @@ tdb_traverse to be called) */ /* Access functions */ +static inline BOOL +exim_lockfile_needed(void) +{ +return TRUE; +} + /* EXIM_DBOPEN - return pointer to an EXIM_DB, NULL if failed */ static inline EXIM_DB * exim_dbopen__(const uschar * name, const uschar * dirname, int flags, @@ -85,7 +440,11 @@ exim_dbdel(EXIM_DB * dbp, EXIM_DATUM * key) static inline EXIM_CURSOR * exim_dbcreate_cursor(EXIM_DB * dbp) { +# ifdef COMPILE_UTILITY +EXIM_CURSOR * c = malloc(sizeof(TDB_DATA)); +# else EXIM_CURSOR * c = store_malloc(sizeof(TDB_DATA)); +# endif c->dptr = NULL; return c; } @@ -157,6 +516,10 @@ d->dptr = NULL; #elif defined USE_DB +# if defined(USE_TDB) || defined(USE_GDBM) || defined(USE_SQLITE) +# error USE_DB conflict with alternate definition +# endif + # include /* 1.x did no locking @@ -212,7 +575,13 @@ log_write(0, LOG_MAIN, "Berkeley DB error: %s", msg); -/* Access functions */ +/* Access functions (BDB 4.1+) */ + +static inline BOOL +exim_lockfile_needed(void) +{ +return TRUE; +} /* EXIM_DBOPEN - return pointer to an EXIM_DB, NULL if failed */ /* The API changed for DB 4.1. - and we also starting using the "env" with a @@ -235,8 +604,9 @@ if (db_create(&b, dbp, 0) == 0) { dbp->app_private = b; if (b->open(b, NULL, CS name, NULL, - flags == O_RDONLY ? DB_UNKNOWN : DB_HASH, - flags == O_RDONLY ? DB_RDONLY : DB_CREATE, + flags & O_CREAT ? DB_HASH : DB_UNKNOWN, + flags & O_CREAT ? DB_CREATE + : flags & (O_WRONLY|O_RDWR) ? 0 : DB_RDONLY, mode) == 0 ) return dbp; @@ -358,7 +728,13 @@ exim_datum_free(EXIM_DATUM * d) /* Some text for messages */ # define EXIM_DBTYPE "db (v3/4)" -/* Access functions */ +/* Access functions (BDB 3/4) */ + +static inline BOOL +exim_lockfile_needed(void) +{ +return TRUE; +} /* EXIM_DBOPEN - return pointer to an EXIM_DB, NULL if failed */ static inline EXIM_DB * @@ -369,8 +745,9 @@ EXIM_DB * dbp; return db_create(&dbp, NULL, 0) == 0 && ( dbp->set_errcall(dbp, dbfn_bdb_error_callback), dbp->open(dbp, CS name, NULL, - flags == O_RDONLY ? DB_UNKNOWN : DB_HASH, - flags == O_RDONLY ? DB_RDONLY : DB_CREATE, + flags & O_CREAT ? DB_HASH : DB_UNKNOWN, + flags & O_CREAT ? DB_CREATE + : flags & (O_WRONLY|O_RDWR) ? 0 : DB_RDONLY, mode) ) == 0 ? dbp : NULL; @@ -480,7 +857,11 @@ exim_datum_free(EXIM_DATUM * d) /********************* gdbm interface definitions **********************/ #elif defined USE_GDBM -/*XXX TODO: exim's locfile not needed */ +/*XXX TODO: exim's lockfile not needed? */ + +# if defined(USE_TDB) || defined(USE_DB) || defined(USE_SQLITE) +# error USE_GDBM conflict with alternate definition +# endif # include @@ -500,7 +881,13 @@ typedef struct { # define EXIM_DBTYPE "gdbm" -/* Access functions */ +/* Access functions (gdbm) */ + +static inline BOOL +exim_lockfile_needed(void) +{ +return TRUE; +} /* EXIM_DBOPEN - return pointer to an EXIM_DB, NULL if failed */ static inline EXIM_DB * @@ -513,8 +900,7 @@ if (dbp) dbp->lkey.dptr = NULL; dbp->gdbm = gdbm_open(CS name, 0, flags & O_CREAT ? GDBM_WRCREAT - : flags & (O_RDWR|O_WRONLY) ? GDBM_WRITER - : GDBM_READER, + : flags & (O_RDWR|O_WRONLY) ? GDBM_WRITER : GDBM_READER, mode, 0); if (dbp->gdbm) return dbp; free(dbp); @@ -609,7 +995,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 @@ -620,8 +1006,8 @@ exim_datum_free(EXIM_DATUM * d) -/* If none of USE_DB, USG_GDBM, or USE_TDB are set, the default is the NDBM -interface */ +/* If none of USE_DB, USG_GDBM, USE_SQLITE or USE_TDB are set, +the default is the NDBM interface (which seems to be a wrapper for GDBM) */ /********************* ndbm interface definitions **********************/ @@ -641,7 +1027,13 @@ interface */ # define EXIM_DBTYPE "ndbm" -/* Access functions */ +/* Access functions (ndbm) */ + +static inline BOOL +exim_lockfile_needed(void) +{ +return TRUE; +} /* EXIM_DBOPEN - returns a EXIM_DB *, NULL if failed */ /* Check that the name given is not present. This catches @@ -745,7 +1137,7 @@ exim_datum_free(EXIM_DATUM * d) # define EXIM_DB_RLIMIT 150 -#endif /* USE_GDBM */ +#endif /* !USE_GDBM */ @@ -809,3 +1201,5 @@ exim_dbclose__(dbp); #endif /* whole file */ /* End of hintsdb.h */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/hintsdb_structs.h b/src/src/hintsdb_structs.h index 5da311c2b..5f50dfd5f 100644 --- a/src/src/hintsdb_structs.h +++ b/src/src/hintsdb_structs.h @@ -2,8 +2,8 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 - 2021 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/host.c b/src/src/host.c index 08e946548..597971814 100644 --- a/src/src/host.c +++ b/src/src/host.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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; } @@ -2198,7 +2204,7 @@ set_address_from_dns(host_item *host, host_item **lastptr, const uschar **fully_qualified_name, BOOL dnssec_request, BOOL dnssec_require, int whichrrs) { -host_item *thishostlast = NULL; /* Indicates not yet filled in anything */ +host_item * thishostlast = NULL; /* Indicates not yet filled in anything */ BOOL v6_find_again = FALSE; BOOL dnssec_fail = FALSE; int i; @@ -2217,12 +2223,12 @@ those sites that feel they have to flaunt the RFC rules. */ if (allow_ip && string_is_ip_address(host->name, NULL) != 0) { - #ifndef STAND_ALONE +#ifndef STAND_ALONE if ( ignore_target_hosts && verify_check_this_host(&ignore_target_hosts, NULL, host->name, host->name, NULL) == OK) return HOST_IGNORED; - #endif +#endif host->address = host->name; return HOST_FOUND; @@ -2236,7 +2242,7 @@ testing, we force an IPv4 lookup if the domain matches dns_ipv4_lookup global. On an IPv4 system, go round the loop once only, looking only for A records. */ #if HAVE_IPV6 - #ifndef STAND_ALONE +# ifndef STAND_ALONE if ( disable_ipv6 || !(whichrrs & HOST_FIND_BY_AAAA) || dns_ipv4_lookup @@ -2245,7 +2251,7 @@ On an IPv4 system, go round the loop once only, looking only for A records. */ ) i = 0; /* look up A records only */ else - #endif /* STAND_ALONE */ +# endif /* STAND_ALONE */ i = 1; /* look up AAAA and A records */ @@ -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,13 @@ 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 +2640,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 +2663,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 +2677,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 +2698,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 +2784,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 +2894,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 +3096,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 +3114,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 +3124,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/local_scan.h b/src/src/local_scan.h index ed9f26d62..11f271d1b 100644 --- a/src/src/local_scan.h +++ b/src/src/local_scan.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/log.c b/src/src/log.c index 1a77f2cdb..f12721cf5 100644 --- a/src/src/log.c +++ b/src/src/log.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -1464,7 +1464,7 @@ if (Ustrcmp(which, "debug") == 0) return; } fprintf(stderr, "exim: %s\n", errmsg); - exit(EXIT_FAILURE); + exim_exit(EXIT_FAILURE); } else log_write(0, LOG_CONFIG|LOG_PANIC_DIE, "%s", errmsg); } diff --git a/src/src/lookups/dbmdb.c b/src/src/lookups/dbmdb.c index 96665b6e4..d68110b12 100644 --- a/src/src/lookups/dbmdb.c +++ b/src/src/lookups/dbmdb.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -49,7 +49,7 @@ dbmdb_check(void *handle, const uschar *filename, int modemask, uid_t *owners, { int rc; -#if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) +#if defined(USE_DB) || defined(USE_TDB) || defined(USE_GDBM) || defined(USE_SQLITE) rc = lf_check_file(-1, filename, S_IFREG, modemask, owners, owngroups, "dbm", errmsg); #else diff --git a/src/src/lookups/dnsdb.c b/src/src/lookups/dnsdb.c index af1ad9dab..5d441de43 100644 --- a/src/src/lookups/dnsdb.c +++ b/src/src/lookups/dnsdb.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/lookups/dsearch.c b/src/src/lookups/dsearch.c index 74439bfc8..1229368ba 100644 --- a/src/src/lookups/dsearch.c +++ b/src/src/lookups/dsearch.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -70,6 +70,7 @@ return FALSE; #define FILTER_FILE BIT(2) #define FILTER_DIR BIT(3) #define FILTER_SUBDIR BIT(4) +#define ALLOW_PATH BIT(5) /* See local README for interface description. We use lstat() instead of scanning the directory, as it is hopefully faster to let the OS do the scanning @@ -85,13 +86,6 @@ int save_errno; uschar * filename; unsigned flags = 0; -if (Ustrchr(keystring, '/') != 0) - { - *errmsg = string_sprintf("key for dsearch lookup contains a slash: %s", - keystring); - return DEFER; - } - if (opts) { int sep = ','; @@ -110,6 +104,24 @@ if (opts) else if (Ustrcmp(ele, "subdir") == 0) flags |= FILTER_TYPE | FILTER_SUBDIR; /* like dir but not "." or ".." */ } + else if (Ustrcmp(ele, "key=path") == 0) + flags |= ALLOW_PATH; + } + +if (flags & ALLOW_PATH) + { + if (Ustrstr(keystring, "/../") != NULL || Ustrstr(keystring, "/./")) + { + *errmsg = string_sprintf( + "key for dsearch lookup contains bad component: %s", keystring); + return DEFER; + } + } +else if (Ustrchr(keystring, '/') != NULL) + { + *errmsg = string_sprintf("key for dsearch lookup contains a slash: %s", + keystring); + return DEFER; } filename = string_sprintf("%s/%s", dirname, keystring); @@ -120,7 +132,7 @@ if ( Ulstat(filename, &statbuf) >= 0 && S_ISDIR(statbuf.st_mode) && ( flags & FILTER_DIR || keystring[0] != '.' - || keystring[1] && keystring[1] != '.' + || keystring[1] && (keystring[1] != '.' || keystring[2]) ) ) ) ) { /* Since the filename exists in the filesystem, we can return a @@ -189,3 +201,5 @@ static lookup_info *_lookup_list[] = { &_lookup_info }; lookup_module_info dsearch_lookup_module_info = { LOOKUP_MODULE_INFO_MAGIC, _lookup_list, 1 }; /* End of lookups/dsearch.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/lookups/ldap.c b/src/src/lookups/ldap.c index 90cde6c86..0c29b6c9a 100644 --- a/src/src/lookups/ldap.c +++ b/src/src/lookups/ldap.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/lookups/lsearch.c b/src/src/lookups/lsearch.c index 7b78de916..6728fecc7 100644 --- a/src/src/lookups/lsearch.c +++ b/src/src/lookups/lsearch.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/lookups/oracle.c b/src/src/lookups/oracle.c index c25b7c0ee..9eb936b25 100644 --- a/src/src/lookups/oracle.c +++ b/src/src/lookups/oracle.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/lookups/redis.c b/src/src/lookups/redis.c index 53b479142..a97496ba6 100644 --- a/src/src/lookups/redis.c +++ b/src/src/lookups/redis.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/lookups/sqlite.c b/src/src/lookups/sqlite.c index 6c7af4225..9f6c9e5aa 100644 --- a/src/src/lookups/sqlite.c +++ b/src/src/lookups/sqlite.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -34,7 +34,7 @@ if (!filename || *filename != '/') *errmsg = US"absolute file name expected for \"sqlite\" lookup"; else if ((ret = sqlite3_open(CCS filename, &db)) != 0) { - *errmsg = (void *)sqlite3_errmsg(db); + *errmsg = string_copy(US sqlite3_errmsg(db)); sqlite3_close(db); db = NULL; DEBUG(D_lookup) debug_printf_indent("Error opening database: %s\n", *errmsg); diff --git a/src/src/macro_predef.c b/src/src/macro_predef.c index 9b354d345..29ecfdcc8 100644 --- a/src/src/macro_predef.c +++ b/src/src/macro_predef.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) Jeremy Harris 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -214,10 +214,25 @@ due to conflicts with other common macros. */ #ifndef DISABLE_TLS_RESUME builtin_macro_create(US"_HAVE_TLS_RESUME"); #endif +#ifndef DISABLE_WELLKNOWN + builtin_macro_create(US"_HAVE_WELLKNOWN"); +#endif #ifdef EXPERIMENTAL_XCLIENT builtin_macro_create(US"_HAVE_XCLIENT"); #endif +#ifdef USE_SQLITE + builtin_macro_create(US"_HAVE_HINTS_SQLITE"); +#elif defined(USE_TDB) + builtin_macro_create(US"_HAVE_HINTS_TDB"); +#elif defined(USE_DB) + builtin_macro_create(US"_HAVE_HINTS_BDB"); +#elif defined(USE_GDBM) + builtin_macro_create(US"_HAVE_HINTS_GDBM"); +#else + builtin_macro_create(US"_HAVE_HINTS_NDBM"); +#endif + #ifdef LOOKUP_LSEARCH builtin_macro_create(US"_HAVE_LOOKUP_LSEARCH"); #endif diff --git a/src/src/macros.h b/src/src/macros.h index 3341f5f41..1a619b951 100644 --- a/src/src/macros.h +++ b/src/src/macros.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -828,6 +828,9 @@ enum { SCH_NONE, SCH_AUTH, SCH_DATA, SCH_BDAT, SCH_EHLO, SCH_ETRN, SCH_EXPN, SCH_HELO, SCH_HELP, SCH_MAIL, SCH_NOOP, SCH_QUIT, SCH_RCPT, SCH_RSET, SCH_STARTTLS, SCH_VRFY, +#ifndef DISABLE_WELLKNOWN + SCH_WELLKNOWN, +#endif #ifdef EXPERIMENTAL_XCLIENT SCH_XCLIENT, #endif @@ -972,6 +975,9 @@ enum { ACL_WHERE_RCPT, /* Some controls are for RCPT only */ ACL_WHERE_NOTQUIT, ACL_WHERE_QUIT, ACL_WHERE_STARTTLS, +#ifndef DISABLE_WELLKNOWN + ACL_WHERE_WELLKNOWN, +#endif ACL_WHERE_VRFY, ACL_WHERE_DELIVERY, @@ -1001,6 +1007,9 @@ enum { ACL_WHERE_RCPT, /* Some controls are for RCPT only */ #define ACL_BIT_QUIT BIT(ACL_WHERE_QUIT) #define ACL_BIT_STARTTLS BIT(ACL_WHERE_STARTTLS) #define ACL_BIT_VRFY BIT(ACL_WHERE_VRFY) +#ifndef DISABLE_WELLKNOWN +# define ACL_BIT_WELLKNOWN BIT(ACL_WHERE_WELLKNOWN) +#endif #define ACL_BIT_DELIVERY BIT(ACL_WHERE_DELIVERY) #define ACL_BIT_UNKNOWN BIT(ACL_WHERE_UNKNOWN) @@ -1195,8 +1204,11 @@ 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"); /* End of macros.h */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/malware.c b/src/src/malware.c index 760278079..408e2299b 100644 --- a/src/src/malware.c +++ b/src/src/malware.c @@ -3,7 +3,7 @@ *************************************************/ /* - * Copyright (c) The Exim Maintainers 2015 - 2023 + * Copyright (c) The Exim Maintainers 2015 - 2024 * Copyright (c) Tom Kistner 2003 - 2015 * License: GPL * SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/src/match.c b/src/src/match.c index 2cb499359..4f4f2c777 100644 --- a/src/src/match.c +++ b/src/src/match.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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; @@ -431,24 +427,24 @@ unsigned int * original_cache_bits = *cache_ptr; BOOL include_unknown = FALSE, ignore_unknown = FALSE, include_defer = FALSE, ignore_defer = FALSE; const uschar * list; -uschar * sss; -uschar * ot = NULL; +uschar * ot = NULL, * sss; BOOL textonly_re; /* Save time by not scanning for the option name when we don't need it. */ HDEBUG(D_any) { - 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 +501,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 +523,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) { uschar * ss = sss; - HDEBUG(D_lists) debug_printf_indent("list element: %s\n", ss); + HDEBUG(D_lists) debug_printf_indent("list element: %W\n", ss); /* Address lists may contain +caseful, to restore caseful matching of the local part. We have to know the layout of the control block, unfortunately. @@ -618,7 +614,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 +651,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 +691,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 +703,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 +721,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 +745,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 +753,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 +773,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 +808,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) if (!f) { - uschar * listname = readconf_find_option(listptr); - if (listname[0] == 0) + const uschar * listname = readconf_find_option(listptr); + if (!*listname) listname = string_sprintf("\"%s\"", *listptr); log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s", string_open_failed("%s when checking %s", sss, listname)); @@ -859,8 +855,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) { case OK: (void)fclose(f); - HDEBUG(D_lists) debug_printf_indent("%s %s (matched \"%s\" in %s)\n", ot, - yield == OK ? "yes" : "no", sss, filename); + HDEBUG(D_lists) debug_printf_indent("%s %s (matched \"%s\" in %s)\n", + ot, yield == OK ? "yes" : "no", sss, filename); /* The "pattern" being matched came from the file; we use a stack-local. Copy it to allocated memory now we know it matched. */ @@ -874,8 +870,8 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) error = string_sprintf("DNS lookup of %s deferred", ss); if (ignore_defer) { - HDEBUG(D_lists) debug_printf_indent("%s: item ignored by +ignore_defer\n", - error); + HDEBUG(D_lists) + debug_printf_indent("%s: item ignored by +ignore_defer\n", error); break; } (void)fclose(f); @@ -892,13 +888,13 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) case ERROR: if (ignore_unknown) { - HDEBUG(D_lists) debug_printf_indent("%s: item ignored by +ignore_unknown\n", - error); + HDEBUG(D_lists) debug_printf_indent( + "%s: item ignored by +ignore_unknown\n", error); } else { HDEBUG(D_lists) debug_printf_indent("%s %s (%s)\n", ot, - include_unknown? "yes":"no", error); + include_unknown ? "yes":"no", error); (void)fclose(f); if (!include_unknown) { @@ -922,20 +918,19 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0))) /* End of list reached: if the last item was negated yield OK, else FAIL. */ -HDEBUG(D_lists) - HDEBUG(D_lists) - { - expand_level--; - debug_printf_indent("%s %s (end of list)\n", ot, yield == OK ? "no":"yes"); - } - return yield == OK ? FAIL : OK; - +HDEBUG(D_any) + { + HDEBUG(D_lists) expand_level--; + debug_printf_indent("%s %s (end of list)\n", ot, yield == OK ? "no":"yes"); + } +return yield == OK ? FAIL : OK; + /* Something deferred */ DEFER_RETURN: - HDEBUG(D_lists) + HDEBUG(D_any) { - expand_level--; + HDEBUG(D_lists) expand_level--; debug_printf_indent("%s list match deferred for %s\n", ot, sss); } return DEFER; @@ -1390,3 +1385,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 641540839..19d29190b 100644 --- a/src/src/moan.c +++ b/src/src/moan.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/os.c b/src/src/os.c index 3b49e4b9e..dce5fca3d 100644 --- a/src/src/os.c +++ b/src/src/os.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2021 - 2023 */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -878,9 +878,7 @@ os_getcwd(unsigned char * buffer, size_t size) return US getcwd(CS buffer, size); } #else -#ifndef PATH_MAX -# define PATH_MAX 4096 -#endif +# include "path_max.h" unsigned char * os_getcwd(unsigned char * buffer, size_t size) { diff --git a/src/src/parse.c b/src/src/parse.c index 4a75d229e..e86dc4130 100644 --- a/src/src/parse.c +++ b/src/src/parse.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/path_max.h b/src/src/path_max.h new file mode 100644 index 000000000..d8df2c7bc --- /dev/null +++ b/src/src/path_max.h @@ -0,0 +1,19 @@ +/************************************************* +* Exim - an Internet mail transport agent * +*************************************************/ + +/* Copyright (c) The Exim Maintainers 2024 */ +/* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +/* This was in exim.h - but not all files needing it can include all of that. */ +/* Needed by macros.h */ +/* Some systems have PATH_MAX and some have MAX_PATH_LEN. */ +#ifndef PATH_MAX +# ifdef MAX_PATH_LEN +# define PATH_MAX MAX_PATH_LEN +# else +# define PATH_MAX 4096 +# endif +#endif + diff --git a/src/src/pdkim/pdkim.c b/src/src/pdkim/pdkim.c index 565ee068e..4fb22a113 100644 --- a/src/src/pdkim/pdkim.c +++ b/src/src/pdkim/pdkim.c @@ -1,7 +1,7 @@ /* * PDKIM - a RFC4871 (DKIM) implementation * - * Copyright (c) The Exim Maintainers 2021 - 2023 + * Copyright (c) The Exim Maintainers 2021 - 2024 * Copyright (C) 2016 - 2020 Jeremy Harris * Copyright (C) 2009 - 2016 Tom Kistner * SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/src/pdkim/signing.c b/src/src/pdkim/signing.c index e72d4b53e..b4754c1a1 100644 --- a/src/src/pdkim/signing.c +++ b/src/src/pdkim/signing.c @@ -308,7 +308,7 @@ makes sure that important subsystems are initialized. */ if (!gcry_check_version (GCRYPT_VERSION)) { fputs ("libgcrypt version mismatch\n", stderr); - exit (2); + exim_exit(2); } /* We don't want to see any warnings, e.g. because we have not yet diff --git a/src/src/proxy.c b/src/src/proxy.c index e2d3bace0..46c98c8d0 100644 --- a/src/src/proxy.c +++ b/src/src/proxy.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/queue.c b/src/src/queue.c index 2c3d014f5..a4afdcc98 100644 --- a/src/src/queue.c +++ b/src/src/queue.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -394,20 +394,19 @@ f.queue_running = TRUE; if (!recurse) { - uschar extras[8]; - uschar *p = extras; + uschar extras[8], * p = extras; if (q->queue_2stage) *p++ = 'q'; if (q->queue_run_first_delivery) *p++ = 'i'; if (q->queue_run_force) *p++ = 'f'; if (q->deliver_force_thaw) *p++ = 'f'; if (q->queue_run_local) *p++ = 'l'; - *p = 0; + *p = '\0'; p = big_buffer; p += sprintf(CS p, "pid=%d", (int)queue_run_pid); - if (extras[0] != 0) + if (*extras) p += sprintf(CS p, " -q%s", extras); if (deliver_selectstring) @@ -444,6 +443,15 @@ if (deliver_selectstring_sender && f.deliver_selectstring_sender_regex) selectstring_regex_sender = regex_must_compile(deliver_selectstring_sender, MCS_CASELESS, FALSE); +#ifndef DISABLE_TLS +if (!queue_tls_init) + { + queue_tls_init = TRUE; + /* Preload TLS library info for smtp transports. */ + tls_client_creds_reload(FALSE); + } +#endif + /* If the spool is split into subdirectories, we want to process it one directory at a time, so as to spread out the directory scanning and the delivering when there are lots of messages involved, except when @@ -669,16 +677,6 @@ for (int i = queue_run_in_order ? -1 : 0; report_time_since(×tamp_startup, US"queue msg selected"); #endif -#ifndef DISABLE_TLS - if (!queue_tls_init) - { - queue_tls_init = TRUE; - /* Preload TLS library info for smtp transports. Once, and only if we - have a delivery to do. */ - tls_client_creds_reload(FALSE); - } -#endif - single_item_retry: if ((pid = exim_fork(US"qrun-delivery")) == 0) { @@ -1619,3 +1617,5 @@ else DEBUG(D_queue_run) debug_printf(" socket: %s\n", strerror(errno)); #endif /*!COMPILE_UTILITY*/ /* End of queue.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/rda.c b/src/src/rda.c index 7d329c580..776805ca4 100644 --- a/src/src/rda.c +++ b/src/src/rda.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim maintainers 2020 - 2022 */ +/* Copyright (c) The Exim maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/readconf.c b/src/src/readconf.c index 3db3bdd69..940c5d4d3 100644 --- a/src/src/readconf.c +++ b/src/src/readconf.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -66,6 +66,9 @@ static optionlist optionlist_config[] = { { "acl_smtp_starttls", opt_stringptr, {&acl_smtp_starttls} }, #endif { "acl_smtp_vrfy", opt_stringptr, {&acl_smtp_vrfy} }, +#ifndef DISABLE_WELLKNOWN + { "acl_smtp_wellknown", opt_stringptr, {&acl_smtp_wellknown} }, +#endif { "add_environment", opt_stringptr, {&add_environment} }, { "admin_groups", opt_gidlist, {&admin_groups} }, { "allow_domain_literals", opt_bool, {&allow_domain_literals} }, @@ -402,6 +405,9 @@ static optionlist optionlist_config[] = { { "uucp_from_pattern", opt_stringptr, {&uucp_from_pattern} }, { "uucp_from_sender", opt_stringptr, {&uucp_from_sender} }, { "warn_message_file", opt_stringptr, {&warn_message_file} }, +#ifndef DISABLE_WELLKNOWN + { "wellknown_advertise_hosts",opt_stringptr, {&wellknown_advertise_hosts} }, +#endif { "write_rejectlog", opt_bool, {&write_rejectlog} }, }; @@ -592,46 +598,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""; } @@ -3207,7 +3271,7 @@ if (config_file) if (os_getcwd(buf, PATH_MAX) == NULL) { perror("exim: getcwd"); - exit(EXIT_FAILURE); + exim_exit(EXIT_FAILURE); } g = string_cat(NULL, buf); @@ -3237,7 +3301,7 @@ to a safe place. Later we change to $spool_directory. */ if (Uchdir("/") < 0) { perror("exim: chdir `/': "); - exit(EXIT_FAILURE); + exim_exit(EXIT_FAILURE); } /* Check the status of the file we have opened, if we have retained root diff --git a/src/src/regex.c b/src/src/regex.c index 285ab8dbd..94e2928b9 100644 --- a/src/src/regex.c +++ b/src/src/regex.c @@ -3,7 +3,7 @@ *************************************************/ /* - * Copyright (c) The Exim Maintainers 2016 - 2023 + * Copyright (c) The Exim Maintainers 2016 - 2024 * Copyright (c) Tom Kistner 2003-2015 * License: GPL * SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/src/retry.c b/src/src/retry.c index 6b977dd58..9dfe1d587 100644 --- a/src/src/retry.c +++ b/src/src/retry.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -678,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. */ @@ -851,7 +857,7 @@ for (int i = 0; i < 3; i++) retry_record->basic_errno = rti->basic_errno; retry_record->more_errno = rti->more_errno; Ustrncpy(retry_record->text, message, message_length); - retry_record->text[message_length] = 0; + retry_record->text[message_length] = 0; /* nul-term string in db */ DEBUG(D_retry) { diff --git a/src/src/rewrite.c b/src/src/rewrite.c index ce35c4365..dd3b4fa74 100644 --- a/src/src/rewrite.c +++ b/src/src/rewrite.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2021 - 2023 */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/rfc2047.c b/src/src/rfc2047.c index 1ab25150a..94178af73 100644 --- a/src/src/rfc2047.c +++ b/src/src/rfc2047.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/route.c b/src/src/route.c index afd43d866..f42afd2ef 100644 --- a/src/src/route.c +++ b/src/src/route.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -1869,7 +1869,7 @@ for (r = addr->start_router ? addr->start_router : routers; r; r = nextr) if (yield == PASS) { - if (r->pass_router != NULL) nextr = r->pass_router; + if (r->pass_router) nextr = r->pass_router; } else { @@ -2016,7 +2016,6 @@ if (r->translate_ip_address) /* See if this is an unseen routing; first expand the option if necessary. DEFER can be given if the expansion fails */ -GET_OPTION("unseen"); yield = exp_bool(addr, US"router", r->name, D_route, US"unseen", r->unseen, r->expand_unseen, &unseen); if (yield != OK) goto ROUTE_EXIT; diff --git a/src/src/routers/accept.c b/src/src/routers/accept.c index 9766e5e10..c747a8ba3 100644 --- a/src/src/routers/accept.c +++ b/src/src/routers/accept.c @@ -2,8 +2,8 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 - 2021 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -115,8 +115,8 @@ DEBUG(D_route) debug_printf("%s router called for %s\n domain = %s\n", /* Set up the errors address, if any. */ -rc = rf_get_errors_address(addr, rblock, verify, &errors_to); -if (rc != OK) return rc; +if ((rc = rf_get_errors_address(addr, rblock, verify, &errors_to)) != OK) + return rc; /* Set up the additional and removable headers for the address. */ @@ -135,9 +135,12 @@ addr->prop.errors_address = errors_to; addr->prop.extra_headers = extra_headers; addr->prop.remove_headers = remove_headers; -return rf_queue_add(addr, addr_local, addr_remote, rblock, pw)? OK : DEFER; +return rf_queue_add(addr, addr_local, addr_remote, rblock, pw) ? OK : DEFER; } #endif /*!MACRO_PREDEF*/ #endif /*ROUTER_ACCEPT*/ + /* End of routers/accept.c */ +/* vi: aw ai sw=2 +*/ diff --git a/src/src/routers/dnslookup.c b/src/src/routers/dnslookup.c index 80b12cba2..ef8243818 100644 --- a/src/src/routers/dnslookup.c +++ b/src/src/routers/dnslookup.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -286,10 +286,15 @@ for (;;) if (ob->search_parents) flags |= HOST_FIND_SEARCH_PARENTS; } - rc = host_find_bydns(&h, CUS rblock->ignore_target_hosts, flags, - srv_service, ob->srv_fail_domains, ob->mx_fail_domains, - &rblock->dnssec, - &fully_qualified_name, &removed); + DEBUG(D_route) debug_printf_indent("main lookup for domain\n"); + { + expand_level++; + rc = host_find_bydns(&h, CUS rblock->ignore_target_hosts, flags, + srv_service, ob->srv_fail_domains, ob->mx_fail_domains, + &rblock->dnssec, + &fully_qualified_name, &removed); + expand_level--; + } if (removed) setflag(addr, af_local_host_removed); @@ -362,7 +367,7 @@ for (;;) As a common cause of this problem is MX records with IP addresses on the RHS, give a special message in this case. */ - if (h.mx >= 0 && h.address == NULL) + if (h.mx >= 0 && !h.address) { setflag(addr, af_pass_message); /* This is not a security risk */ if (h.name[0] == 0) diff --git a/src/src/routers/ipliteral.c b/src/src/routers/ipliteral.c index 16e096b40..27c7fe6b3 100644 --- a/src/src/routers/ipliteral.c +++ b/src/src/routers/ipliteral.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/routers/iplookup.c b/src/src/routers/iplookup.c index b88212e5c..5078fdc00 100644 --- a/src/src/routers/iplookup.c +++ b/src/src/routers/iplookup.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/routers/manualroute.c b/src/src/routers/manualroute.c index ffd6eeaca..d07ea3490 100644 --- a/src/src/routers/manualroute.c +++ b/src/src/routers/manualroute.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/routers/queryprogram.c b/src/src/routers/queryprogram.c index 39645cd23..267a8ec5f 100644 --- a/src/src/routers/queryprogram.c +++ b/src/src/routers/queryprogram.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c index 37b5f5e24..e1ee8bc33 100644 --- a/src/src/routers/redirect.c +++ b/src/src/routers/redirect.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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/routers/rf_expand_data.c b/src/src/routers/rf_expand_data.c index 6ba613215..a3074f807 100644 --- a/src/src/routers/rf_expand_data.c +++ b/src/src/routers/rf_expand_data.c @@ -2,6 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2024 */ /* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/routers/rf_functions.h b/src/src/routers/rf_functions.h index 40d4cde1c..597745f96 100644 --- a/src/src/routers/rf_functions.h +++ b/src/src/routers/rf_functions.h @@ -2,6 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2024 */ /* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/routers/rf_get_errors_address.c b/src/src/routers/rf_get_errors_address.c index 792b9b5f3..6f8f7c7c3 100644 --- a/src/src/routers/rf_get_errors_address.c +++ b/src/src/routers/rf_get_errors_address.c @@ -2,8 +2,8 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/routers/rf_get_transport.c b/src/src/routers/rf_get_transport.c index d37966865..e6acca1b8 100644 --- a/src/src/routers/rf_get_transport.c +++ b/src/src/routers/rf_get_transport.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2021 - 2022 */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -58,7 +58,7 @@ if (!tpname) } expandable = Ustrchr(tpname, '$') != NULL; -if (*tpptr != NULL && !expandable) return TRUE; +if (*tpptr && !expandable) return TRUE; if (expandable) { diff --git a/src/src/search.c b/src/src/search.c index d0eb84b3b..6c28b390e 100644 --- a/src/src/search.c +++ b/src/src/search.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c index f65ab6603..c52d3f4d6 100644 --- a/src/src/smtp_in.c +++ b/src/src/smtp_in.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -86,6 +86,9 @@ enum { /* These commands need not be synchronized when pipelining */ MAIL_CMD, RCPT_CMD, RSET_CMD, +#ifndef DISABLE_WELLKNOWN + WELLKNOWN_CMD, +#endif /* This is a dummy to identify the non-sync commands when not pipelining */ @@ -121,7 +124,8 @@ enum { /* These are specials that don't correspond to actual commands */ EOF_CMD, OTHER_CMD, BADARG_CMD, BADCHAR_CMD, BADSYN_CMD, - TOO_MANY_NONMAIL_CMD }; + TOO_MANY_NONMAIL_CMD +}; /* This is a convenience macro for adding the identity of an SMTP command @@ -230,7 +234,10 @@ static smtp_cmd_list cmd_list[] = { { "etrn", sizeof("etrn")-1, ETRN_CMD, TRUE, FALSE }, { "vrfy", sizeof("vrfy")-1, VRFY_CMD, TRUE, FALSE }, { "expn", sizeof("expn")-1, EXPN_CMD, TRUE, FALSE }, - { "help", sizeof("help")-1, HELP_CMD, TRUE, FALSE } + { "help", sizeof("help")-1, HELP_CMD, TRUE, FALSE }, +#ifndef DISABLE_WELLKNOWN + { "wellknown", sizeof("wellknown")-1, WELLKNOWN_CMD, TRUE, FALSE }, +#endif }; /* This list of names is used for performing the smtp_no_mail logging action. */ @@ -253,6 +260,9 @@ uschar * smtp_names[] = [SCH_RSET] = US"RSET", [SCH_STARTTLS] = US"STARTTLS", [SCH_VRFY] = US"VRFY", +#ifndef DISABLE_WELLKNOWN + [SCH_WELLKNOWN] = US"WELLKNOWN", +#endif #ifdef EXPERIMENTAL_XCLIENT [SCH_XCLIENT] = US"XCLIENT", #endif @@ -1946,7 +1956,7 @@ while (done <= 0) case HELP_CMD: case NOOP_CMD: case ETRN_CMD: -#ifdef EXPERIMENTAL_WELLKNOWN +#ifndef DISABLE_WELLKNOWN case WELLKNOWN_CMD: #endif bsmtp_transaction_linecount = receive_linecount; @@ -2057,9 +2067,12 @@ log_connect_tls_drop(const uschar * what, const uschar * log_msg) { if (log_reject_target) { +#ifdef DISABLE_TLS + uschar * tls = NULL; +#else gstring * g = s_tlslog(NULL); uschar * tls = string_from_gstring(g); - +#endif log_write(L_connection_reject, log_reject_target, "%s%s%s dropped by %s%s%s", LOGGING(dnssec) && sender_host_dnssec ? US" DS" : US"", @@ -2832,10 +2845,8 @@ if (fl.rcpt_in_progress) We only handle pipelining these responses as far as nonfinal/final groups, not the whole MAIL/RCPT/DATA response set. */ -for (;;) - { - uschar *nl = Ustrchr(msg, '\n'); - if (!nl) +for (uschar * nl;;) + if (!(nl = Ustrchr(msg, '\n'))) { smtp_printf("%.3s%c%.*s%s\r\n", !final, code, final ? ' ':'-', esclen, esc, msg); return; @@ -2852,7 +2863,6 @@ for (;;) msg = nl + 1; Uskip_whitespace(&msg); } - } } @@ -2971,7 +2981,8 @@ smtp_code = rc == FAIL ? acl_wherecodes[where] : US"451"; smtp_message_code(&smtp_code, &codelen, &user_msg, &log_msg, where != ACL_WHERE_VRFY); -/* We used to have sender_address here; however, there was a bug that was not +/* Get info for logging. +We used to have sender_address here; however, there was a bug that was not updating sender_address after a rewrite during a verify. When this bug was fixed, sender_address at this point became the rewritten address. I'm not sure this is what should be logged, so I've changed to logging the unrewritten @@ -2996,7 +3007,7 @@ switch (where) { uschar * s = smtp_cmd_data; Uskip_nonwhite(&s); - lim = s - smtp_cmd_data; /* atop after method */ + lim = s - smtp_cmd_data; /* stop after method */ } what = string_sprintf("%s %.*s", acl_wherenames[where], lim, place); } @@ -3375,7 +3386,7 @@ Returns: nothing */ static void -smtp_user_msg(uschar *code, uschar *user_msg) +smtp_user_msg(uschar * code, uschar * user_msg) { int len = 3; smtp_message_code(&code, &len, &user_msg, NULL, TRUE); @@ -3581,6 +3592,36 @@ if (chunking_state > CHUNKING_OFFERED) } +#ifndef DISABLE_WELLKNOWN +static int +smtp_wellknown_handler(void) +{ +if (verify_check_host(&wellknown_advertise_hosts) != FAIL) + { + GET_OPTION("acl_smtp_wellknown"); + if (acl_smtp_wellknown) + { + uschar * user_msg = NULL, * log_msg; + int rc; + + if ((rc = acl_check(ACL_WHERE_WELLKNOWN, NULL, acl_smtp_wellknown, + &user_msg, &log_msg)) != OK) + return smtp_handle_acl_fail(ACL_WHERE_WELLKNOWN, rc, user_msg, log_msg); + else if (!wellknown_response) + return smtp_handle_acl_fail(ACL_WHERE_WELLKNOWN, ERROR, user_msg, log_msg); + smtp_user_msg(US"250", wellknown_response); + return 0; + } + } + +smtp_printf("554 not permitted\r\n", SP_NO_MORE); +log_write(0, LOG_MAIN|LOG_REJECT, "rejected \"%s\" from %s", + smtp_cmd_buffer, sender_helo_name, host_and_ident(FALSE)); +return 0; +} +#endif + + static int expand_mailmax(const uschar * s) { @@ -3686,9 +3727,8 @@ while (done <= 0) void (*oldsignal)(int); pid_t pid; int start, end, sender_domain, recipient_domain; - int rc; - int c; - uschar *orcpt = NULL; + int rc, c; + uschar * orcpt = NULL; int dsn_flags; gstring * g; @@ -4213,12 +4253,12 @@ while (done <= 0) chunking_state = CHUNKING_OFFERED; } +#ifndef DISABLE_TLS /* Advertise TLS (Transport Level Security) aka SSL (Secure Socket Layer) if it has been included in the binary, and the host matches tls_advertise_hosts. We must *not* advertise if we are already in a secure connection. */ -#ifndef DISABLE_TLS if (tls_in.active.sock < 0 && verify_check_host(&tls_advertise_hosts) != FAIL) { @@ -4252,6 +4292,13 @@ while (done <= 0) fl.smtputf8_advertised = TRUE; } #endif +#ifndef DISABLE_WELLKNOWN + if (verify_check_host(&wellknown_advertise_hosts) != FAIL) + { + g = string_catn(g, smtp_code, 3); + g = string_catn(g, US"-WELLKNOWN\r\n", 12); + } +#endif /* Finish off the multiline reply with one that is always available. */ @@ -4299,6 +4346,14 @@ while (done <= 0) toomany = FALSE; break; /* HELO/EHLO */ +#ifndef DISABLE_WELLKNOWN + case WELLKNOWN_CMD: + HAD(SCH_WELLKNOWN); + smtp_mailcmd_count++; + smtp_wellknown_handler(); + break; +#endif + #ifdef EXPERIMENTAL_XCLIENT case XCLIENT_CMD: { @@ -4352,9 +4407,10 @@ while (done <= 0) if ( fl.helo_verify_required || verify_check_host(&hosts_require_helo) == OK) { - smtp_printf("503 HELO or EHLO required\r\n", SP_NO_MORE); log_write(0, LOG_MAIN|LOG_REJECT, "rejected MAIL from %s: no " "HELO/EHLO given", host_and_ident(FALSE)); + done = synprot_error(L_smtp_protocol_error, 503, NULL, + US"HELO or EHLO required"); break; } else if (smtp_mailcmd_max < 0) @@ -5454,6 +5510,10 @@ while (done <= 0) if (acl_smtp_etrn) smtp_printf(" ETRN", SP_MORE); if (acl_smtp_expn) smtp_printf(" EXPN", SP_MORE); if (acl_smtp_vrfy) smtp_printf(" VRFY", SP_MORE); +#ifndef DISABLE_WELLKNOWN + if (verify_check_host(&wellknown_advertise_hosts) != FAIL) + smtp_printf(" WELLKNOWN", SP_MORE); +#endif #ifdef EXPERIMENTAL_XCLIENT if (proxy_session || verify_check_host(&hosts_xclient) != FAIL) smtp_printf(" XCLIENT", SP_MORE); diff --git a/src/src/smtp_out.c b/src/src/smtp_out.c index a78b15fbd..cfc96c13c 100644 --- a/src/src/smtp_out.c +++ b/src/src/smtp_out.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -365,6 +365,7 @@ if (!save_errno) { #ifdef TCP_FASTOPEN /* See if TCP Fast Open usable. Default is a traditional 3WHS connect */ + expand_level++; if (verify_check_given_host(CUSS &ob->hosts_try_fastopen, sc->host) == OK) { if (!early_data) @@ -380,6 +381,7 @@ if (!save_errno) } # endif } + expand_level--; #endif if (ip_connect(sock, sc->host_af, sc->host->address, sc->host->port, timeout, fastopen_blob) < 0) @@ -412,7 +414,7 @@ if (!save_errno) /* Both bind() and connect() succeeded, and any early-data */ - HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" connected\n"); + HDEBUG(D_transport|D_acl|D_v) debug_printf_indent("connected\n"); if (getsockname(sock, (struct sockaddr *)(&interface_sock), &size) == 0) sending_ip_address = host_ntoa(-1, &interface_sock, NULL, &sending_port); else @@ -496,7 +498,7 @@ HDEBUG(D_transport|D_acl|D_v) #ifdef SUPPORT_SOCKS if (ob->socks_proxy) s = string_sprintf("%svia proxy ", s); #endif - debug_printf_indent("Connecting to %s %s%s... ", sc->host->name, callout_address, s); + debug_printf_indent("Connecting to %s %s%s...\n", sc->host->name, callout_address, s); } /* Create and connect the socket */ diff --git a/src/src/spf.c b/src/src/spf.c index cc36463e4..9abe18fc3 100644 --- a/src/src/spf.c +++ b/src/src/spf.c @@ -3,7 +3,7 @@ *************************************************/ /* SPF support. - Copyright (c) The Exim Maintainers 2015 - 2023 + Copyright (c) The Exim Maintainers 2015 - 2024 Copyright (c) Tom Kistner 2004 - 2014 License: GPL SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/src/spf.h b/src/src/spf.h index afee742ed..7e9a6ca2a 100644 --- a/src/src/spf.h +++ b/src/src/spf.h @@ -2,8 +2,8 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Experimental SPF support. - Copyright (c) The Exim Maintainers 2016 - 2022 +/* SPF support. + Copyright (c) The Exim Maintainers 2016 - 2024 Copyright (c) Tom Kistner 2004 License: GPL SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/src/spool_in.c b/src/src/spool_in.c index 3e3b246ab..c788fd8f8 100644 --- a/src/src/spool_in.c +++ b/src/src/spool_in.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/spool_out.c b/src/src/spool_out.c index f3373faed..574aa167f 100644 --- a/src/src/spool_out.c +++ b/src/src/spool_out.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/store.c b/src/src/store.c index 03322a097..181e7fd67 100644 --- a/src/src/store.c +++ b/src/src/store.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim maintainers 2019 - 2023 */ +/* Copyright (c) The Exim maintainers 2019 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/string.c b/src/src/string.c index a627611af..113c05754 100644 --- a/src/src/string.c +++ b/src/src/string.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -1623,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)) { @@ -1646,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; } } diff --git a/src/src/structs.h b/src/src/structs.h index 8aab54055..3c85f6ae5 100644 --- a/src/src/structs.h +++ b/src/src/structs.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/tls-gnu.c b/src/src/tls-gnu.c index 3e8ec6d84..f443a6e27 100644 --- a/src/src/tls-gnu.c +++ b/src/src/tls-gnu.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* Copyright (c) Phil Pennock 2012 */ /* See the file NOTICE for conditions of use and distribution. */ diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c index 34612adea..c97106fe0 100644 --- a/src/src/tls-openssl.c +++ b/src/src/tls-openssl.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2019 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -1999,16 +1999,6 @@ SSL_CTX_free(ob->tls_preload.lib_ctx); ob->tls_preload = null_tls_preload; } -#else - -static void -tls_server_creds_invalidate(void) -{ return; } - -static void -tls_client_creds_invalidate(transport_instance * t) -{ return; } - #endif /*EXIM_HAVE_INOTIFY*/ diff --git a/src/src/tls.c b/src/src/tls.c index e6203b768..a1ae1abd1 100644 --- a/src/src/tls.c +++ b/src/src/tls.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -40,13 +40,16 @@ functions from the OpenSSL or GNU TLS libraries. */ static void tls_per_lib_daemon_init(void); static void tls_per_lib_daemon_tick(void); static unsigned tls_server_creds_init(void); -static void tls_server_creds_invalidate(void); static void tls_client_creds_init(transport_instance *, BOOL); -static void tls_client_creds_invalidate(transport_instance *); static void tls_daemon_creds_reload(void); static BOOL opt_set_and_noexpand(const uschar *); static BOOL opt_unset_or_noexpand(const uschar *); +#if defined(EXIM_HAVE_INOTIFY) || defined(EXIM_HAVE_KEVENT) +static void tls_server_creds_invalidate(void); +static void tls_client_creds_invalidate(transport_instance *); +#endif + /* This module is compiled only when it is specifically requested in the @@ -324,7 +327,9 @@ tls_client_creds_reload(BOOL watch) for(transport_instance * t = transports; t; t = t->next) if (Ustrcmp(t->driver_name, "smtp") == 0) { +#if defined(EXIM_HAVE_INOTIFY) || defined(EXIM_HAVE_KEVENT) tls_client_creds_invalidate(t); +#endif tls_client_creds_init(t, watch); } } @@ -360,7 +365,9 @@ unsigned lifetime; tls_watch_invalidate(); #endif +#if defined(EXIM_HAVE_INOTIFY) || defined(EXIM_HAVE_KEVENT) tls_server_creds_invalidate(); +#endif /* _expire is for a time-limited selfsign server cert */ tls_creds_expire = (lifetime = tls_server_creds_init()) diff --git a/src/src/transport.c b/src/src/transport.c index 3609b78bb..658fc6235 100644 --- a/src/src/transport.c +++ b/src/src/transport.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -1702,7 +1702,7 @@ DEBUG(D_transport) acl_level++; } -/* Do nothing if we have hit the maximum number that can be send down one +/* Do nothing if we have hit the maximum number that can be sent down one connection. */ if (connection_max_messages >= 0) local_message_max = connection_max_messages; @@ -1739,7 +1739,7 @@ if (host_record->count > WAIT_NAME_MAX) goto retfalse; } -/* Scan the message ids in the record from the end towards the beginning, +/* Scan the message ids in the record in order until one is found for which a spool file actually exists. If the record gets emptied, delete it and continue with any continuation records that may exist. */ @@ -1752,17 +1752,14 @@ host_length = host_record->count * MESSAGE_ID_LENGTH; while (1) { - msgq_t *msgq; - int msgq_count = 0; - int msgq_actual = 0; - BOOL bFound = FALSE; - BOOL bContinuation = FALSE; + msgq_t * msgq; + int msgq_count = 0, msgq_actual = 0; + BOOL bFound = FALSE, bContinuation = FALSE; /* create an array to read entire message queue into memory for processing */ msgq = store_get(sizeof(msgq_t) * host_record->count, GET_UNTAINTED); - msgq_count = host_record->count; - msgq_actual = msgq_count; + msgq_actual = msgq_count = host_record->count; for (i = 0; i < host_record->count; ++i) { @@ -1776,10 +1773,9 @@ while (1) debug_printf_indent("NOTE: old or corrupt message-id found in wait=%.200s" " hints DB; deleting records for %s\n", transport_name, hostname); (void) dbfn_delete(dbm_file, hostname); - for (int i = host_record->sequence - 1; i >= 0; i--) + for (int j = host_record->sequence - 1; j >= 0; j--) (void) dbfn_delete(dbm_file, - (sprintf(CS buffer, "%.200s:%d", hostname, i), buffer)); - dbfn_close(dbm_file); + (sprintf(CS buffer, "%.200s:%d", hostname, j), buffer)); goto retfalse; } msgq[i].bKeep = TRUE; @@ -1801,7 +1797,7 @@ while (1) /* now find the next acceptable message_id */ - for (i = msgq_count - 1; i >= 0; --i) if (msgq[i].bKeep) + for (i = 0; i < msgq_count; i++) if (msgq[i].bKeep) { uschar subdir[2]; uschar * mid = msgq[i].message_id; @@ -1895,8 +1891,8 @@ while (1) } /* we were not able to find an acceptable message, nor was there a - * continuation record. So bug out, outer logic will clean this up. - */ + continuation record. So bug out, outer logic will clean this up. + */ if (!bContinuation) { @@ -1918,7 +1914,11 @@ if (host_length > 0) } dbfn_close(dbm_file); -DEBUG(D_transport) {acl_level--; debug_printf("transport_check_waiting: TRUE\n"); } +DEBUG(D_transport) + { + acl_level--; + debug_printf("transport_check_waiting: TRUE (found %s)\n", new_message_id); + } return TRUE; retfalse: diff --git a/src/src/transports/appendfile.c b/src/src/transports/appendfile.c index 0279659f2..eeb726ae1 100644 --- a/src/src/transports/appendfile.c +++ b/src/src/transports/appendfile.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim maintainers 2020 - 2023 */ +/* Copyright (c) The Exim maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2020 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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 67d48a1cb..5ffc07215 100644 --- a/src/src/transports/autoreply.c +++ b/src/src/transports/autoreply.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -475,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; @@ -811,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/lmtp.c b/src/src/transports/lmtp.c index eff0dc79d..7f82ef708 100644 --- a/src/src/transports/lmtp.c +++ b/src/src/transports/lmtp.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/transports/pipe.c b/src/src/transports/pipe.c index f8a1427b9..faed1d00f 100644 --- a/src/src/transports/pipe.c +++ b/src/src/transports/pipe.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim maintainers 2020 - 2023 */ +/* Copyright (c) The Exim maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/transports/queuefile.c b/src/src/transports/queuefile.c index 21c98eeef..79020217b 100644 --- a/src/src/transports/queuefile.c +++ b/src/src/transports/queuefile.c @@ -2,9 +2,9 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 1995 - 2024 */ /* Copyright (c) Andrew Colin Kissa 2016 */ /* Copyright (c) University of Cambridge 2016 */ -/* Copyright (c) The Exim Maintainers 1995 - 2021 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index ddd6ad7e1..a5caf3de6 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -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 @@ -1087,7 +1091,7 @@ if (pending_BANNER) } /*XXX EXPERIMENTAL_ESMTP_LIMITS ? */ -# ifndef DISABLE_TLS_RESUME +# if !defined(DISABLE_TLS) && !defined(DISABLE_TLS_RESUME) GET_OPTION("host_name_extract"); s = ((smtp_transport_options_block *)sx->conn_args.ob)->host_name_extract; if (!s) s = HNE_DEFAULT; @@ -2631,7 +2635,7 @@ goto SEND_QUIT; } } #endif -#ifndef DISABLE_TLS_RESUME +#if !defined(DISABLE_TLS) && !defined(DISABLE_TLS_RESUME) GET_OPTION("host_name_extract"); if (!(s = ob->host_name_extract)) s = HNE_DEFAULT; ehlo_response_lbserver(sx, s); diff --git a/src/src/transports/smtp.h b/src/src/transports/smtp.h index fc8a6b126..1d892d567 100644 --- a/src/src/transports/smtp.h +++ b/src/src/transports/smtp.h @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2022 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/transports/smtp_socks.c b/src/src/transports/smtp_socks.c index ac8d0f2da..8848dd7a5 100644 --- a/src/src/transports/smtp_socks.c +++ b/src/src/transports/smtp_socks.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2021 - 2022 */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) Jeremy Harris 2015 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/tree.c b/src/src/tree.c index 2c703583e..8f73a46aa 100644 --- a/src/src/tree.c +++ b/src/src/tree.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2021 - 2023 */ +/* Copyright (c) The Exim Maintainers 2021 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2015 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/src/verify.c b/src/src/verify.c index 065deec41..b1e5d6802 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2020 - 2023 */ +/* Copyright (c) The Exim Maintainers 2020 - 2024 */ /* Copyright (c) University of Cambridge 1995 - 2023 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ @@ -294,7 +294,7 @@ implying some kind of I/O error. We don't want to write the cache in that case. Otherwise the value is ccache_accept, ccache_reject, or ccache_reject_mfnull. */ if (dom_rec->result != ccache_unknown) - if (!(dbm_file = dbfn_open(US"callout", O_RDWR|O_CREAT, &dbblock, FALSE, TRUE))) + if (!(dbm_file = dbfn_open(US"callout", O_RDWR, &dbblock, FALSE, TRUE))) { HDEBUG(D_verify) debug_printf_indent("callout cache: not available\n"); } @@ -316,7 +316,7 @@ is disabled. */ if (done && addr_rec->result != ccache_unknown) { if (!dbm_file) - dbm_file = dbfn_open(US"callout", O_RDWR|O_CREAT, &dbblock, FALSE, TRUE); + dbm_file = dbfn_open(US"callout", O_RDWR, &dbblock, FALSE, TRUE); if (!dbm_file) { HDEBUG(D_verify) debug_printf_indent("no callout cache available\n"); @@ -3523,7 +3523,7 @@ dbdata_callout_cache_address cache_address_record; if (!pos_cache && !neg_cache) return; -if (!(dbm_file = dbfn_open(US"callout", O_RDWR|O_CREAT, &dbblock, FALSE, TRUE))) +if (!(dbm_file = dbfn_open(US"callout", O_RDWR, &dbblock, FALSE, TRUE))) { HDEBUG(D_verify) debug_printf_indent("quota cache: not available\n"); return; diff --git a/src/src/xclient.c b/src/src/xclient.c index fb9d95c5e..cca5dd887 100644 --- a/src/src/xclient.c +++ b/src/src/xclient.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) The Exim Maintainers 2023 */ +/* Copyright (c) The Exim Maintainers 2023 - 2024 */ /* See the file NOTICE for conditions of use and distribution. */ /* SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/util/mailtest b/src/util/mailtest new file mode 100755 index 000000000..0c50d93f5 --- /dev/null +++ b/src/util/mailtest @@ -0,0 +1,486 @@ +#!/usr/bin/perl +# +############################################################### +############################################################### + +use strict; + +use Net::SMTP; +#use IO::Socket::SSL qw( SSL_ERROR ); +use Net::Domain qw(hostfqdn); +use Getopt::Long qw(:config default bundling no_ignore_case auto_version); +use Pod::Usage; +use Net::Cmd; +use Data::Dumper; + +our @ISA = qw(Net::Cmd); + +############################################################### +############################################################### + +my ($smtp,$optsin,$opt,$mess,$rcpt,@headers,$finished_header,$ofh); +$main::VERSION = '1.2.2'; + +$optsin = { + 'body|b' => \&optset, + 'debug|d' => \&optset, + 'ehlo|helo|m=s' => \&optset, + 'rcptto|recipient|r=s' => \&optset, + 'host|h=s' => \&optset, + 'from822|u=s' => \&optset, + 'vrfy|v' => \&optset, + 'expn|e' => \&optset, + 'mailfrom|from821|from|f=s' => \&optset, + 'port|p=i' => \&optset, + 'wellknown|w=s' => \&optset, + 'output|W=s' => \&optset, + 'include_options|O' => \&optset, + 'include_headers|H' => \&optset, + 'bounce|B' => \&optset, + 'tls|S' => \&optset, + 'nostarttls|s' => \&optset, + 'stricttls|strict_tls' => \&optset, + 'sslargs|tlsargs=s' => \&optset, + 'verbose' => \&optset, + 'help' => \&optset, + 'man' => \&optset, +}; +map { my $t = $_; $t =~ s/\|.*//; $opt->{$t} = undef; } keys %$optsin; +GetOptions( %$optsin ) or pod2usage(2); +pod2usage(1) if $opt->{'help'}; +pod2usage(-exitval => 0, -verbose => 2) if $opt->{'man'}; + +print _Dumper($opt, 'Options') + if $opt->{'debug'}; + +############################################################### +############################################################### +## +## parameter checking +## +############################################################### +############################################################### + +bail( 1, "Host(--host) must be provided" ) + if !$opt->{'host'}; + +$opt->{'port'} = $opt->{'tls'} ? 465 : 25 + if ! $opt->{'port'}; + +if (!$opt->{'ehlo'}) +{ + $opt->{'ehlo'} = hostfqdn(); + fret( "Machine set to $opt->{'ehlo'}" ) if $opt->{'debug'}; +} +if (!$opt->{'mailfrom'} && !$opt->{'bounce'}) +{ + $opt->{'mailfrom'} = $ENV{USER}. "@". $opt->{'ehlo'}; + fret( "MAIL FROM set to $opt->{'mailfrom'}" ) if $opt->{'debug'}; +} +if (!$opt->{'from822'}) +{ + $opt->{'from822'} = $opt->{'mailfrom'}; + fret( "From: set to $opt->{'from822'}" ) if $opt->{'debug'}; +} +if ($opt->{'bounce'}) +{ + $opt->{'mailfrom'} = ""; + $opt->{'from822'} = 'mailer-daemon@'. hostfqdn(); + fret( "MAIL FROM set to $opt->{'mailfrom'}", "From: set to $opt->{'from822'}" ) if $opt->{'debug'}; +} + +bail( 1, "EXPN or VRFY cannot be used without a recipient" ) + if ($opt->{'expn'} || $opt->{'vrfy'}) && ! $opt->{'rcptto'}; + +bail( 1, "Either a recipient or well-known resource must be specified" ) + if ! $opt->{'wellknown'} && ! $opt->{'rcptto'}; + +bail( 1, "Only one of recipient or well-known resource can be specified" ) + if $opt->{'wellknown'} && $opt->{'rcptto'}; + +if ( $opt->{'sslargs'} ) +{ + my @p = split /[=,]/, $opt->{'sslargs'}; + $opt->{'sslparams'} = \@p; +} +else +{ + $opt->{'sslparams'} = [ 'SSL_verify_mode', $opt->{'stricttls'} ? 1 : 0 ]; +} +fret( _Dumper( $opt->{'sslparams'}, 'sslparams' ) ) + if $opt->{'debug'} && ( $opt->{'tls'} || ! $opt->{'nostarttls'} ); + +############################################################### +############################################################### +## +## parameter checking complete. now onto operations +## +## +############################################################### +############################################################### + + + +$smtp= Net::SMTP->new( $opt->{'host'}, + Hello => $opt->{'ehlo'}, + Debug => $opt->{'debug'}, + ( $opt->{'tls'} ? ( 'SSL' => $opt->{'sslargs'} || 1 ) : () ), + Port => $opt->{'port'}, + ); +bail( 1, "Connection Failed: $@" ) + if !$smtp; + +if (!$opt->{'nostarttls'}) +{ + bail( $smtp, 1, "Failed to STARTTLS - $@" ) + if ! $smtp->starttls( @{$opt->{'sslparams'}} ); + + fret( $smtp->message() ) + if $opt->{'verbose'}; +} + +if ($opt->{'wellknown'}) +{ + bail( $smtp, 1, "Server does not support WELLKNOWN" ) + if ! $smtp->supports('WELLKNOWN'); + + my $e_wk = encode_xtext( $opt->{'wellknown'} ); + + bail( $smtp, 1, "Failed to WELLKNOWN - $e_wk", $smtp->message() ) + if ! ( $smtp->command( 'WELLKNOWN', $e_wk )->response() == CMD_OK ); + + fret( "Protocol violation. Code was OK, but not 250", $smtp->code. " - ". $smtp->message ) + if $smtp->code ne '250'; + + $mess = $smtp->message; + my ($info,$size); + ($info,$mess) = split( /\n/, $mess, 2 ); + $info =~ /size=(\d+)/i; + $size = $1 + 0; + $mess = decode_xtext( $mess ); + fret( "Size mismatch on wellknown fetch", "Expected: ". $size, "Received: ". length($mess) ) + if length($mess) != $size; + + if ( $opt->{'output'} ) + { + # Output to named file + # + bail( $smtp, 1, "Unable to open file $opt->{'output'} for WELLKNOWN output - $!" ) + if ! ( $ofh = IO::File->new("> $opt->{'output'}") ); + + print $ofh $mess; + $ofh->close; + } + else + { + # might be hazardous, output via pager + print STDERR "$mess\n"; + } +} + +if ($opt->{'vrfy'}) +{ + $smtp->verify($opt->{'vrfy'}); + fret( $smtp->message() ); +} + +if ($opt->{'expn'}) +{ + $smtp->expand($opt->{'expn'}); + fret( $smtp->message() ); +} + +if ($opt->{'rcptto'}) +{ + bail( $smtp, 1, "MAIL FROM $opt->{'mailfrom'} failed", $@ ) + if ! $smtp->mail($opt->{'mailfrom'}); + + bail( $smtp, 1, "RCPT TO $opt->{'rcptto'} failed", $@ ) + if ! $smtp->to($opt->{'rcptto'}); + + # handle any recipients on command line + while( $rcpt = shift @ARGV ) + { + last if $rcpt eq '--'; + fret( "RCPT TO $rcpt failed", $@ ) + if ! $smtp->to($rcpt); + } + + bail( $smtp, 1, "Unable to set data mode", @_ ) + if ! $smtp->data(); + + if ($opt->{'body'}) + { + push @headers, "Subject: Test Message\n"; + $smtp->datasend("From: $opt->{'from822'}\n"); + $smtp->datasend("To: $opt->{'rcptto'}\n"); + $smtp->datasend("Subject: Test Message\n"); + $smtp->datasend("\n"); + $smtp->datasend("This is a test message\n"); + $smtp->datasend("generated with mailtest\n"); + }else + { + while(<>) + { + if($finished_header==0) + { + if (length($_)<=1) + { + $finished_header = 1; + }else + { + push @headers," ".$_; + } + } + $smtp->datasend("$_"); + } + } + if($opt->{'include_headers'} && @headers) + { + $smtp->datasend("\n Copy of headers follow....\n"); + foreach(@headers) + { + $smtp->datasend("$_"); + } + $smtp->datasend("\n"); + } + if($opt->{'include_options'}) + { + $smtp->datasend("\n Copy of options follow....\n"); + $smtp->datasend(" SMTP HOST $opt->{'host'}\n"); + $smtp->datasend(" HELO $opt->{'ehlo'}\n"); + $smtp->datasend(" MAIL FROM: $opt->{'mailfrom'}\n"); + $smtp->datasend(" RCPT TO: $opt->{'rcptto'}\n\n"); + } + fret( "dataend failed", $@ ) + if ! $smtp->dataend(); +} +$smtp->quit(); + +exit; + +############################################################## +############################################################## + +sub +optset +{ + my $n = shift; + my $v = shift; + #print STDERR "Setting $n to $v\n"; + $opt->{$n->{'name'}} = $v; +} + +sub +decode_xtext +{ + my $mess = shift; + $mess =~ s/[\n\r]//g; + $mess =~ s/\+([0-9a-fA-F]{2})/chr(hex($1))/ge; + return $mess; +} + +sub +encode_xtext +{ + my $mess = shift; + $mess =~ s/([^!-*,-<>-~])/'+'.uc(unpack('H*', $1))/eg; + return $mess; +} + +sub +_Dumper +{ + return Data::Dumper->Dump( [$_[0]], [$_[1] || 'VAR1'] ); +} + +sub +fret +{ + map { print STDERR $_,"\n"; } @_; +} + +sub +bail +{ + shift->quit + if ref($_[0]); + my $rc = shift; + fret( @_ ); + exit $rc; +} + +############################################################## +############################################################## + +__END__ + +=head1 NAME + +mailtest - Simple SMTP sending for diagnostics + +=head1 SYNOPSIS + +mailtest --host host.example.com --rcptto recipient@example.com [ send_options ... ] [ additional recipients ...] + + +Options: + --help + brief help message + --debug + enable debugging + + --host host + host to connect to + --rcptto recipient + recipient for message + + --helo machine + machine name for EHLO + + --vrfy request VRFY of recipient + --expn request EXPN of recipient + + --mailfrom from + use as MAIL FROM value + --from822 from + content From: + + --port port + port to connect to + + --body generate body + --include_options + include Options in body + --include_headers + include generated headers in body + + --tls perform TLS on connect + --nostarttls do no attempt STARTTLS + --stricttls Enable strict verification on TLS connection + + --tlsargs arg=value[,arg=value] + Explicitly define TLS options. + + --bounce sending as bounce (<>) + + --wellknown path + well-known path + --output file + Output file to receive well-known data + +=head1 OPTIONS + +=over 8 + + +=item B<--help> + +Print a brief help message and exits. + +=item B<-d, --debug> + +Enables debugging, outpus additional information whilst processing requests. + +=item B<-h, --host>=I + +Specifies the host to connect to. Must be specified and must be IP-resolvable. + +=item B<-m, --ehlo>=I + +Specified the machine name to use as the B value. Defaults to the fully-qualified name of the host running the command. + +=item B<-r, --rcptto>=I + +Specifies the recipient of message. This is used as the B value. + +=item B<-v, --vrfy> + +Uses the I parameter for the value in a B request. This disables the sending of an email. + +=item B<-e, --expn> + +Uses the I parameter for the value in an B request. This disables the sending of an email. + +=item B<-f, --mailfrom>=I + +Specified the value to use in the B command. Defaults to the current username at the FQDN of the machine B<-m> unless the B<-B> option is used. + +=item B<-u, --from822>=I + +Specified the value to use in the message headers. Defaults to the B<-f> I value unless the B<-B> option is used. + +=item B<-B, --bounce> + +Replace the B<--mailfrom> I with B<\<\>> and the B<--from833> I with B where the host is the value of B<--ehlo> I + +=item B<-p, --port>=I + +Specified the port to connect to on the specified host. Defaults to port 25 unless B<-S> is given in which case it defaults to 465. + +=item B<-S, --tls> + +Specifies that TLS be used directly on the connection prior to any SMTP commands. Changes the connection port to 465 unless it has been explicitly provided. Disables any attempts at B. + +=item B<-s, --nostarttls> + +Disables attempting STARTTLS if offered. Disabled by use of B<-S>. + +=item B<--stricttls> + +Enables strict verification of the TLS connection. Sets the underlying SSL option B to 1/SSL_VERIFY_PEER rather than 0/SSL_VERIFY_NONE. Since the aim of this tool is to test the SMTP protocol behaviour and not the TLS behaviour the decision was made to default the B to 0/SSL_VERIFY_NONE. + +=item B<--sslargs>=argname=argvalue[,argname=argvalue...] + +Allow full control over underlying SSL options. Overrides B<--stricttls>. See the documentation for B for further details. + + --sslargs SSL_verifycn_name=certname.example.com + +=item B<-b, --body> + +Generate a body for the message being sent. + +=item B<-O, --include-options> + +Include details of options used in the message body. + +=item B<-H, --include-headers> + +Include a copy of the generated headers in the message body. + +=item B<-w, --wellknown>=I + +Provides the path value for a B command. + +=item B<-W, --output>=I + +Provides the output file where the B data should be stored. + +=back + +=head1 DESCRIPTION + +B is a simple utility for testing SMTP connections. +It is designed to debug endpoints and not for full email generation. + +It support a number of basic operations, SEND, VRFY, EXPN, WELLKNOWN. + +=head1 COMPATIBILITY + +C only requires modules that should be in all normal distributions. + +=head1 AUTHOR + +Bernard Quatermass + +=head1 COPYRIGHT AND LICENSE + +This software is Copyright (c) 2008,2020,2024 by Bernard Quatermass. + + +=cut + +############################################################### +# vi: sw=4 et +# End of File +############################################################### diff --git a/test/aux-fixed/2500.dir/..subdir/regfile b/test/aux-fixed/2500.dir/..subdir/regfile new file mode 100644 index 000000000..e69de29bb diff --git a/test/aux-fixed/4040/acme-response b/test/aux-fixed/4040/acme-response new file mode 100644 index 000000000..d3f618d8c --- /dev/null +++ b/test/aux-fixed/4040/acme-response @@ -0,0 +1,3 @@ +line 1 +line 2 +last line diff --git a/test/aux-fixed/4040/sub/acme-response b/test/aux-fixed/4040/sub/acme-response new file mode 100644 index 000000000..d3f618d8c --- /dev/null +++ b/test/aux-fixed/4040/sub/acme-response @@ -0,0 +1,3 @@ +line 1 +line 2 +last line diff --git a/test/confs/0612 b/test/confs/0612 index 786b2e58e..f4f427246 100644 --- a/test/confs/0612 +++ b/test/confs/0612 @@ -24,14 +24,18 @@ queue_only queue_run_in_order +.ifdef _HAVE_EVENT event_action = ${acl {ev_log}} +.endif # begin acl +.ifdef _HAVE_EVENT ev_log: accept logwrite = event $event_name +.endif rcpt: accept hosts = HOSTIPV4 @@ -76,20 +80,26 @@ begin transports smtp: driver = smtp +.ifdef _HAVE_EVENT event_action = ${acl {ev_log}} +.endif hosts_try_fastopen = : bad_tpt: driver = smtp connect_timeout = 1s +.ifdef _HAVE_EVENT event_action = ${acl {ev_log}} +.endif tofile: driver = appendfile file = DIR/test-mail/$local_part create_file = DIR/test-mail user = CALLER +.ifdef _HAVE_EVENT event_action = ${acl {ev_log}} +.endif begin retry diff --git a/test/confs/0615 b/test/confs/0615 index a1aae2acd..902e097ac 100644 --- a/test/confs/0615 +++ b/test/confs/0615 @@ -43,7 +43,7 @@ send_to_server: hosts = 127.0.0.1 port = PORT_D hosts_try_fastopen = : - # assumes that HOSTIPV4 can sent to 127.0.0.1 + # assumes that HOSTIPV4 can send to 127.0.0.1 interface = ${if eq {$sender_address_domain}{dustybelt.tld} {127.0.0.1}{HOSTIPV4}} # ----- Retry ----- diff --git a/test/confs/0637 b/test/confs/0637 new file mode 100644 index 000000000..a47d7d128 --- /dev/null +++ b/test/confs/0637 @@ -0,0 +1,13 @@ +# Exim test configuration 0637 + +HVH= + +.include DIR/aux-var/std_conf_prefix + +primary_hostname = myhost.test.ex + +# ----- Main settings ----- + +# ----- ACL ----- + +# End diff --git a/test/confs/4020 b/test/confs/4020 index dc0db460e..6702dcd68 100644 --- a/test/confs/4020 +++ b/test/confs/4020 @@ -46,7 +46,9 @@ my_smtp: hide socks_proxy = HOSTIPV4 port=PORT_D OPT hosts_try_fastopen = ${if eq {$local_part}{user_tfo} {*}} debug_print = transport_name <$transport_name> +.ifdef _HAVE_EVENT event_action = ${if eq {smtp:connect}{$event_name} {${acl {logger}}} {}} +.endif # End diff --git a/test/confs/4040 b/test/confs/4040 new file mode 100644 index 000000000..c5c6c3c0e --- /dev/null +++ b/test/confs/4040 @@ -0,0 +1,29 @@ +# Exim test configuration 4040 + +SERVER= +OPT= + +.include DIR/aux-var/std_conf_prefix + +primary_hostname = myhost.test.ex + +# ----- Main settings ----- + +wellknown_advertise_hosts = 127.0.0.1 +acl_smtp_wellknown = check_wellknown + +# ----- ACL ----- + +begin acl + +check_wellknown: + accept + logwrite = [$sender_host_address] $smtp_command + condition = ${if == {${received_port}}{PORT_D}} + set acl_c_wellknown = ${lookup {${xtextd:$smtp_command_argument}} \ + dsearch,ret=full,filter=fileOPT \ + {DIR/aux-fixed/TESTNUM}} + logwrite = [$sender_host_address] -> '$acl_c_wellknown' + control = wellknown/$acl_c_wellknown + +# End 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/confs/5890 b/test/confs/5890 index ff5adb90f..c81cd92f3 100644 --- a/test/confs/5890 +++ b/test/confs/5890 @@ -103,7 +103,9 @@ send_to_server1: tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} tls_try_verify_hosts = * +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif send_to_server2: driver = smtp @@ -113,7 +115,9 @@ send_to_server2: hosts_try_fastopen = : tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = : +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif # ----- Retry ----- diff --git a/test/confs/5891 b/test/confs/5891 index 89ee8fd53..ff50b2b2e 100644 --- a/test/confs/5891 +++ b/test/confs/5891 @@ -93,7 +93,9 @@ send_to_server1: tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} tls_try_verify_hosts = * +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif send_to_server2: driver = smtp @@ -103,7 +105,9 @@ send_to_server2: hosts_try_fastopen = : tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = : +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif # ----- Retry ----- diff --git a/test/confs/5892 b/test/confs/5892 index 571cb8e7e..77b5c9052 100644 --- a/test/confs/5892 +++ b/test/confs/5892 @@ -108,7 +108,9 @@ send_to_server1: tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} tls_try_verify_hosts = * +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif send_to_server2: driver = smtp @@ -118,7 +120,9 @@ send_to_server2: hosts_try_fastopen = : tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = : +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif # ----- Retry ----- diff --git a/test/confs/5893 b/test/confs/5893 index a7f73a98c..5d569d708 100644 --- a/test/confs/5893 +++ b/test/confs/5893 @@ -97,7 +97,9 @@ send_to_server1: tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} tls_try_verify_hosts = * +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif send_to_server2: driver = smtp @@ -107,7 +109,9 @@ send_to_server2: hosts_try_fastopen = : tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = : +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif # ----- Retry ----- diff --git a/test/confs/5894 b/test/confs/5894 index 4b34c75ae..d823290aa 100644 --- a/test/confs/5894 +++ b/test/confs/5894 @@ -99,7 +99,9 @@ send_to_server1: tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} tls_try_verify_hosts = * +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif send_to_server2: driver = smtp @@ -109,7 +111,9 @@ send_to_server2: hosts_try_fastopen = : tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = : +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif # ----- Retry ----- diff --git a/test/confs/5895 b/test/confs/5895 index d279b1e3e..c83c70926 100644 --- a/test/confs/5895 +++ b/test/confs/5895 @@ -92,7 +92,9 @@ send_to_server1: tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = ${if match {$local_part}{^noverify} {*}{:}} tls_try_verify_hosts = * +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif send_to_server2: driver = smtp @@ -102,7 +104,9 @@ send_to_server2: hosts_try_fastopen = : tls_verify_certificates = CDIR/CA/CA.pem tls_verify_cert_hostnames = : +.ifdef _HAVE_EVENT event_action = ${acl {log_resumption}} +.endif # ----- Retry ----- diff --git a/test/log/0367 b/test/log/0367 index 528c25e5e..bfc366ac0 100644 --- a/test/log/0367 +++ b/test/log/0367 @@ -5,10 +5,10 @@ 1999-03-02 09:44:33 Start queue run: pid=p1234 -qqf 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => userx@domain1 R=others T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbA-000000005vi-0000 => userx@domain1 R=others T=smtp H=127.0.0.1 [127.0.0.1]* C="250 OK" -1999-03-02 09:44:33 10HmbA-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userx@domain1 R=others T=smtp H=127.0.0.1 [127.0.0.1]* C="250 OK" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed 1999-03-02 09:44:33 10HmaY-000000005vi-0000 => userx@domain1 R=others T=smtp H=127.0.0.1 [127.0.0.1]* C="250 OK" 1999-03-02 09:44:33 10HmaY-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userx@domain1 R=others T=smtp H=127.0.0.1 [127.0.0.1]* C="250 OK" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmbA-000000005vi-0000 => userx@domain1 R=others T=smtp H=127.0.0.1 [127.0.0.1]* C="250 OK" +1999-03-02 09:44:33 10HmbA-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1234 -qqf diff --git a/test/log/0440 b/test/log/0440 index 129b25d3d..a4e1e5862 100644 --- a/test/log/0440 +++ b/test/log/0440 @@ -7,8 +7,8 @@ 1999-03-02 09:44:33 Start queue run: pid=p1234 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => x1@y1 R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => x3@y3 R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed 1999-03-02 09:44:33 10HmaY-000000005vi-0000 => x2@y2 R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK" 1999-03-02 09:44:33 10HmaY-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => x3@y3 R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1234 diff --git a/test/log/0614 b/test/log/0614 index 00dbbf85c..2d80afdcf 100644 --- a/test/log/0614 +++ b/test/log/0614 @@ -7,12 +7,12 @@ 1999-03-02 09:44:33 Start queue run: pid=p1234 -qq 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbD-000000005vi-0000" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmbE-000000005vi-0000" -1999-03-02 09:44:33 10HmbC-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmbE-000000005vi-0000" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed 1999-03-02 09:44:33 10HmbB-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmbF-000000005vi-0000" 1999-03-02 09:44:33 10HmbB-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmbG-000000005vi-0000" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmbC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmbG-000000005vi-0000" +1999-03-02 09:44:33 10HmbC-000000005vi-0000 Completed 1999-03-02 09:44:33 10HmaY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbH-000000005vi-0000" 1999-03-02 09:44:33 10HmaY-000000005vi-0000 Completed 1999-03-02 09:44:33 10HmbA-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmbI-000000005vi-0000" @@ -22,8 +22,8 @@ ******** SERVER ******** 1999-03-02 09:44:33 exim x.yz daemon started: pid=p1235, no queue runs, listening for SMTP on port PORT_D 1999-03-02 09:44:33 10HmbD-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaX-000000005vi-0000@the.local.host.name -1999-03-02 09:44:33 10HmbE-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbC-000000005vi-0000@the.local.host.name +1999-03-02 09:44:33 10HmbE-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaZ-000000005vi-0000@the.local.host.name 1999-03-02 09:44:33 10HmbF-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbB-000000005vi-0000@the.local.host.name -1999-03-02 09:44:33 10HmbG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaZ-000000005vi-0000@the.local.host.name +1999-03-02 09:44:33 10HmbG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbC-000000005vi-0000@the.local.host.name 1999-03-02 09:44:33 10HmbH-000000005vi-0000 <= peter@dustybelt.tld H=localhost (the.local.host.name) [127.0.0.1] P=esmtp S=sss id=E10HmaY-000000005vi-0000@the.local.host.name 1999-03-02 09:44:33 10HmbI-000000005vi-0000 <= peter@dustybelt.tld H=localhost (the.local.host.name) [127.0.0.1] P=esmtp S=sss id=E10HmbA-000000005vi-0000@the.local.host.name diff --git a/test/log/0615 b/test/log/0615 index 0fbdd1b8c..1c2e817fc 100644 --- a/test/log/0615 +++ b/test/log/0615 @@ -82,248 +82,248 @@ 2017-07-30 18:51:05.712 Start queue run: pid=p1234 -qq 2017-07-30 18:51:05.712 10HmaX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmeA-000000005vi-0000" 2017-07-30 18:51:05.712 10HmaX-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeB-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdZ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeC-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdY-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeD-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdX-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdW-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeE-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdW-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdV-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeF-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdV-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdU-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeG-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdU-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdT-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeH-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdT-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdS-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeI-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdS-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdR-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeJ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdR-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdQ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeK-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdQ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdP-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeL-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdP-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdO-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeM-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdO-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdN-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeN-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdN-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdM-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeO-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdM-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdL-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeP-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdL-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcV-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeB-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcV-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcW-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeC-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcW-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeD-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcX-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeE-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcY-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeF-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcZ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdA-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeG-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdA-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdB-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeH-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdB-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeI-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdC-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdD-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeJ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdD-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdE-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeK-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdE-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdF-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeL-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdF-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdG-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeM-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdG-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdH-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeN-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdH-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdI-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeO-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdI-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdJ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeP-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdJ-000000005vi-0000 Completed 2017-07-30 18:51:05.712 10HmdK-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeQ-000000005vi-0000" 2017-07-30 18:51:05.712 10HmdK-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdJ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeR-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdJ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdI-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeS-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdI-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdH-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeT-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdH-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdG-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeU-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdG-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdF-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeV-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdF-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdE-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeW-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdE-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdD-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeX-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdD-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeY-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdC-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdB-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeZ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdB-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmdA-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfA-000000005vi-0000" -2017-07-30 18:51:05.712 10HmdA-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfB-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcZ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfC-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcY-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfD-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcX-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcW-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfE-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcW-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcV-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfF-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcV-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcU-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfG-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcU-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcT-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfH-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcT-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcS-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfI-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcS-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcR-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfJ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcR-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcQ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfK-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcQ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcP-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfL-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcP-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcO-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfM-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcO-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcN-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfN-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcN-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcM-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfO-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcM-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcL-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfP-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcL-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcK-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfQ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcK-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcJ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfR-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcJ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcI-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfS-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcI-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcH-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfT-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcH-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcG-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfU-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcG-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcF-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfV-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcF-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcE-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfW-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcE-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcD-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfX-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcD-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfY-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcC-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcB-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfZ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcB-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmcA-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgA-000000005vi-0000" -2017-07-30 18:51:05.712 10HmcA-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgB-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbZ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgC-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbY-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgD-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbX-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdL-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeR-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdL-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdM-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeS-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdM-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdN-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeT-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdN-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdO-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeU-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdO-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdP-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeV-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdP-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdQ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeW-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdQ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdR-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeX-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdR-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdS-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeY-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdS-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdT-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmeZ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdT-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdU-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfA-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdU-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdV-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfB-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdV-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdW-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfC-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdW-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfD-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdX-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfE-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdY-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmdZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfF-000000005vi-0000" +2017-07-30 18:51:05.712 10HmdZ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmaY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfG-000000005vi-0000" +2017-07-30 18:51:05.712 10HmaY-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfH-000000005vi-0000" +2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbA-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfI-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbA-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfJ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfK-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfL-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbE-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfM-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbE-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfN-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbG-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfO-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbG-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfP-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfQ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbJ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfR-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbJ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbK-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfS-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbK-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbL-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfT-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbL-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbM-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfU-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbM-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbN-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfV-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbN-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbO-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfW-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbO-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbP-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfX-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbP-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbQ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfY-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbQ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbR-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmfZ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbR-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbS-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgA-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbS-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbT-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgB-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbT-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbU-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgC-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbU-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbV-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgD-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbV-000000005vi-0000 Completed 2017-07-30 18:51:05.712 10HmbW-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgE-000000005vi-0000" 2017-07-30 18:51:05.712 10HmbW-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbV-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgF-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbV-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbU-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgG-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbU-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbT-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgH-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbT-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbS-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgI-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbS-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbR-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgJ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbR-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbQ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgK-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbQ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbP-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgL-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbP-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbO-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgM-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbO-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbN-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgN-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbN-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbM-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgO-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbM-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbL-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgP-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbL-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbK-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgQ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbK-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbJ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgR-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbJ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgS-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgT-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbG-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgU-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbG-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgV-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbE-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgW-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbE-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgX-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgY-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgZ-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbA-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmhA-000000005vi-0000" -2017-07-30 18:51:05.712 10HmbA-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmhB-000000005vi-0000" -2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmaY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmhC-000000005vi-0000" -2017-07-30 18:51:05.712 10HmaY-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbX-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgF-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbX-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbY-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgG-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbY-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbZ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgH-000000005vi-0000" +2017-07-30 18:51:05.712 10HmbZ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcA-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgI-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcA-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcB-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgJ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcB-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcC-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgK-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcC-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcD-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgL-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcD-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcE-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgM-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcE-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcF-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgN-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcF-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcG-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgO-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcG-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcH-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgP-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcH-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcI-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgQ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcI-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcJ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgR-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcJ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcK-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgS-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcK-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcL-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgT-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcL-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcM-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgU-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcM-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcN-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgV-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcN-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcO-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgW-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcO-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcP-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgX-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcP-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcQ-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgY-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcQ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcR-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmgZ-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcR-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcS-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmhA-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcS-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcT-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmhB-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcT-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmcU-000000005vi-0000 => bob@anotherone.tld F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK id=10HmhC-000000005vi-0000" +2017-07-30 18:51:05.712 10HmcU-000000005vi-0000 Completed 2017-07-30 18:51:05.712 End queue run: pid=p1234 -qq ******** SERVER ******** 2017-07-30 18:51:05.712 exim x.yz daemon started: pid=p1235, no queue runs, listening for SMTP on port PORT_D 2017-07-30 18:51:05.712 10HmeA-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaX-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdZ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdY-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeD-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdX-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeE-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdW-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeF-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdV-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdU-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeH-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdT-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeI-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdS-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeJ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdR-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeK-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdQ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeL-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdP-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeM-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdO-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeN-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdN-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeO-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdM-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeP-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdL-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcV-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcW-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeD-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcX-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeE-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcY-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeF-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcZ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdA-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeH-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdB-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeI-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdC-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeJ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdD-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeK-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdE-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeL-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdF-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeM-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdG-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeN-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdH-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeO-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdI-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeP-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdJ-000000005vi-0000@the.local.host.name 2017-07-30 18:51:05.712 10HmeQ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdK-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeR-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdJ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeS-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdI-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeT-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdH-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeU-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdG-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeV-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdF-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeW-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdE-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeX-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdD-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeY-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdC-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmeZ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdB-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfA-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdA-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcZ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcY-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfD-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcX-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfE-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcW-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfF-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcV-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcU-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfH-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcT-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfI-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcS-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfJ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcR-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfK-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcQ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfL-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcP-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfM-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcO-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfN-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcN-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfO-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcM-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfP-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcL-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfQ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcK-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfR-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcJ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfS-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcI-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfT-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcH-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfU-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcG-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfV-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcF-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfW-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcE-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfX-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcD-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfY-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcC-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmfZ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcB-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgA-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcA-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbZ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbY-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgD-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbX-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeR-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdL-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeS-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdM-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeT-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdN-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeU-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdO-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeV-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdP-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeW-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdQ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeX-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdR-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeY-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdS-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmeZ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdT-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfA-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdU-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdV-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdW-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfD-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdX-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfE-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdY-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfF-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmdZ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaY-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfH-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaZ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfI-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbA-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfJ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbB-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfK-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbC-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfL-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbD-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfM-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbE-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfN-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbF-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfO-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbG-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfP-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbH-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfQ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbI-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfR-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbJ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfS-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbK-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfT-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbL-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfU-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbM-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfV-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbN-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfW-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbO-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfX-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbP-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfY-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbQ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmfZ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbR-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgA-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbS-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbT-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbU-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgD-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbV-000000005vi-0000@the.local.host.name 2017-07-30 18:51:05.712 10HmgE-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbW-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgF-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbV-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbU-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgH-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbT-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgI-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbS-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgJ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbR-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgK-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbQ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgL-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbP-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgM-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbO-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgN-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbN-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgO-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbM-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgP-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbL-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgQ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbK-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgR-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbJ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgS-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbI-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgT-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbH-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgU-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbG-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgV-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbF-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgW-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbE-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgX-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbD-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgY-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbC-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmgZ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbB-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmhA-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbA-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmhB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaZ-000000005vi-0000@the.local.host.name -2017-07-30 18:51:05.712 10HmhC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaY-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgF-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbX-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgG-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbY-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgH-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbZ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgI-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcA-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgJ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcB-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgK-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcC-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgL-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcD-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgM-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcE-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgN-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcF-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgO-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcG-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgP-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcH-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgQ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcI-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgR-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcJ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgS-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcK-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgT-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcL-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgU-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcM-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgV-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcN-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgW-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcO-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgX-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcP-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgY-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcQ-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmgZ-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcR-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmhA-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcS-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmhB-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcT-000000005vi-0000@the.local.host.name +2017-07-30 18:51:05.712 10HmhC-000000005vi-0000 <= ralph@dustyshoes.tld H=the.local.host.name [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmcU-000000005vi-0000@the.local.host.name 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/0637 b/test/log/0637 new file mode 100644 index 000000000..5971628d3 --- /dev/null +++ b/test/log/0637 @@ -0,0 +1,8 @@ + +******** 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 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 SMTP call from [127.0.0.1] dropped: too many syntax or protocol errors (last command was "mail from:", C=MAIL,MAIL,MAIL,MAIL) diff --git a/test/log/1157 b/test/log/1157 index d9b8c02e2..83e829684 100644 --- a/test/log/1157 +++ b/test/log/1157 @@ -4,10 +4,10 @@ 1999-03-02 09:44:33 Start queue run: pid=p1234 -qqf 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => 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" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userz@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=no C="250 OK id=10HmbB-000000005vi-0000" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaY-000000005vi-0000 => usery@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=no C="250 OK id=10HmbC-000000005vi-0000" +1999-03-02 09:44:33 10HmaY-000000005vi-0000 => usery@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=no C="250 OK id=10HmbB-000000005vi-0000" 1999-03-02 09:44:33 10HmaY-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userz@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=no C="250 OK id=10HmbC-000000005vi-0000" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1234 -qqf 1999-03-02 09:44:33 10HmbD-000000005vi-0000 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for usera@test.ex 1999-03-02 09:44:33 10HmbE-000000005vi-0000 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for userb@test.ex @@ -15,10 +15,10 @@ 1999-03-02 09:44:33 Start queue run: pid=p1235 -qqf 1999-03-02 09:44:33 10HmbD-000000005vi-0000 => 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" 1999-03-02 09:44:33 10HmbD-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbF-000000005vi-0000 => userc@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=no C="250 OK id=10HmbH-000000005vi-0000" -1999-03-02 09:44:33 10HmbF-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbE-000000005vi-0000 => userb@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=no C="250 OK id=10HmbI-000000005vi-0000" +1999-03-02 09:44:33 10HmbE-000000005vi-0000 => userb@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=no C="250 OK id=10HmbH-000000005vi-0000" 1999-03-02 09:44:33 10HmbE-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmbF-000000005vi-0000 => userc@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=no C="250 OK id=10HmbI-000000005vi-0000" +1999-03-02 09:44:33 10HmbF-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1235 -qqf 1999-03-02 09:44:33 10HmbJ-000000005vi-0000 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for user_p@test.ex 1999-03-02 09:44:33 10HmbK-000000005vi-0000 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for user_q@test.ex @@ -26,44 +26,44 @@ 1999-03-02 09:44:33 Start queue run: pid=p1236 -qqf 1999-03-02 09:44:33 10HmbJ-000000005vi-0000 => user_p@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=10HmbM-000000005vi-0000" 1999-03-02 09:44:33 10HmbJ-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbL-000000005vi-0000 => user_r@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=10HmbN-000000005vi-0000" -1999-03-02 09:44:33 10HmbL-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbK-000000005vi-0000 => user_q@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=10HmbO-000000005vi-0000" +1999-03-02 09:44:33 10HmbK-000000005vi-0000 => user_q@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=10HmbN-000000005vi-0000" 1999-03-02 09:44:33 10HmbK-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmbL-000000005vi-0000 => user_r@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=10HmbO-000000005vi-0000" +1999-03-02 09:44:33 10HmbL-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1236 -qqf ******** SERVER ******** 1999-03-02 09:44:33 exim x.yz daemon started: pid=p1237, no queue runs, listening for SMTP on port PORT_D 1999-03-02 09:44:33 SMTP connection from [127.0.0.1]:1111 (TCP/IP connection count = 1) 1999-03-02 09:44:33 10HmbA-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaX-000000005vi-0000@myhost.test.ex for userx@test.ex -1999-03-02 09:44:33 10HmbB-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaZ-000000005vi-0000@myhost.test.ex for userz@test.ex -1999-03-02 09:44:33 10HmbC-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaY-000000005vi-0000@myhost.test.ex for usery@test.ex +1999-03-02 09:44:33 10HmbB-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaY-000000005vi-0000@myhost.test.ex for usery@test.ex +1999-03-02 09:44:33 10HmbC-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaZ-000000005vi-0000@myhost.test.ex for userz@test.ex 1999-03-02 09:44:33 SMTP connection from localhost (myhost.test.ex) [127.0.0.1]:1111 D=qqs closed by QUIT 1999-03-02 09:44:33 Start queue run: pid=p1238 -qf 1999-03-02 09:44:33 10HmbA-000000005vi-0000 => userx R=server T=local_delivery 1999-03-02 09:44:33 10HmbA-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbB-000000005vi-0000 => userz R=server T=local_delivery +1999-03-02 09:44:33 10HmbB-000000005vi-0000 => usery R=server T=local_delivery 1999-03-02 09:44:33 10HmbB-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbC-000000005vi-0000 => usery R=server T=local_delivery +1999-03-02 09:44:33 10HmbC-000000005vi-0000 => userz R=server T=local_delivery 1999-03-02 09:44:33 10HmbC-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1238 -qf 1999-03-02 09:44:33 exim x.yz daemon started: pid=p1239, no queue runs, listening for SMTP on port PORT_D 1999-03-02 09:44:33 SMTP connection from [127.0.0.1]:1112 (TCP/IP connection count = 1) 1999-03-02 09:44:33 10HmbG-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbD-000000005vi-0000@myhost.test.ex for usera@test.ex -1999-03-02 09:44:33 10HmbH-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbF-000000005vi-0000@myhost.test.ex for userc@test.ex -1999-03-02 09:44:33 10HmbI-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbE-000000005vi-0000@myhost.test.ex for userb@test.ex +1999-03-02 09:44:33 10HmbH-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbE-000000005vi-0000@myhost.test.ex for userb@test.ex +1999-03-02 09:44:33 10HmbI-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbF-000000005vi-0000@myhost.test.ex for userc@test.ex 1999-03-02 09:44:33 SMTP connection from localhost (myhost.test.ex) [127.0.0.1]:1112 D=qqs closed by QUIT 1999-03-02 09:44:33 Start queue run: pid=p1240 -qf 1999-03-02 09:44:33 10HmbG-000000005vi-0000 => usera R=server T=local_delivery 1999-03-02 09:44:33 10HmbG-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbH-000000005vi-0000 => userc R=server T=local_delivery +1999-03-02 09:44:33 10HmbH-000000005vi-0000 => userb R=server T=local_delivery 1999-03-02 09:44:33 10HmbH-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbI-000000005vi-0000 => userb R=server T=local_delivery +1999-03-02 09:44:33 10HmbI-000000005vi-0000 => userc R=server T=local_delivery 1999-03-02 09:44:33 10HmbI-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1240 -qf 1999-03-02 09:44:33 exim x.yz daemon started: pid=p1241, no queue runs, listening for SMTP on port PORT_D 1999-03-02 09:44:33 SMTP connection from [127.0.0.1]:1113 (TCP/IP connection count = 1) 1999-03-02 09:44:33 10HmbM-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbJ-000000005vi-0000@myhost.test.ex for user_p@test.ex -1999-03-02 09:44:33 10HmbN-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbL-000000005vi-0000@myhost.test.ex for user_r@test.ex -1999-03-02 09:44:33 10HmbO-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbK-000000005vi-0000@myhost.test.ex for user_q@test.ex +1999-03-02 09:44:33 10HmbN-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbK-000000005vi-0000@myhost.test.ex for user_q@test.ex +1999-03-02 09:44:33 10HmbO-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbL-000000005vi-0000@myhost.test.ex for user_r@test.ex 1999-03-02 09:44:33 SMTP connection from localhost (myhost.test.ex) [127.0.0.1]:1113 D=qqs closed by QUIT diff --git a/test/log/1163 b/test/log/1163 index 31aec57c0..f1041ddf1 100644 --- a/test/log/1163 +++ b/test/log/1163 @@ -5,12 +5,12 @@ 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => userx0@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" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => userx1@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=10HmbB-000000005vi-0000" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userz0@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=no C="250 OK id=10HmbC-000000005vi-0000" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userz1@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=no C="250 OK id=10HmbD-000000005vi-0000" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaY-000000005vi-0000 => usery0@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=no C="250 OK id=10HmbE-000000005vi-0000" -1999-03-02 09:44:33 10HmaY-000000005vi-0000 => usery1@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=no C="250 OK id=10HmbF-000000005vi-0000" +1999-03-02 09:44:33 10HmaY-000000005vi-0000 => usery0@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=no C="250 OK id=10HmbC-000000005vi-0000" +1999-03-02 09:44:33 10HmaY-000000005vi-0000 => usery1@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=no C="250 OK id=10HmbD-000000005vi-0000" 1999-03-02 09:44:33 10HmaY-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userz0@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=no C="250 OK id=10HmbE-000000005vi-0000" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => userz1@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=no C="250 OK id=10HmbF-000000005vi-0000" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1234 -qqf ******** SERVER ******** @@ -19,23 +19,23 @@ 1999-03-02 09:44:33 10HmbA-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaX-000000005vi-0000@myhost.test.ex for userx0@test.ex 1999-03-02 09:44:33 SMTP connection from [127.0.0.1]:1112 (TCP/IP connection count = 2) 1999-03-02 09:44:33 10HmbB-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaX-000000005vi-0000@myhost.test.ex for userx1@test.ex -1999-03-02 09:44:33 10HmbC-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaZ-000000005vi-0000@myhost.test.ex for userz0@test.ex -1999-03-02 09:44:33 10HmbD-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaZ-000000005vi-0000@myhost.test.ex for userz1@test.ex +1999-03-02 09:44:33 10HmbC-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaY-000000005vi-0000@myhost.test.ex for usery0@test.ex +1999-03-02 09:44:33 10HmbD-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1111 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaY-000000005vi-0000@myhost.test.ex for usery1@test.ex 1999-03-02 09:44:33 SMTP connection from localhost (myhost.test.ex) [127.0.0.1]:1111 D=qqs closed by QUIT -1999-03-02 09:44:33 10HmbE-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaY-000000005vi-0000@myhost.test.ex for usery0@test.ex -1999-03-02 09:44:33 10HmbF-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaY-000000005vi-0000@myhost.test.ex for usery1@test.ex +1999-03-02 09:44:33 10HmbE-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaZ-000000005vi-0000@myhost.test.ex for userz0@test.ex +1999-03-02 09:44:33 10HmbF-000000005vi-0000 <= CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1112 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmaZ-000000005vi-0000@myhost.test.ex for userz1@test.ex 1999-03-02 09:44:33 SMTP connection from localhost (myhost.test.ex) [127.0.0.1]:1112 D=qqs closed by QUIT 1999-03-02 09:44:33 Start queue run: pid=p1236 -qf 1999-03-02 09:44:33 10HmbA-000000005vi-0000 => userx0 R=server T=local_delivery 1999-03-02 09:44:33 10HmbA-000000005vi-0000 Completed 1999-03-02 09:44:33 10HmbB-000000005vi-0000 => userx1 R=server T=local_delivery 1999-03-02 09:44:33 10HmbB-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbC-000000005vi-0000 => userz0 R=server T=local_delivery +1999-03-02 09:44:33 10HmbC-000000005vi-0000 => usery0 R=server T=local_delivery 1999-03-02 09:44:33 10HmbC-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbD-000000005vi-0000 => userz1 R=server T=local_delivery +1999-03-02 09:44:33 10HmbD-000000005vi-0000 => usery1 R=server T=local_delivery 1999-03-02 09:44:33 10HmbD-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbE-000000005vi-0000 => usery0 R=server T=local_delivery +1999-03-02 09:44:33 10HmbE-000000005vi-0000 => userz0 R=server T=local_delivery 1999-03-02 09:44:33 10HmbE-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmbF-000000005vi-0000 => usery1 R=server T=local_delivery +1999-03-02 09:44:33 10HmbF-000000005vi-0000 => userz1 R=server T=local_delivery 1999-03-02 09:44:33 10HmbF-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1236 -qf diff --git a/test/log/4040 b/test/log/4040 new file mode 100644 index 000000000..4274a7a75 --- /dev/null +++ b/test/log/4040 @@ -0,0 +1,21 @@ + +******** SERVER ******** +1999-03-02 09:44:33 exim x.yz daemon started: pid=p1234, no queue runs, listening for SMTP on port PORT_D port PORT_D2 +1999-03-02 09:44:33 [127.0.0.1] WELLKNOWN acme-response +1999-03-02 09:44:33 [127.0.0.1] -> 'TESTSUITE/aux-fixed/4040/acme-response' +1999-03-02 09:44:33 [127.0.0.1] WELLKNOWN acme-response +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN acme-response +1999-03-02 09:44:33 [127.0.0.1] WELLKNOWN badfile +1999-03-02 09:44:33 [127.0.0.1] -> '' +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN badfile +1999-03-02 09:44:33 exim x.yz daemon started: pid=p1235, no queue runs, listening for SMTP on port PORT_D port PORT_D2 +1999-03-02 09:44:33 [127.0.0.1] WELLKNOWN acme-response +1999-03-02 09:44:33 [127.0.0.1] -> 'TESTSUITE/aux-fixed/4040/acme-response' +1999-03-02 09:44:33 [127.0.0.1] WELLKNOWN sub/acme-response +1999-03-02 09:44:33 [127.0.0.1] -> 'TESTSUITE/aux-fixed/4040/sub/acme-response' +1999-03-02 09:44:33 [127.0.0.1] WELLKNOWN sub/badfile +1999-03-02 09:44:33 [127.0.0.1] -> '' +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN sub/badfile +1999-03-02 09:44:33 [127.0.0.1] WELLKNOWN ../badfile +1999-03-02 09:44:33 [127.0.0.1] -> '' +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN ../badfile diff --git a/test/log/4714 b/test/log/4714 index 0ffb6b206..d2c425113 100644 --- a/test/log/4714 +++ b/test/log/4714 @@ -5,10 +5,10 @@ 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => r1_1.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1] C="250 message 1 received" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 => r1_2.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 2 received" 1999-03-02 09:44:33 10HmaX-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => r3_1.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 3 received" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => r3_2.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 4 received" -1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed -1999-03-02 09:44:33 10HmaY-000000005vi-0000 => r2_1.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 5 received" -1999-03-02 09:44:33 10HmaY-000000005vi-0000 => r2_2.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1] C="250 message 6 received" +1999-03-02 09:44:33 10HmaY-000000005vi-0000 => r2_1.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 3 received" +1999-03-02 09:44:33 10HmaY-000000005vi-0000 => r2_2.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 4 received" 1999-03-02 09:44:33 10HmaY-000000005vi-0000 Completed +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => r3_1.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 5 received" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => r3_2.test.ex@the.local.host.name R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1] C="250 message 6 received" +1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed 1999-03-02 09:44:33 End queue run: pid=p1234 -qq 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/mail/1157.userb b/test/mail/1157.userb index d84b01013..8f752e5b3 100644 --- a/test/mail/1157.userb +++ b/test/mail/1157.userb @@ -3,7 +3,7 @@ Received: from localhost ([127.0.0.1]:1112 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbI-000000005vi-0000 + id 10HmbH-000000005vi-0000 for userb@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/mail/1157.userc b/test/mail/1157.userc index ebc497b89..d623886f9 100644 --- a/test/mail/1157.userc +++ b/test/mail/1157.userc @@ -3,7 +3,7 @@ Received: from localhost ([127.0.0.1]:1112 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbH-000000005vi-0000 + id 10HmbI-000000005vi-0000 for userc@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/mail/1157.usery b/test/mail/1157.usery index b31c56188..723dfce1d 100644 --- a/test/mail/1157.usery +++ b/test/mail/1157.usery @@ -3,7 +3,7 @@ Received: from localhost ([127.0.0.1]:1111 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbC-000000005vi-0000 + id 10HmbB-000000005vi-0000 for usery@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/mail/1157.userz b/test/mail/1157.userz index 1e1f6e51e..90b41a78b 100644 --- a/test/mail/1157.userz +++ b/test/mail/1157.userz @@ -3,7 +3,7 @@ Received: from localhost ([127.0.0.1]:1111 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbB-000000005vi-0000 + id 10HmbC-000000005vi-0000 for userz@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/mail/1163.usery0 b/test/mail/1163.usery0 index 6d02deae0..3eb804f0e 100644 --- a/test/mail/1163.usery0 +++ b/test/mail/1163.usery0 @@ -1,9 +1,9 @@ From CALLER@myhost.test.ex Tue Mar 02 09:44:33 1999 -Received: from localhost ([127.0.0.1]:1112 helo=myhost.test.ex) +Received: from localhost ([127.0.0.1]:1111 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbE-000000005vi-0000 + id 10HmbC-000000005vi-0000 for usery0@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/mail/1163.usery1 b/test/mail/1163.usery1 index 9332d1a03..e51b5bb0e 100644 --- a/test/mail/1163.usery1 +++ b/test/mail/1163.usery1 @@ -1,9 +1,9 @@ From CALLER@myhost.test.ex Tue Mar 02 09:44:33 1999 -Received: from localhost ([127.0.0.1]:1112 helo=myhost.test.ex) +Received: from localhost ([127.0.0.1]:1111 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbF-000000005vi-0000 + id 10HmbD-000000005vi-0000 for usery1@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/mail/1163.userz0 b/test/mail/1163.userz0 index b5e1d22b0..c6f9774fa 100644 --- a/test/mail/1163.userz0 +++ b/test/mail/1163.userz0 @@ -1,9 +1,9 @@ From CALLER@myhost.test.ex Tue Mar 02 09:44:33 1999 -Received: from localhost ([127.0.0.1]:1111 helo=myhost.test.ex) +Received: from localhost ([127.0.0.1]:1112 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbC-000000005vi-0000 + id 10HmbE-000000005vi-0000 for userz0@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/mail/1163.userz1 b/test/mail/1163.userz1 index 98f8def24..13aced9ac 100644 --- a/test/mail/1163.userz1 +++ b/test/mail/1163.userz1 @@ -1,9 +1,9 @@ From CALLER@myhost.test.ex Tue Mar 02 09:44:33 1999 -Received: from localhost ([127.0.0.1]:1111 helo=myhost.test.ex) +Received: from localhost ([127.0.0.1]:1112 helo=myhost.test.ex) by myhost.test.ex with esmtps (TLS1.x:ke-RSA-AES256-SHAnnn:xxx) (Exim x.yz) (envelope-from ) - id 10HmbD-000000005vi-0000 + id 10HmbF-000000005vi-0000 for userz1@test.ex; Tue, 2 Mar 1999 09:44:33 +0000 Received: from CALLER by myhost.test.ex with local (Exim x.yz) diff --git a/test/msglog/1157.10HmbN-000000005vi-0000 b/test/msglog/1157.10HmbN-000000005vi-0000 index 70e01c739..758332ea3 100644 --- a/test/msglog/1157.10HmbN-000000005vi-0000 +++ b/test/msglog/1157.10HmbN-000000005vi-0000 @@ -1 +1 @@ -1999-03-02 09:44:33 Received from CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbL-000000005vi-0000@myhost.test.ex +1999-03-02 09:44:33 Received from CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbK-000000005vi-0000@myhost.test.ex diff --git a/test/msglog/1157.10HmbO-000000005vi-0000 b/test/msglog/1157.10HmbO-000000005vi-0000 index 758332ea3..70e01c739 100644 --- a/test/msglog/1157.10HmbO-000000005vi-0000 +++ b/test/msglog/1157.10HmbO-000000005vi-0000 @@ -1 +1 @@ -1999-03-02 09:44:33 Received from CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbK-000000005vi-0000@myhost.test.ex +1999-03-02 09:44:33 Received from CALLER@myhost.test.ex H=localhost (myhost.test.ex) [127.0.0.1]:1113 P=esmtps X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no S=sss id=E10HmbL-000000005vi-0000@myhost.test.ex 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/0637 b/test/rejectlog/0637 new file mode 100644 index 000000000..9f539cd1d --- /dev/null +++ b/test/rejectlog/0637 @@ -0,0 +1,7 @@ + +******** SERVER ******** +1999-03-02 09:44:33 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 rejected MAIL from [127.0.0.1]: no HELO/EHLO given +1999-03-02 09:44:33 SMTP call from [127.0.0.1] dropped: too many syntax or protocol errors (last command was "mail from:", C=MAIL,MAIL,MAIL,MAIL) diff --git a/test/rejectlog/4040 b/test/rejectlog/4040 new file mode 100644 index 000000000..9d4ca3aa6 --- /dev/null +++ b/test/rejectlog/4040 @@ -0,0 +1,6 @@ + +******** SERVER ******** +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN acme-response +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN badfile +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN sub/badfile +1999-03-02 09:44:33 H=(test) [127.0.0.1] rejected WELLKNOWN ../badfile 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 e8f1933f2..d205f9509 100755 --- a/test/runtest +++ b/test/runtest @@ -2,6 +2,9 @@ # We use env, because in some environments of our build farm # the Perl 5.010 interpreter is only reachable via $PATH +# Copyright (c) The Exim Maintainers 2024 +# SPDX-License-Identifier: GPL-2.0-or-later + ############################################################################### # This is the controlling script for the "new" test suite for Exim. It should # # be possible to export this suite for running on a wide variety of hosts, in # @@ -115,6 +118,14 @@ my ($parm_configure_owner, $parm_configure_group); my ($parm_ipv4, $parm_ipv6, $parm_ipv6_stripped); my $parm_hostname; +# Convenience for regex' +# for tighter, see https://metacpan.org/dist/IO-Socket-IP/source/lib/IO/Socket/IP.pm#L37 +my $re_ipv4 = qr/\d{1,3}(?:\.\d{1,3}){3}/; +my $re_6g = qr/[[:xdigit:]]{1,4}/; +my $re_6s = qr/${re_6g}:/; +my $re_ipv6 = qr/${re_6s}{0,7}${re_6g}(?:::${re_6s}{0,5}${re_6g})?/; +my $re_ip = qr/(?:${re_ipv4}|${re_ipv6})/; + ############################################################################### ############################################################################### @@ -464,7 +475,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/; @@ -713,7 +724,7 @@ RESET_AFTER_EXTRA_LINE_READ: s/TLS error on connection \(gnutls_handshake\): Error in the pull function\./a TLS session is required but an attempt to start TLS failed/g; # (replace old with new, hoping that old only happens in one situation) - s/TLS error on connection to \d{1,3}(.\d{1,3}){3} \[\d{1,3}(.\d{1,3}){3}\] \(gnutls_handshake\): A TLS packet with unexpected length was received./a TLS session is required for ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4], but an attempt to start TLS failed/g; + s/TLS error on connection to ${re_ipv4} \[${re_ipv4}\] \(gnutls_handshake\): A TLS packet with unexpected length was received./a TLS session is required for ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4], but an attempt to start TLS failed/g; s/TLS error on connection from \[127.0.0.1\] \(recv\): A TLS packet with unexpected length was received./TLS error on connection from [127.0.0.1] (recv): The TLS connection was non-properly terminated./g; # signature algorithm names @@ -823,12 +834,12 @@ RESET_AFTER_EXTRA_LINE_READ: s/\(port=(\d+)/"(port=" . new_value($1, "%s", \$next_port)/e; # This handles "connection from" and the like, when the port is given - if (!/listening for SMTP on/ && !/Connecting to/ && !/=>/ && !/->/ - && !/\*>/&& !/==/ && !/\*\*/ && !/Connection refused/ && !/in response to/ - && !/T(?:ransport)?:/) - { - s/\[([a-z\d:]+|\d+(?:\.\d+){3})\]:(\d+)/"[".$1."]:".new_value($2,"%s",\$next_port)/ie; - } + s/(\[${re_ip}\]:)(\d+)/$1.new_value($2,"%s",\$next_port)/ie + unless ( /listening for SMTP on/ || /Connecting to/ + || /[=*-]>/ || /==/ || /\*\*/ + || /Connection refused/ || /in response to/ + || /T(?:ransport)?:/ + ); # Port in host address in spool file output from -Mvh s/^(--?host_address) (.*[:.])\d+$/$1 ${2}9999/; @@ -911,7 +922,7 @@ RESET_AFTER_EXTRA_LINE_READ: s/([\s,])S=\d+\b/$1S=sss/; s/:S\d+\b/:Ssss/; - s/^(\s*\d+[mhd]\s+)\d+(\s+(?:[a-z0-9-]{23}|[a-z0-9-]{18}) <)/TTT sss$2/i if $is_stdout; + s/^(\s*\d+[mhd]\s+)\d+(\s+(?:[[:alnum:]-]{23}|[[:alnum:]-]{16}) <)/TTT sss$2/i if $is_stdout; s/\sSIZE=\d+\b/ SIZE=ssss/; s/\ssize=\d+\b/ size=sss/ if $is_stderr; s/old size = \d+\b/old size = sssss/; @@ -1044,6 +1055,9 @@ RESET_AFTER_EXTRA_LINE_READ: # remote IPv6 addrs vary s/^(Connection request from) \[.*:.*:.*\]$/$1 \[ipv6\]/; + # Hints DB use of lockfiles is provider-dependent + s/Failed to open \K(?:DBM|database lock) file (.*\/spool\/db\/[^.]*)(?:.lockfile)?(?=(?: for reading)?: No such file or directory$)/hintsdb $1/; + # openssl version variances # Error lines on stdout from SSL contain process id values and file names. # They also contain a source file name and line number, which may vary from @@ -1061,6 +1075,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/; @@ -1085,7 +1102,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 =/; @@ -1121,9 +1138,9 @@ RESET_AFTER_EXTRA_LINE_READ: # because they will be different in different binaries. next if /^$time_pid? - (?: Berkeley\ DB:\s - | Probably\ (?:Berkeley\ DB|ndbm|GDBM) - | Using\ tdb + (?: .*\sBerkeley\ DB + | \sProbably\ (?:Berkeley\ DB|ndbm|GDBM) + | \sUsing\ (?:tdb|sqlite3) | Authenticators: | Lookups(?:\(built-in\))?: | Support\ for: @@ -1138,6 +1155,10 @@ RESET_AFTER_EXTRA_LINE_READ: ) /x; + # Hints DB use of lockfiles is provider-dependent + next if /lock(?:ing|ed) .*\/spool\/db\/[^.]+\.lockfile$/; + s/closed hints database\K and lockfile$//; + # Lines with a leading pid. Only handle >= 4-digit PIDs to avoid converting SMTP respose codes s/^\s*(\d{4,})\s(?!(?:previous message|in\s|bytes remain in|SMTP accept process running))/new_value($1, "p%s", \$next_pid) . ' '/e; @@ -1227,7 +1248,7 @@ RESET_AFTER_EXTRA_LINE_READ: next if /^TLS: not preloading server certs$/; # some platforms are missing the standard CA bundle file - next if /^tls_set_watch\(\) fail on '\/usr\/lib\/ssl\/cert.pem': No such file or directory$/; + next if /^tls_set_watch\(\) fail on '\/usr\/(?:lib\/ssl|local\/openssl3\/etc\/pki\/tls)\/cert.pem': No such file or directory$/; # drop lookups next if /^$time_pid?(?: Lookups\ \(built-in\): @@ -1277,8 +1298,9 @@ RESET_AFTER_EXTRA_LINE_READ: if (/looked up these IP addresses/); next if /name=localhost address=::1/; - # drop pdkim debugging header + # DKIM: Not all builds include next if /^DKIM( <<<<<<<<<<<<<<<<<<<<<<<<<<<<<+|: no signatures)$/; + next if /try option acl_smtp_dkim$/; # Some platforms have TIOCOUT, some do not next if /\d+ bytes remain in socket output buffer$/; @@ -1287,10 +1309,19 @@ RESET_AFTER_EXTRA_LINE_READ: next if /using host_fake_gethostbyname for \S+ \(IPv6\)/; next if /get\[host\|ipnode\]byname\[2\]\(af=inet6\)/; next if /DNS lookup of \S+ \(AAAA\) using fakens/; - next if / in dns_ipv4_lookup?/; next if / writing neg-cache entry for .*AAAA/; - next if /^faking res_search\(AAAA\) response length as 65535/; + next if /^ *faking res_search\(AAAA\) response length as 65535/; + if (/ in dns_ipv4_lookup\?$/) + { + $_= ; + if (/ list element: \*$/) + { + $_= ; + next if / in dns_ipv4_lookup\? yes \(matched "\*"\)/; + } + goto RESET_AFTER_EXTRA_LINE_READ; + } if (/DNS lookup of \S+ \(AAAA\) gave NO_DATA/) { $_= ; # Gets "returning DNS_NODATA" @@ -1372,7 +1403,7 @@ RESET_AFTER_EXTRA_LINE_READ: s/unexpected disconnection while reading SMTP command from \[127.0.0.1\] \K\(error: Connection reset by peer\) //; # Platform-dependent resolver option bits - s/^ (?:writing|update) neg-cache entry for [^,]+-\K[0-9a-f]+, ttl/xxxx, ttl/; + s/(?:writing|update) neg-cache entry for [^,]+-\K[0-9a-f]+, ttl/xxxx, ttl/; # timing variance, run-to-run s/^time on queue = \K1s/0s/; @@ -1404,11 +1435,14 @@ RESET_AFTER_EXTRA_LINE_READ: s%(?> Body data for hash, canonicalized/; # Not all platforms build with SPF enabled - next if /^(spf_conn_init|SPF_dns_exim_new|spf_compile\.c)/; + next if /(^spf_conn_init|^SPF_dns_exim_new|spf_compile\.c)/; next if /try option spf_smtp_comment_template$/; # Not all platforms have sendfile support @@ -1483,37 +1520,36 @@ RESET_AFTER_EXTRA_LINE_READ: next if /^DKIM \[[^[]+\] (Header hash|b) computed:/; # Not all platforms support TCP Fast Open, and the compile omits the check - if (s/\S+ in hosts_try_fastopen\? (no \(option unset\)|no \(end of list\)|yes \(matched "\*"\))\n$//) - { - chomp; - $_ .= ; - s/ \.\.\. >>> / ... /; + next if /\S+ in hosts_try_fastopen\? (no \(option unset\)|no \(end of list\)|yes \(matched "\*"\))\n$/ ; + +# if (s/\S+ in hosts_try_fastopen\? (no \(option unset\)|no \(end of list\)|yes \(matched "\*"\))\n$//) +# { +# chomp; +# $_ .= ; +# s/ \.\.\. >>> / ... /; if (s/ non-TFO mode connection attempt to 224.0.0.0, 0 data\b$//) { chomp; $_ .= ; } s/Address family not supported by protocol family/Network Error/; s/Network(?: is)? unreachable/Network Error/; - } +# } next if /^(ppppp |\d+ )?setsockopt FASTOPEN: Protocol not available$/; - s/^(Connecting to .* \.\.\. sending) \d+ (nonTFO early-data)$/$1 dd $2/; + s/^(sending) \d+ (nonTFO early-data)$/$1 dd $2/; - if (/^([0-9: ]* # possible timestamp - Connecting\ to\ [^ ]+\ [^ ]+(\ from\ [^ ]+)?)\ \.\.\. + if (/^[0-9: ]* # possible timestamp \ .*TFO\ mode\x20 (sendto,\ no\ data:\ EINPROGRESS # Linux |connection\ attempt\ to\ [^,]+,\ 0\ data) # MacOS & no-support $/x) { - $_ = $1 . " ... " . ; - s/^(.* \.\.\.) [0-9: ]*connected$/$1 connected/; - - if (/^Connecting to .* \.\.\. connected$/) + $_ = ; + if (/^connected$/) { $_ .= ; - if (/^(Connecting to .* \.\.\. )connected\n\s+SMTP(\(close\)>>|\(Connection refused\)<<)$/) + if (/^connected\n\s+SMTP(\(close\)>>|\(Connection refused\)<<)$/) { - $_ = $1 . "failed: Connection refused\n" . ; - s/^(Connecting .*)\n\s+SMTP\(close\)>>$/$1/; + $_ = "failed: Connection refused\n" . ; + s/^\n\s+SMTP\(close\)>>$/$1/; } - elsif (/^(Connecting to .* \.\.\. connected\n)read response data: size=/) + elsif (/^(connected\n)read response data: size=/) { $_ = $1; } # Date/time in SMTP banner @@ -1656,6 +1692,9 @@ RESET_AFTER_EXTRA_LINE_READ: s/TLS error on connection from .*\K(SSL_accept: TCP connection closed by peer|\(gnutls_handshake\): The TLS connection was non-properly terminated.)/(tls lib accept fn): TCP connection closed by peer/; s/TLS session: \K\(gnutls_handshake\): rxd alert: No supported application protocol could be negotiated/(SSL_connect): error: <>/; s/\(gnutls_handshake\): No common application protocol could be negotiated./(SSL_accept): error: <>/; + + # Not all buildfarm animals have ipv6 + next if / $/ ; } # ======== mail ======== @@ -2080,7 +2119,7 @@ $munges = 'timeout_errno' => # actual errno differs Solaris vs. Linux { 'mainlog' => 's/((?:host|message) deferral .* errno) <\d+> /$1 /' }, - 'peer_terminated_conn' => # actual error differs FreedBSD vs. Linux + 'peer_terminated_conn' => # actual error differs FreedBS/Solaris vs. Linux { 'stderr' => 's/^( SMTP\()Connection reset by peer(\)<<)$/$1closed$2/' }, 'perl_variants' => # result of hash-in-scalar-context changed from bucket-fill to keycount @@ -3339,7 +3378,7 @@ if (defined $parm_lookups{redis}) sub check_running_dovecot { -system('dovecot --version >/dev/null'); +system('dovecot --version >/dev/null 2>&1'); if ($? == 0) { print "Dovecot appears to be available\n"; @@ -3640,7 +3679,7 @@ while () } elsif (/^Support for: (.*)/) - { + { # Compile-time features - exim -bV print; @temp = split /(\s+)/, $1; push(@temp, ' '); @@ -4207,7 +4246,7 @@ DIR: for (my $i = 0; $i < @test_dirs; $i++) if (!defined $parm_malware{$1}) { $wantthis = 0; last; } } elsif (/^(not )?feature (.*)$/) - { + { #a macro name, or lack thereof - -bP macros # move to a subroutine? my $eximinfo = "$parm_exim -C $parm_cwd/test-config -DDIR=$parm_cwd -bP macro $2"; diff --git a/test/scripts/0000-Basic/0038 b/test/scripts/0000-Basic/0038 index 4d87755a2..5f6fd60c3 100644 --- a/test/scripts/0000-Basic/0038 +++ b/test/scripts/0000-Basic/0038 @@ -7,7 +7,7 @@ data Here is some data. . quit -**** +**** exim -bh V4NET.9.8.7 ehlo test.ex mail from:<> @@ -16,7 +16,7 @@ data Here is some data. . quit -**** +**** exim -bh V4NET.9.8.7 -DRRATELIMIT=0/1h/per_conn/strict -DDRATELIMIT=0/1h/per_conn/strict ehlo test.ex mail from:<> 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/0217 b/test/scripts/0000-Basic/0217 index db793b065..dceb1d2a9 100644 --- a/test/scripts/0000-Basic/0217 +++ b/test/scripts/0000-Basic/0217 @@ -1,4 +1,5 @@ # PIPELINING (client: errors, etc) +munge peer_terminated_conn need_ipv4 # server PORT_S diff --git a/test/scripts/0000-Basic/0615 b/test/scripts/0000-Basic/0615 index 1712c888f..b6f2663d7 100644 --- a/test/scripts/0000-Basic/0615 +++ b/test/scripts/0000-Basic/0615 @@ -2,10 +2,14 @@ # Exim test configuration 0604 # echo Note this takes 3 minutes to run +# Build with -DMEASURE_TIMING if a performance test is wanted, +# to lose the deliberate testsuite-mode delays. +# Also, if a real 2-phase qrun is wanted, lose the queue_run_in_order # exim -DSERVER=server -bd -oX PORT_D **** # +# Queue up 80 messages exim -bs helo test mail from:ralph@dustyshoes.tld @@ -665,4 +669,3 @@ exim -qq # killdaemon no_msglog_check - diff --git a/test/scripts/0000-Basic/0637 b/test/scripts/0000-Basic/0637 new file mode 100644 index 000000000..7ed9b3cbe --- /dev/null +++ b/test/scripts/0000-Basic/0637 @@ -0,0 +1,18 @@ +# mail before ehlo +exim -bd -DSERVER=server -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +mail from: +??? 503 HELO or EHLO required +mail from: +??? 503 +mail from: +??? 503 +mail from: +??? 503- +??? 503 Too many +???* +**** +killdaemon +no_stderr_check diff --git a/test/scripts/2300-DBM/2301 b/test/scripts/2300-DBM/2301 deleted file mode 100644 index 9ba0c5079..000000000 --- a/test/scripts/2300-DBM/2301 +++ /dev/null @@ -1,5 +0,0 @@ -# lookup dbmjz -# -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 deleted file mode 100644 index 4bdbc869e..000000000 --- a/test/scripts/2300-DBM/2302 +++ /dev/null @@ -1,4 +0,0 @@ -# lookup dbmnz -# -exim -be '[${lookup{test}dbmnz{DIR/aux-fixed/TESTNUM.emptydbmnzlookup}}]' -**** diff --git a/test/scripts/2301-DBM-BDB/2301 b/test/scripts/2301-DBM-BDB/2301 new file mode 100644 index 000000000..82ec19da7 --- /dev/null +++ b/test/scripts/2301-DBM-BDB/2301 @@ -0,0 +1,7 @@ +# 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/2301-DBM-BDB/2302 b/test/scripts/2301-DBM-BDB/2302 new file mode 100644 index 000000000..4c8b7958b --- /dev/null +++ b/test/scripts/2301-DBM-BDB/2302 @@ -0,0 +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/2301-DBM-BDB/REQUIRES b/test/scripts/2301-DBM-BDB/REQUIRES new file mode 100644 index 000000000..b96ff3144 --- /dev/null +++ b/test/scripts/2301-DBM-BDB/REQUIRES @@ -0,0 +1,2 @@ +lookup dbm +feature _HAVE_HINTS_BDB diff --git a/test/scripts/2500-dsearch/2500 b/test/scripts/2500-dsearch/2500 index f3937ec91..ba524105d 100644 --- a/test/scripts/2500-dsearch/2500 +++ b/test/scripts/2500-dsearch/2500 @@ -18,6 +18,9 @@ ok,subdir: ${lookup{TESTNUM.dir} dsearch,filter=subdir {DIR/aux-fixed}{$value}{ fail,subdir(..):${lookup{..} dsearch,filter=subdir {DIR/aux-fixed}{$value}{FAIL}} fail,subdir(.) :${lookup{.} dsearch,filter=subdir {DIR/aux-fixed}{$value}{FAIL}} fail,subdir(f) :${lookup{TESTNUM.tst} dsearch,filter=subdir {DIR/aux-fixed}{$value}{FAIL}} +ok,subdir(..d) :${lookup{..subdir} dsearch,filter=subdir {DIR/aux-fixed/TESTNUM.dir}{$value}{FAIL}} +fail.path: ${lookup{TESTNUM.dir/regfile} dsearch {DIR/aux-fixed}{$value}{FAIL}} +ok.path: ${lookup{TESTNUM.dir/regfile} dsearch,key=path {DIR/aux-fixed}{$value}{FAIL}} cachelayer tests fail: ${lookup{test-data} dsearch {DIR/} {$value}{FAIL}} diff --git a/test/scripts/4040-wellknown/4040 b/test/scripts/4040-wellknown/4040 new file mode 100644 index 000000000..8ca40306f --- /dev/null +++ b/test/scripts/4040-wellknown/4040 @@ -0,0 +1,157 @@ +# ESMTP WELLNOWN server response +# +# when WELLKNOWN leaves EXPERIMENTAL, add standalone tests +# for ${xtextd:str} to 0002 +# +# +exim -DSERVER=server -bd -oX PORT_D:PORT_D2 +**** +# +client 127.0.0.1 PORT_D +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250-WELLKNOWN +??? 250 HELP +WELLKNOWN acme-response +??? 250-SIZE +??? 250- +??? 250- +??? 250 +QUIT +??? 221 +**** +# +# not advertised conditional on hosts_wellknown +client HOSTIPV4 PORT_D +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250 HELP +QUIT +??? 221 +**** +# +# deny by acl +client 127.0.0.1 PORT_D2 +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250-WELLKNOWN +??? 250 HELP +WELLKNOWN acme-response +??? 550 +QUIT +??? 221 +**** +# +# nonexistent file +client 127.0.0.1 PORT_D +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250-WELLKNOWN +??? 250 HELP +WELLKNOWN badfile +??? 550 +QUIT +??? 221 +**** +# +killdaemon +# +exim -DSERVER=server -DOPT=,key=path -bd -oX PORT_D:PORT_D2 +**** +# +# dsearch with key=path permission +# basic good file +client 127.0.0.1 PORT_D +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250-WELLKNOWN +??? 250 HELP +WELLKNOWN acme-response +??? 250-SIZE +??? 250- +??? 250- +??? 250 +QUIT +??? 221 +**** +# +# subdir/good file +client 127.0.0.1 PORT_D +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250-WELLKNOWN +??? 250 HELP +WELLKNOWN sub/acme-response +??? 250-SIZE +??? 250- +??? 250- +??? 250 +QUIT +??? 221 +**** +# +# nonexistent file +client 127.0.0.1 PORT_D +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250-WELLKNOWN +??? 250 HELP +WELLKNOWN sub/badfile +??? 550 +QUIT +??? 221 +**** +# +# dotdot trap +client 127.0.0.1 PORT_D +??? 220 +EHLO test +??? 250- +??? 250-SIZE +??? 250-LIMITS +??? 250-8BITMIME +??? 250-PIPELINING +??? 250-WELLKNOWN +??? 250 HELP +WELLKNOWN ../badfile +??? 550 +QUIT +??? 221 +**** +# +killdaemon diff --git a/test/scripts/4040-wellknown/REQUIRES b/test/scripts/4040-wellknown/REQUIRES new file mode 100644 index 000000000..457fc5f74 --- /dev/null +++ b/test/scripts/4040-wellknown/REQUIRES @@ -0,0 +1 @@ +support ESMTP_Wellknown diff --git a/test/scripts/5700-events/5700 b/test/scripts/5700-events/5700 index c6b6e76ff..bb62c1991 100644 --- a/test/scripts/5700-events/5700 +++ b/test/scripts/5700-events/5700 @@ -1,5 +1,4 @@ -# Arbitrary expansion after transport -# (EXPERIMENTAL_EVENT) +# Events # need_ipv4 munge timeout_errno 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..2b8eed427 100644 --- a/test/stderr/0002 +++ b/test/stderr/0002 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: environment after trimming: USER=CALLER configuration file is TESTSUITE/test-config @@ -126,6 +127,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}} @@ -159,6 +161,7 @@ LOG: MAIN PANIC ╰─────result: protected:░░ >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: USER=CALLER configuration file is TESTSUITE/test-config @@ -278,6 +281,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}} @@ -311,6 +315,7 @@ LOG: MAIN PANIC \_____result: protected: >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: USER=CALLER configuration file is TESTSUITE/test-config @@ -390,6 +395,7 @@ try option unknown_login >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> 1999-03-02 09:44:33 no host name found for IP address V4NET.11.12.13 Exim version x.yz .... +Hints DB: environment after trimming: USER=CALLER configuration file is TESTSUITE/test-config @@ -492,7 +498,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] @@ -512,6 +520,7 @@ sender_rcvhost = ten-1.test.ex ([V4NET.0.0.1] ident=me) ╰──(tainted) >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -542,12 +551,16 @@ 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) + 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 @@ -576,6 +589,7 @@ LOG: connection_reject MAIN REJECT search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1239 configuration file is TESTSUITE/test-config @@ -775,6 +789,7 @@ LOG: 10HmbD-000000005vi-0000 Subject is: " here we go: a string that is going to >>> end of ACL "check_data": DENY LOG: 10HmbD-000000005vi-0000 H=(test) [V4NET.0.0.0] F=<> rejected after DATA: reply_address=<> Exim version x.yz .... +Hints DB: changed uid/gid: -C, -D, -be or -bf forces real uid uid=CALLER_UID gid=CALLER_GID pid=p1240 configuration file is TESTSUITE/test-config 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..e838cb372 100644 --- a/test/stderr/0021 +++ b/test/stderr/0021 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -83,9 +84,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" @@ -157,6 +158,7 @@ LOG: smtp_connection MAIN >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> 1999-03-02 09:44:33 ACL "warn" with "message" setting found in a non-message (EHLO or HELO) ACL: cannot specify header lines here: message ignored Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -222,9 +224,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" @@ -282,13 +284,15 @@ end of ACL "rcpt": ACCEPT LOG: MAIN <= ok@test3 H=[10.9.8.8] U=CALLER P=smtp S=sss Exim version x.yz .... +Hints DB: 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) +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => x R=accept T=appendfile LOG: MAIN diff --git a/test/stderr/0022 b/test/stderr/0022 index ae03e7317..b803208c5 100644 --- a/test/stderr/0022 +++ b/test/stderr/0022 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -79,6 +80,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -162,6 +164,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -379,9 +382,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 +398,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..584120ca5 100644 --- a/test/stderr/0037 +++ b/test/stderr/0037 @@ -1,10 +1,12 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -15,7 +17,6 @@ ssss bytes read from TESTSUITE/aux-var/0037.F data is an Exim filter program Filter: start of processing Filter: end of processing -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: filter-userx@test.ex unique = filter-userx@test.ex @@ -25,14 +26,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 @@ -53,7 +57,6 @@ userfilter router generated userx@test.ex routed by userfilter router envelope to: filter-userx@test.ex transport: -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@test.ex unique = userx@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 @@ -101,7 +109,7 @@ After routing: Remote deliveries: Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1241 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => userx R=user_accept2 T=appendfile LOG: MAIN 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..0365875be 100644 --- a/test/stderr/0044 +++ b/test/stderr/0044 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -220,6 +221,7 @@ search_tidyup called >>> host in ignore_fromline_hosts? no (option unset) LOG: 10HmaY-000000005vi-0000 <= myfriend@there.test.ex H=(exim.test.ex) [V4NET.11.12.13] P=esmtp S=sss Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -319,9 +321,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..56cc9c81a 100644 --- a/test/stderr/0078 +++ b/test/stderr/0078 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -7,9 +8,12 @@ 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 +main lookup for domain set transport remote_smtp queued for remote_smtp transport: local_part = xx domain = mxt6.test.ex @@ -21,6 +25,7 @@ routed by lookuphost router host ten-1.test.ex [V4NET.0.0.1] MX=5 dnssec=no >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -29,14 +34,18 @@ 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 +main lookup for domain lowest numbered MX record points to local host: mxt1.test.ex: passed to next router (self = pass) 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 @@ -57,6 +66,7 @@ routed by self router host myhost.test.ex [V4NET.10.10.10] >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -65,14 +75,18 @@ 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 +main lookup for domain lowest numbered MX record points to local host: mxt1.test.ex: passed to next router (self = pass) 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 +101,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 @@ -107,6 +122,7 @@ routed by self2 router host myhost.test.ex [V4NET.10.10.10] >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -115,9 +131,12 @@ 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 +main lookup for domain lookuphost router declined for xx@not-exist.test.ex "more" is false: skipping remaining routers no more routers diff --git a/test/stderr/0084 b/test/stderr/0084 index d805f7a61..c1db2a3e6 100644 --- a/test/stderr/0084 +++ b/test/stderr/0084 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> diff --git a/test/stderr/0085 b/test/stderr/0085 index 5befd2cfd..6637329c8 100644 --- a/test/stderr/0085 +++ b/test/stderr/0085 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -19,22 +20,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 +52,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 +68,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 +84,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 +100,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 +126,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 +163,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 +179,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 +195,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 +233,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,19 +249,20 @@ 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 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -281,22 +283,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 +315,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 +331,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 +347,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 +360,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 +390,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 +427,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 +443,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 +456,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 +468,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 +484,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..04e219a0e 100644 --- a/test/stderr/0092 +++ b/test/stderr/0092 @@ -37,14 +37,18 @@ 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 LOG: SMTP data timeout (message abandoned) on connection from (test) [V4NET.0.0.1] F= D=qqs Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 environment after trimming: @@ -208,12 +212,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..bd3bb1425 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) @@ -90,6 +102,7 @@ LOG: H=(test) [V4NET.11.12.13] F= rejected RCPT >> end of ACL "check_recipient": DENY LOG: H=ten-1.test.ex (test) [V4NET.0.0.1] F= rejected RCPT : relay not permitted Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -109,19 +122,27 @@ 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) + 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) + 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/0117 b/test/stderr/0117 index b5cde0daf..60bbef8c5 100644 --- a/test/stderr/0117 +++ b/test/stderr/0117 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -8,6 +9,7 @@ local_part=xxx domain=mxt9.test.ex calling lookuphost router lookuphost router called for xxx@mxt9.test.ex domain = mxt9.test.ex +main lookup for domain queued for transport: local_part = xxx domain = mxt9.test.ex errors_to=NULL @@ -20,6 +22,7 @@ routed by lookuphost router host ten-3.test.ex [V4NET.0.0.3] MX=7 dnssec=no >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -29,6 +32,7 @@ local_part=xxx domain=mxt9a.test.ex calling lookuphost router lookuphost router called for xxx@mxt9a.test.ex domain = mxt9a.test.ex +main lookup for domain queued for transport: local_part = xxx domain = mxt9a.test.ex errors_to=NULL @@ -41,6 +45,7 @@ routed by lookuphost router host ten-3.test.ex [V4NET.0.0.3] MX=7 dnssec=no >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -50,6 +55,7 @@ local_part=xxx domain=mxt9b.test.ex calling lookuphost router lookuphost router called for xxx@mxt9b.test.ex domain = mxt9b.test.ex +main lookup for domain queued for transport: local_part = xxx domain = mxt9b.test.ex errors_to=NULL 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/0123 b/test/stderr/0123 index d9f4557f5..a25f0e5e0 100644 --- a/test/stderr/0123 +++ b/test/stderr/0123 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config 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..0a73ce275 100644 --- a/test/stderr/0143 +++ b/test/stderr/0143 @@ -1,14 +1,18 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: 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 +24,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 @@ -57,6 +62,7 @@ cmd buf flush ddd bytes (more expected) SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:DATA:354:.:250:QUIT+:250' Leaving my_smtp transport +>>>>>>>>>>>>>>>> Exim pid=p1236 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => userx@domain.com R=my_main_router T=my_smtp H=127.0.0.1 [127.0.0.1] C="250 OK" LOG: MAIN diff --git a/test/stderr/0145 b/test/stderr/0145 index 1bbb9fe95..176539a66 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..81bf94397 100644 --- a/test/stderr/0149 +++ b/test/stderr/0149 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -6,6 +7,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 +33,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 +128,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 +168,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..75986186e 100644 --- a/test/stderr/0161 +++ b/test/stderr/0161 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -7,14 +8,19 @@ 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 +main lookup for domain set transport remote_smtp queued for remote_smtp transport: local_part = xx domain = mxt6.test.ex @@ -26,6 +32,7 @@ routed by lookuphost router host ten-1.test.ex [V4NET.0.0.1] MX=5 dnssec=no >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -34,24 +41,32 @@ 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 +main lookup for domain lowest numbered MX record points to local host: mxt1.test.ex: passed to next router (self = pass) 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 @@ -72,6 +87,7 @@ routed by self router host myhost.test.ex [V4NET.10.10.10] >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -80,24 +96,32 @@ 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 +main lookup for domain lowest numbered MX record points to local host: mxt1.test.ex: passed to next router (self = pass) 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 +136,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 @@ -132,6 +157,7 @@ routed by self2 router host myhost.test.ex [V4NET.10.10.10] >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -140,19 +166,25 @@ 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 +main lookup for domain lookuphost router declined for xx@not-exist.test.ex "more" is false: skipping remaining routers no more routers >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -161,14 +193,18 @@ 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 domain = mxt1.test.ex +main lookup for domain lowest numbered MX record points to local host: mxt1.test.ex: address failed (self = fail) failuphost router forced address failure >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -177,19 +213,25 @@ 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 +main lookup for domain lowest numbered MX record points to local host: mxt1.test.ex: passed to next router (self = pass) 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..5d4eb6dc1 100644 --- a/test/stderr/0169 +++ b/test/stderr/0169 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -17,7 +19,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 @@ -31,6 +33,7 @@ writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 quota = 52428800 threshold = 21495808 old size = sssss message size = sss appendfile yields 0 with errno=dd more_errno=dd +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> appendfile transport returned OK for userx@myhost.test.ex added retry item for T:userx@myhost.test.ex: errno=dd more_errno=dd flags=1 LOG: MAIN diff --git a/test/stderr/0175 b/test/stderr/0175 index b45971a07..afaf05137 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..3501e48a7 100644 --- a/test/stderr/0183 +++ b/test/stderr/0183 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -16,37 +17,42 @@ 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 "*") -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 +main lookup for domain + 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 +64,37 @@ 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 "*") -DNS lookup of test.again.dns (MX): using cached value DNS_AGAIN +main lookup for domain + 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,42 +106,45 @@ 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 "*") -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 -ten-1.test.ex (MX resp) DNSSEC - list element: * -DNS lookup of ten-1.test.ex (A) using fakens -DNS lookup of ten-1.test.ex (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000 + ten-1.test.ex (MX resp) DNSSEC + DNS lookup of ten-1.test.ex (A) using fakens + DNS lookup of ten-1.test.ex (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx set transport smtp queued for smtp transport: local_part = abcd domain = ten-1.test.ex @@ -149,17 +163,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,10 +186,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 "*") - list element: * +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 (A) using fakens DNS lookup of test.again.dns (A) gave TRY_AGAIN test.again.dns in dns_again_means_nonexist? no (option unset) @@ -192,18 +208,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,10 +231,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 "*") - list element: * +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 (A): using cached value DNS_AGAIN useryz router: defer for userz@test.again.dns message: host lookup for test.again.dns did not complete (DNS timeout?) @@ -231,37 +249,40 @@ 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 "*") -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 -DNS lookup of ten-1.test.ex (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + DNS lookup of ten-1.test.ex (A) using fakens + DNS lookup of ten-1.test.ex (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx queued for smtp transport: local_part = xyz domain = ten-1.test.ex errors_to=NULL @@ -273,6 +294,7 @@ routed by lookuphost router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -290,36 +312,41 @@ 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 "*") -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 +main lookup for domain + 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 +358,37 @@ 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 "*") -DNS lookup of test.fail.dns (MX): using cached value DNS_FAIL +main lookup for domain + 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,42 +400,45 @@ 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 "*") -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 -ten-1.test.ex (MX resp) DNSSEC - list element: * -DNS lookup of ten-1.test.ex (A) using fakens -DNS lookup of ten-1.test.ex (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000 + ten-1.test.ex (MX resp) DNSSEC + DNS lookup of ten-1.test.ex (A) using fakens + DNS lookup of ten-1.test.ex (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx set transport smtp queued for smtp transport: local_part = abcd domain = ten-1.test.ex @@ -422,17 +457,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,10 +480,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 "*") - list element: * +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 (A) using fakens DNS lookup of test.fail.dns (A) gave NO_RECOVERY returning DNS_FAIL @@ -464,18 +501,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,10 +524,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 "*") - list element: * +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 (A): using cached value DNS_FAIL useryz router: defer for userz@test.fail.dns message: host lookup for test.fail.dns did not complete (DNS timeout?) @@ -503,37 +542,40 @@ 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 "*") -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 -DNS lookup of ten-1.test.ex (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + DNS lookup of ten-1.test.ex (A) using fakens + DNS lookup of ten-1.test.ex (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx queued for smtp transport: local_part = xyz domain = ten-1.test.ex errors_to=NULL @@ -545,6 +587,7 @@ routed by lookuphost router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -562,37 +605,41 @@ 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 "*") -DNS lookup of nonexist.test.ex (MX) using fakens -DNS lookup of nonexist.test.ex (MX) gave HOST_NOT_FOUND -returning DNS_NOMATCH -faking res_search(MX) response length as 65535 - writing neg-cache entry for nonexist.test.ex-MX-xxxx, ttl 3000 +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for nonexist.test.ex-MX-xxxx, ttl 3000 lookuphost router declined for userx@nonexist.test.ex "more" is false: skipping remaining routers no more routers @@ -605,32 +652,36 @@ 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 "*") -DNS lookup of nonexist.test.ex (MX): using cached value DNS_NOMATCH +main lookup for domain + 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 no more routers @@ -643,42 +694,45 @@ 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 "*") -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 -ten-1.test.ex (MX resp) DNSSEC - list element: * -DNS lookup of ten-1.test.ex (A) using fakens -DNS lookup of ten-1.test.ex (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000 + ten-1.test.ex (MX resp) DNSSEC + DNS lookup of ten-1.test.ex (A) using fakens + DNS lookup of ten-1.test.ex (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx set transport smtp queued for smtp transport: local_part = abcd domain = ten-1.test.ex @@ -697,17 +751,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,10 +774,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 "*") - list element: * +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 (A) using fakens DNS lookup of nonexist.test.ex (A) gave HOST_NOT_FOUND returning DNS_NOMATCH @@ -740,18 +796,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,10 +819,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 "*") - list element: * +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 (A): using cached value DNS_NOMATCH useryz router: defer for userz@nonexist.test.ex message: lookup of host "nonexist.test.ex" failed in useryz router @@ -779,37 +837,40 @@ 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 "*") -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 -DNS lookup of ten-1.test.ex (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + DNS lookup of ten-1.test.ex (A) using fakens + DNS lookup of ten-1.test.ex (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx queued for smtp transport: local_part = xyz domain = ten-1.test.ex errors_to=NULL @@ -821,6 +882,7 @@ routed by lookuphost router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -838,25 +900,29 @@ 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 "*") -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"? - list element: test.fail.dns -test.again.dns in "test.fail.dns"? no (end of list) +main lookup for domain + 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 srv_fail_domains? + list element: test.fail.dns + 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,42 +934,46 @@ 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 "*") -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"? - list element: test.fail.dns - test.fail.dns in "test.fail.dns"? 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"? - list element: test.fail.dns - test.fail.dns in "test.fail.dns"? 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 -DNS lookup of test.fail.dns (A) gave NO_RECOVERY -returning DNS_FAIL - writing neg-cache entry for test.fail.dns-A-xxxx, ttl -1 +main lookup for domain + 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 srv_fail_domains? + list element: 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 mx_fail_domains? + list element: 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) + DNS lookup of test.fail.dns (A) using fakens + DNS lookup of test.fail.dns (A) gave NO_RECOVERY + returning DNS_FAIL + writing neg-cache entry for test.fail.dns-A-xxxx, ttl -1 srv router: defer for srv@test.fail.dns message: host lookup did not complete search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -921,37 +991,41 @@ 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 "*") -DNS lookup of nonexist.example.com (MX) using fakens -DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND -returning DNS_NOMATCH -faking res_search(MX) response length as 65535 - writing neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2 +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2 lookuphost router declined for userx@nonexist.example.com "more" is false: skipping remaining routers no more routers @@ -964,25 +1038,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,15 +1071,19 @@ 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 "*") -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 -returning DNS_NOMATCH -faking res_search(MX) response length as 65535 - update neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2 +main lookup for domain + 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 + returning DNS_NOMATCH + faking res_search(MX) response length as 65535 + update neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2 delay router declined for userd@nonexist.example.com "more" is false: skipping remaining routers no more routers 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..f725b6d3a 100644 --- a/test/stderr/0218 +++ b/test/stderr/0218 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -8,19 +9,28 @@ 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 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (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 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1240 (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 @@ -36,17 +46,21 @@ Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected SMTP<< 250 OK SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:351:.:250' +>>>>>>>>>>>>>>>> Exim pid=p1241 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => a@test.ex F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1] L C="250 OK" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1242 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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: @@ -63,15 +77,17 @@ T: send_to_server (ACL) SMTP<< 250 OK SMTP(close)>> cmdlog: 'MAIL|:RCPT|:DATA:250:250:351:.:QUIT+:250:250' +>>>>>>>>>>>>>>>> Exim pid=p1244 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => b@test.ex F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* L C="250 OK" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1240 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1243 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 -qq >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -81,19 +97,28 @@ 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 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1245 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1246 (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 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1247 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1248 (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 @@ -109,40 +134,50 @@ Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected SMTP<< 250 OK SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:550:503:503:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1249 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN ** a@test.ex F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined MAIL FROM:: 550 NO Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: MAIN <= <> R=10HmaZ-000000005vi-0000 U=EXIMUSER P=local S=sss ->>>>>>>>>>>>>>>> Exim pid=p1243 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1250 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1244 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1251 (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 +>>>>>>>>>>>>>>>> Exim pid=p1252 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == b@test.ex R=client T=send_to_server defer (dd): Connection refused ->>>>>>>>>>>>>>>> Exim pid=p1245 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1253 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1235 -qq >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user 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 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1254 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1255 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> delivering 10HmbB-000000005vi-0000 (queue run pid p1236) R: bounce (ACL) LOG: MAIN @@ -151,15 +186,21 @@ LOG: MAIN CALLER@test.ex: error ignored LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1247 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1256 (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 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1257 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1258 (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 @@ -174,24 +215,29 @@ Connecting to 127.0.0.1 [127.0.0.1]:PORT_S ... connected SMTP<< 250 OK SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:550:503:RSET:250' +>>>>>>>>>>>>>>>> Exim pid=p1259 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN ** b@test.ex F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 550 Unknown Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: MAIN <= <> R=10HmbA-000000005vi-0000 U=EXIMUSER P=local S=sss ->>>>>>>>>>>>>>>> Exim pid=p1249 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1260 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1250 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1261 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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: @@ -208,11 +254,12 @@ T: send_to_server (ACL) SMTP<< 250 OK SMTP(close)>> cmdlog: 'MAIL|:RCPT|:DATA:250:250:351:.:QUIT+:250:250' +>>>>>>>>>>>>>>>> Exim pid=p1263 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => c@test.ex F= R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* L C="250 OK" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1251 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1262 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1236 -qqf >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0227 b/test/stderr/0227 index 0a4c4f1df..87667b9f1 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,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>> LHLO myhost.test.ex SMTP<< 250 OK @@ -382,7 +403,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 +416,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..879ba7eeb 100644 --- a/test/stderr/0249 +++ b/test/stderr/0249 @@ -1,22 +1,40 @@ Exim version x.yz .... +Hints DB: 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..f44b1e97f 100644 --- a/test/stderr/0264 +++ b/test/stderr/0264 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user Writing spool header file: TESTSUITE/spool//input//hdr.10HmbJ-000000005vi-0000 @@ -7,6 +8,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbJ-000000005vi-0000-H LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -25,7 +27,6 @@ body_linecount=0 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: rz.b@outside -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: rz.b@outside unique = rz.b@outside @@ -37,22 +38,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 @@ -81,7 +87,10 @@ Succeeded addresses: 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..7016b5974 100644 --- a/test/stderr/0275 +++ b/test/stderr/0275 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -17,7 +18,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 +33,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 +69,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 +86,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 +126,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 +157,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 @@ -185,6 +186,7 @@ routed by r3 router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -233,6 +235,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -256,8 +259,6 @@ body_linecount=0 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -268,7 +269,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 +298,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 +334,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 +351,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 +391,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 +422,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 @@ -457,8 +458,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -476,6 +475,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 maildir_use_size_file=no locking by lockfile fcntl search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling userx@test.ex t1 transport returned OK for userx@test.ex post-process userx@test.ex (0) @@ -509,6 +509,7 @@ search_tidyup called search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -552,7 +553,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 +582,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..b92d4d832 100644 --- a/test/stderr/0277 +++ b/test/stderr/0277 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -21,12 +22,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-xxxx, ttl -1 LOG: host_lookup_failed MAIN no host name found for IP address V4NET.2.3.4 sender_fullhost = [V4NET.2.3.4] @@ -51,6 +52,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -110,6 +112,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -138,12 +141,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-xxxx, ttl -1 LOG: host_lookup_failed MAIN no host name found for IP address V4NET.10.11.12 sender_fullhost = [V4NET.10.11.12] @@ -180,6 +183,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -208,12 +212,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-xxxx, ttl -1 LOG: host_lookup_failed MAIN no host name found for IP address V4NET.1.1.1 sender_fullhost = [V4NET.1.1.1] @@ -250,6 +254,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -278,12 +283,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-xxxx, 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..1910c262e 100644 --- a/test/stderr/0278 +++ b/test/stderr/0278 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -18,7 +19,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 +32,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 +63,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 @@ -90,6 +91,7 @@ routed by r3 router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -138,6 +140,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -161,8 +164,6 @@ body_linecount=0 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: CALLER@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -178,7 +179,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 +192,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 +223,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 @@ -257,8 +258,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> CALLER@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -276,6 +275,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 maildir_use_size_file=no locking by lockfile fcntl search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling CALLER@test.ex t1 transport returned OK for CALLER@test.ex post-process CALLER@test.ex (0) @@ -309,6 +309,7 @@ search_tidyup called search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -328,7 +329,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 +342,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 +360,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,39 +379,43 @@ 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 "*") -DNS lookup of test.ex (MX) using fakens -DNS lookup of test.ex (MX) gave NO_DATA -returning DNS_NODATA -faking res_search(MX) response length as 65535 - writing neg-cache entry for test.ex-MX-xxxx, ttl 3000 -test.ex (MX resp) DNSSEC -DNS lookup of test.ex (A) using fakens -DNS lookup of test.ex (A) gave NO_DATA -returning DNS_NODATA -faking res_search(A) response length as 65535 - writing neg-cache entry for test.ex-A-xxxx, ttl 3000 +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for test.ex-MX-xxxx, ttl 3000 + test.ex (MX resp) DNSSEC + DNS lookup of test.ex (A) using fakens + DNS lookup of test.ex (A) gave NO_DATA + returning DNS_NODATA + faking res_search(A) response length as 65535 + writing neg-cache entry for test.ex-A-xxxx, ttl 3000 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 +432,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 +452,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..bbd876568 100644 --- a/test/stderr/0279 +++ b/test/stderr/0279 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "CALLER": cache not available @@ -21,15 +22,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 +45,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 +56,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 +81,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 +89,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 @@ -108,6 +109,7 @@ routed by r3 router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 seeking password data for user "CALLER": cache not available @@ -130,7 +132,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 +143,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..e4799ceb5 100644 --- a/test/stderr/0283 +++ b/test/stderr/0283 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "root": cache not available @@ -15,6 +16,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 seeking password data for user "root": cache not available @@ -27,14 +29,18 @@ 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 +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN ** somebody@myhost.test.ex R=rest T=t1: return message generated changed uid/gid: post-delivery tidying uid=EXIM_UID gid=EXIM_GID pid=p1235 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1237 seeking password data for user "root": cache not available @@ -51,6 +57,7 @@ getpwnam() succeeded uid=uuuu gid=gggg LOG: MAIN <= <> R=10HmaY-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1238 seeking password data for user "root": cache not available @@ -63,8 +70,10 @@ 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 +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => CALLER R=caller T=t2 changed uid/gid: post-delivery tidying @@ -78,6 +87,7 @@ LOG: MAIN >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1240 seeking password data for user "root": cache not available @@ -93,6 +103,7 @@ getpwnam() succeeded uid=uuuu gid=gggg LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1241 seeking password data for user "root": cache not available diff --git a/test/stderr/0294 b/test/stderr/0294 index 2ec78fb58..fb876330c 100644 --- a/test/stderr/0294 +++ b/test/stderr/0294 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -15,18 +16,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 +65,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 @@ -96,6 +103,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -155,6 +163,7 @@ LOG: smtp_connection MAIN SMTP connection from (test) [1.2.3.4] D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -215,6 +224,7 @@ LOG: smtp_connection MAIN SMTP connection from (test) [V4NET.9.8.7] D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user diff --git a/test/stderr/0297 b/test/stderr/0297 index b902d1b1f..dc7e0c020 100644 --- a/test/stderr/0297 +++ b/test/stderr/0297 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -23,6 +24,7 @@ routed by r1 router transport: >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user diff --git a/test/stderr/0303 b/test/stderr/0303 index 60c8bba97..72553dcd8 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: * @@ -50,6 +58,7 @@ >>> list element: @[] >>> rhubarb.custard in helo_lookup_domains? no (end of list) Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "CALLER": cache not available @@ -137,6 +146,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 seeking password data for user "CALLER": cache not available 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..7495a8145 100644 --- a/test/stderr/0315 +++ b/test/stderr/0315 @@ -1,16 +1,17 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@the.local.host.name U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid delivering 10HmaX-000000005vi-0000 -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: x@ten-1.test.ex @@ -28,6 +29,7 @@ checking domains calling r1 router r1 router called for y@ten-1.test.ex domain = ten-1.test.ex +main lookup for domain set transport t1 queued for t1 transport: local_part = y domain = ten-1.test.ex @@ -48,7 +50,7 @@ After routing: y@ten-1.test.ex Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1236 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN *> x@ten-1.test.ex R=r1 T=t1 H=ten-1.test.ex [V4NET.0.0.1] C="delivery bypassed by -N option" LOG: MAIN @@ -58,17 +60,18 @@ LOG: MAIN >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@the.local.host.name U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid delivering 10HmaY-000000005vi-0000 -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: x@ten-2.test.ex @@ -83,12 +86,14 @@ 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 calling r2 router r2 router called for y@ten-2.test.ex domain = ten-2.test.ex +main lookup for domain set transport t1 queued for t1 transport: local_part = y domain = ten-2.test.ex @@ -103,12 +108,14 @@ 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 calling r2 router r2 router called for x@ten-2.test.ex domain = ten-2.test.ex +main lookup for domain queued for t1 transport: local_part = x domain = ten-2.test.ex errors_to=NULL @@ -125,12 +132,12 @@ After routing: y@ten-2.test.ex Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1239 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN *> x@ten-2.test.ex R=r2 T=t1 H=ten-2.test.ex [V4NET.0.0.2] C="delivery bypassed by -N option" LOG: MAIN *> y@ten-2.test.ex R=r2 T=t1 H=ten-2.test.ex [V4NET.0.0.2] C="delivery bypassed by -N option" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0317 b/test/stderr/0317 index b736cd160..c3e17cacc 100644 --- a/test/stderr/0317 +++ b/test/stderr/0317 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME @@ -34,6 +35,7 @@ LOG: MAIN created log directory TESTSUITE/spool/log >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME 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..70dc4bddb 100644 --- a/test/stderr/0332 +++ b/test/stderr/0332 @@ -1,10 +1,10 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: ok@no.delay unique = ok@no.delay @@ -32,20 +32,19 @@ After routing: ok@no.delay Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile -locking TESTSUITE/spool/db/wait-t1.lockfile cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250' +>>>>>>>>>>>>>>>> Exim pid=p1235 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1235 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1236 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: delay@test.again.dns unique = delay@test.again.dns @@ -79,13 +78,11 @@ After routing: Failed addresses: Deferred addresses: delay@test.again.dns -locking TESTSUITE/spool/db/retry.lockfile -locking TESTSUITE/spool/db/wait-t1.lockfile cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1238 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK" ->>>>>>>>>>>>>>>> Exim pid=p1236 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1237 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: delay@test.again.dns unique = delay@test.again.dns @@ -98,7 +95,7 @@ After routing: Failed addresses: Deferred addresses: delay@test.again.dns ->>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0333 b/test/stderr/0333 index 0ddd349a3..8a7d6dd42 100644 --- a/test/stderr/0333 +++ b/test/stderr/0333 @@ -1,8 +1,8 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: ok@no.delay unique = ok@no.delay @@ -30,20 +30,19 @@ After routing: ok@no.delay Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile -locking TESTSUITE/spool/db/wait-t1.lockfile cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250' +>>>>>>>>>>>>>>>> Exim pid=p1235 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK" LOG: MAIN Completed >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: delay@test.again.dns unique = delay@test.again.dns @@ -77,9 +76,8 @@ After routing: Failed addresses: Deferred addresses: delay@test.again.dns -locking TESTSUITE/spool/db/retry.lockfile -locking TESTSUITE/spool/db/wait-t1.lockfile cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK" ->>>>>>>>>>>>>>>> Exim pid=p1235 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1236 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0342 b/test/stderr/0342 index c4414fe0c..454d93956 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..cde038b41 100644 --- a/test/stderr/0357 +++ b/test/stderr/0357 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@test.ex @@ -23,10 +24,10 @@ After routing: Failed addresses: Deferred addresses: 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 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1239 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> reading retry information for R:userx@test.ex: from subprocess added retry item LOG: MAIN @@ -36,7 +37,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: userx@test.ex -locking TESTSUITE/spool/db/retry.lockfile retry for R:userx@test.ex: = * 0 0 failing_interval=ttt message_age=ttt Writing retry data for R:userx@test.ex: @@ -46,12 +46,12 @@ end of retry processing >>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@test.ex no domain retry record @@ -67,11 +67,11 @@ After routing: Failed addresses: Deferred addresses: 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 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1240 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> reading retry information for R:userx@test.ex: from subprocess existing delete item dropped added retry item @@ -90,7 +90,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: userx@test.ex -locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:userx@test.ex deleted retry information for R:test.ex retry for R:userx@test.ex: = * 0 0 @@ -99,17 +98,17 @@ Writing retry data for R:userx@test.ex: first failed=dddd last try=dddd next try=+2 expired=0 errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 451 Temporary error end of retry processing ->>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1241 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1235 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@test.ex no domain retry record @@ -125,11 +124,11 @@ After routing: Failed addresses: Deferred addresses: 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 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1242 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> reading retry information for R:userx@test.ex: from subprocess existing delete item dropped added retry item @@ -148,7 +147,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: userx@test.ex -locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:userx@test.ex deleted retry information for R:test.ex retry for R:userx@test.ex: = * 0 0 @@ -157,17 +155,17 @@ Writing retry data for R:userx@test.ex: first failed=dddd last try=dddd next try=+4 expired=0 errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 451 Temporary error end of retry processing ->>>>>>>>>>>>>>>> Exim pid=p1240 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1243 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1235 >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1236 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@test.ex no domain retry record @@ -190,7 +188,7 @@ Failed addresses: Deferred addresses: userx@test.ex: no retry items end of retry processing ->>>>>>>>>>>>>>>> Exim pid=p1241 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1244 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1236 >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0358 b/test/stderr/0358 index 8dbb1f66f..f7cfee1f8 100644 --- a/test/stderr/0358 +++ b/test/stderr/0358 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@test.ex @@ -28,11 +29,11 @@ After routing: Failed addresses: Deferred addresses: 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:usery@test.ex:: errno=-44 more_errno=dd,A flags=0 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:RCPT:451:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> reading retry information for R:userx@test.ex: from subprocess added retry item reading retry information for R:usery@test.ex: from subprocess @@ -46,7 +47,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: usery@test.ex -locking TESTSUITE/spool/db/retry.lockfile retry for R:usery@test.ex: = * 0 0 failing_interval=ttt message_age=ttt Writing retry data for R:usery@test.ex: @@ -62,12 +62,12 @@ end of retry processing >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@test.ex no domain retry record @@ -91,12 +91,12 @@ After routing: Failed addresses: Deferred addresses: 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:usery@test.ex:: errno=-44 more_errno=dd,A flags=0 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:RCPT:451:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1238 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> reading retry information for R:userx@test.ex: from subprocess existing delete item dropped added retry item @@ -128,7 +128,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: usery@test.ex -locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:usery@test.ex deleted retry information for R:test.ex retry for R:usery@test.ex: = * 0 0 @@ -145,7 +144,7 @@ Writing retry data for R:userx@test.ex: first failed=dddd last try=dddd next try=+4 expired=0 errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 451 Temporary error end of retry processing ->>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0360 b/test/stderr/0360 index 7e30058bc..724a67d02 100644 --- a/test/stderr/0360 +++ b/test/stderr/0360 @@ -1,16 +1,17 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid delivering 10HmaX-000000005vi-0000 -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: cms@test.ex @@ -61,7 +62,6 @@ routed by r2 router envelope to: cms@test.ex transport: errors to postmaster@test.ex -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: unknown@recurse.test.ex @@ -100,14 +100,16 @@ 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 +main lookup for domain r1 router widened recurse.test.ex to recurse.test.ex.test.ex +main lookup for domain domain changed to recurse.test.ex.test.ex rewriting header lines re-routed to unknown@recurse.test.ex.test.ex -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: unknown@recurse.test.ex.test.ex @@ -121,9 +123,11 @@ 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 +main lookup for domain set transport t1 queued for t1 transport: local_part = unknown domain = recurse.test.ex.test.ex @@ -142,18 +146,18 @@ After routing: Failed addresses: Deferred addresses: defer@test.ex -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN *> unknown@recurse.test.ex.test.ex R=r1 T=t1 H=recurse.test.ex.test.ex [V4NET.99.0.2] C="delivery bypassed by -N option" >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -qf -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: cms@test.ex @@ -204,7 +208,6 @@ routed by r2 router envelope to: cms@test.ex transport: errors to postmaster@test.ex -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: unknown@recurse.test.ex @@ -242,7 +245,7 @@ After routing: Failed addresses: Deferred addresses: defer@test.ex ->>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 -qf >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0361 b/test/stderr/0361 index 7a4f90d9a..f84c58517 100644 --- a/test/stderr/0361 +++ b/test/stderr/0361 @@ -6,6 +6,7 @@ LOG: MAIN LOG: MAIN Completed Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -53,6 +54,7 @@ LOG: MAIN search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -N -odi -Mc 10HmaY-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -76,8 +78,6 @@ body_linecount=0 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: kilos@recurse.test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -93,42 +93,48 @@ 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 "*") -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 +main lookup for domain + 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 "*") -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 -faking res_search(MX) response length as 65535 - writing neg-cache entry for recurse.test.ex.test.ex-MX-xxxx, ttl 3000 -recurse.test.ex.test.ex (MX resp) DNSSEC -DNS lookup of recurse.test.ex.test.ex (A) using fakens -DNS lookup of recurse.test.ex.test.ex (A) succeeded -fully qualified name = recurse.test.ex.test.ex -recurse.test.ex.test.ex V4NET.99.0.2 mx=-1 sort=xx +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for recurse.test.ex.test.ex-MX-xxxx, ttl 3000 + recurse.test.ex.test.ex (MX resp) DNSSEC + DNS lookup of recurse.test.ex.test.ex (A) using fakens + DNS lookup of recurse.test.ex.test.ex (A) succeeded + fully qualified name = recurse.test.ex.test.ex + recurse.test.ex.test.ex V4NET.99.0.2 mx=-1 sort=xx domain changed to recurse.test.ex.test.ex rewriting header lines rewrite_one_header: type=F: From: CALLER_NAME re-routed to kilos@recurse.test.ex.test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -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) @@ -174,8 +180,6 @@ r3 router generated kilos@recurse.test.ex.test.ex routed by r3 router envelope to: kilos@recurse.test.ex.test.ex transport: - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -191,17 +195,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 @@ -228,8 +232,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> kilos@recurse.test.ex.test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -248,6 +250,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 locking by lockfile fcntl *** delivery by t2 transport bypassed by -N option search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling kilos@recurse.test.ex.test.ex/t2 t2 transport returned OK for kilos@recurse.test.ex.test.ex post-process kilos@recurse.test.ex.test.ex (0) diff --git a/test/stderr/0362 b/test/stderr/0362 index 35e64615b..84d28eb82 100644 --- a/test/stderr/0362 +++ b/test/stderr/0362 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -80,19 +81,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 +101,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..4a3328516 100644 --- a/test/stderr/0364 +++ b/test/stderr/0364 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -70,13 +71,16 @@ 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 +main lookup for domain 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,18 +100,22 @@ 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 +main lookup for domain 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,9 +146,11 @@ 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 +main lookup for domain set transport t1 queued for t1 transport: local_part = xxx domain = ten-1.test.ex @@ -173,13 +183,16 @@ 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 +main lookup for domain 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,9 +212,11 @@ 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 +main lookup for domain queued for t1 transport: local_part = xxx domain = testsub.sub.test.ex errors_to=NULL diff --git a/test/stderr/0368 b/test/stderr/0368 index 0d3ccb719..e67722e26 100644 --- a/test/stderr/0368 +++ b/test/stderr/0368 @@ -1,29 +1,42 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -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 +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 -host_find_bydns yield = HOST_FOUND (3); returned hosts: - ten-5-6.test.ex V4NET.0.0.5 MX=4 - ten-5-6.test.ex V4NET.0.0.6 MX=4 + fully qualified name = mxt14.test.ex + host_find_bydns yield = HOST_FOUND (3); returned hosts: + ten-5-6.test.ex V4NET.0.0.5 MX=4 + 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/0370 b/test/stderr/0370 index c2de395fa..5b619f8f6 100644 --- a/test/stderr/0370 +++ b/test/stderr/0370 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -9,6 +10,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -27,6 +29,7 @@ writing data block fd=dddd size=sss timeout=3600 writing error EEE: Broken pipe transport error EPIPE ignored t1 transport yielded 0 +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned OK for |TESTSUITE/bin/iefbr14 LOG: MAIN => |TESTSUITE/bin/iefbr14 R=r1 T=t1 diff --git a/test/stderr/0371 b/test/stderr/0371 index c1f96114f..6795f8dac 100644 --- a/test/stderr/0371 +++ b/test/stderr/0371 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0374 b/test/stderr/0374 index dc55b780a..3c8f9d6d8 100644 --- a/test/stderr/0374 +++ b/test/stderr/0374 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: a1@myhost.test.ex @@ -40,14 +41,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 +73,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 +104,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 +135,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 +162,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 @@ -183,7 +196,6 @@ routed by u1 router (unseen) envelope to: a1@myhost.test.ex transport: ut1 "unseen" set: replicated a1@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: a1@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 @@ -336,62 +354,60 @@ After routing: d3@myhost.test.ex Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => a1 R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1238 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => b1 R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => c1 R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d1 R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1241 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d2 R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1242 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d3 R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1243 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => a1 R=u1 T=ut1 -locking TESTSUITE/spool/db/retry.lockfile transport error EPIPE ignored +>>>>>>>>>>>>>>>> Exim pid=p1244 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN ** b1@myhost.test.ex R=ut2 T=ut2: Child process of ut2 transport returned 127 (could mean unable to exec or command does not exist) from command: /non/existent/file -locking TESTSUITE/spool/db/retry.lockfile transport error EPIPE ignored +>>>>>>>>>>>>>>>> Exim pid=p1245 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> 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 cmdlog: '220' +>>>>>>>>>>>>>>>> Exim pid=p1246 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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' +>>>>>>>>>>>>>>>> Exim pid=p1247 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 cmdlog: '220' +>>>>>>>>>>>>>>>> Exim pid=p1248 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 -locking TESTSUITE/spool/db/retry.lockfile Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: MAIN <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: CALLER@myhost.test.ex unique = CALLER@myhost.test.ex @@ -401,18 +417,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 @@ -434,12 +454,12 @@ After routing: Remote deliveries: Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1251 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => CALLER R=real T=real LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1237 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1250 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1249 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0375 b/test/stderr/0375 index 138e9ecc9..e6a7b9402 100644 --- a/test/stderr/0375 +++ b/test/stderr/0375 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: a1@myhost.test.ex @@ -60,26 +61,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 +100,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 +144,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 +187,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 +230,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 +267,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 +300,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 +332,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 +364,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 +392,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 @@ -390,7 +428,6 @@ routed by u1 router (unseen) transport: ut1 errors to "unseen" set: replicated a1@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: a1@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 @@ -756,106 +832,101 @@ After routing: Failed addresses: Deferred addresses: g1@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => a1 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1238 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => b1 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => c1 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d1 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1241 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d2 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1242 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d3 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1243 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => e1 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1244 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => f1 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1245 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => f2 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1246 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => f3 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1247 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => a1 P=<> R=u1 T=ut1 log writing disabled -locking TESTSUITE/spool/db/retry.lockfile transport error EPIPE ignored +>>>>>>>>>>>>>>>> Exim pid=p1248 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN ** b1@myhost.test.ex P=<> R=ut2 T=ut2: Child process of ut2 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 transport error EPIPE ignored +>>>>>>>>>>>>>>>> Exim pid=p1249 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> 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 cmdlog: '220' +>>>>>>>>>>>>>>>> Exim pid=p1250 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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' +>>>>>>>>>>>>>>>> Exim pid=p1251 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 cmdlog: '220' +>>>>>>>>>>>>>>>> Exim pid=p1252 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 cmdlog: '220' +>>>>>>>>>>>>>>>> Exim pid=p1253 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 cmdlog: '220' +>>>>>>>>>>>>>>>> Exim pid=p1254 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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' +>>>>>>>>>>>>>>>> Exim pid=p1255 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 cmdlog: '220' +>>>>>>>>>>>>>>>> Exim pid=p1256 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 log writing disabled -locking TESTSUITE/spool/db/retry.lockfile LOG: MAIN f3@myhost.test.ex : error ignored log writing disabled Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: MAIN <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: CALLER@myhost.test.ex unique = CALLER@myhost.test.ex @@ -865,34 +936,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 @@ -914,13 +993,13 @@ After routing: Remote deliveries: Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1259 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => CALLER P=<> R=real T=real LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1237 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1258 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1257 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN d3@myhost.test.ex : error ignored log writing disabled @@ -930,16 +1009,17 @@ log writing disabled >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: h1@myhost.test.ex unique = h1@myhost.test.ex @@ -949,30 +1029,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 @@ -990,7 +1077,6 @@ routed by ut8 router (unseen) envelope to: h1@myhost.test.ex transport: ut1 "unseen" set: replicated h1@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: h1@myhost.test.ex unique = \0\h1@myhost.test.ex @@ -1018,14 +1104,14 @@ After routing: Remote deliveries: Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1262 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => h1 P= R=real T=real -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1263 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => h1 P= R=ut8 T=ut1 log writing disabled LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1240 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1261 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1260 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0376 b/test/stderr/0376 index c8cd1b9da..9ef0c67a3 100644 --- a/test/stderr/0376 +++ b/test/stderr/0376 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +14,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,15 +30,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,15 +57,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +84,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 @@ -71,11 +95,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +110,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 @@ -107,11 +134,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: smtp_connection MAIN SMTP connection from root +test in helo_lookup_domains? no (end of list) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying bad@localhost >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -128,11 +157,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +172,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 @@ -161,11 +193,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: smtp_connection MAIN SMTP connection from root +test in helo_lookup_domains? no (end of list) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying ok@localhost >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -181,11 +215,14 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +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 OK @@ -224,11 +262,14 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1241 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -244,11 +285,14 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1242 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +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 OK @@ -279,15 +324,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,15 +352,26 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +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 OK @@ -328,17 +395,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,17 +423,28 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +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 OK @@ -379,17 +468,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,17 +496,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +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 OK @@ -444,15 +554,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,15 +583,23 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +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 OK @@ -502,15 +631,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +659,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,15 +675,26 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +703,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,15 +725,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +753,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,15 +769,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +796,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,15 +818,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +847,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 @@ -682,11 +869,18 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1256 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +889,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,15 +912,29 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +944,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,17 +960,30 @@ 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 SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1258 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +993,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 @@ -789,11 +1013,19 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1259 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +1034,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,15 +1059,26 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +1087,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..f212cdb2e 100644 --- a/test/stderr/0377 +++ b/test/stderr/0377 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@myhost.test.ex @@ -28,22 +29,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 +80,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 +117,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 @@ -126,7 +136,6 @@ routed by unseen_aaaa router (unseen) envelope to: aaaa@myhost.test.ex transport: "unseen" set: replicated aaaa@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@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 @@ -298,25 +315,24 @@ After routing: defer_aaaa@myhost.test.ex defer_bbbb@myhost.test.ex defer_cccc@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1238 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => aaaa R=seen_aaaa T=t1 -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => bbbb R=bbbb_0 T=t1 -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => cccc R=cccc_accept T=t1 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -qf -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@myhost.test.ex unique = aaaa@myhost.test.ex @@ -334,22 +350,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 +393,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 +429,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 @@ -425,7 +450,6 @@ domain = myhost.test.ex routed by seen_aaaa router envelope to: aaaa@myhost.test.ex transport: t1 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: cccc@myhost.test.ex unique = \0\cccc@myhost.test.ex @@ -435,22 +459,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 @@ -473,7 +502,6 @@ cccc_redirect router generated cccc@myhost.test.ex routed by cccc_redirect router envelope to: cccc@myhost.test.ex transport: -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: cccc@myhost.test.ex unique = \1\cccc@myhost.test.ex @@ -502,22 +530,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 @@ -550,18 +583,17 @@ After routing: cccc@myhost.test.ex was previously delivered (t1 transport): discarded aaaa@myhost.test.ex was previously delivered (t1 transport): discarded bbbb@myhost.test.ex was previously delivered (t1 transport): discarded -locking TESTSUITE/spool/db/retry.lockfile ->>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1241 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 -qf >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1235 -qf -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@myhost.test.ex unique = aaaa@myhost.test.ex @@ -579,22 +611,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 +654,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 +690,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 @@ -670,7 +711,6 @@ domain = myhost.test.ex routed by seen_aaaa router envelope to: aaaa@myhost.test.ex transport: t1 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: cccc@myhost.test.ex unique = \0\cccc@myhost.test.ex @@ -680,22 +720,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 @@ -718,7 +763,6 @@ cccc_redirect router generated cccc@myhost.test.ex routed by cccc_redirect router envelope to: cccc@myhost.test.ex transport: -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: cccc@myhost.test.ex unique = \1\cccc@myhost.test.ex @@ -747,22 +791,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 @@ -795,8 +844,7 @@ After routing: cccc@myhost.test.ex was previously delivered (t1 transport): discarded aaaa@myhost.test.ex was previously delivered (t1 transport): discarded bbbb@myhost.test.ex was previously delivered (t1 transport): discarded -locking TESTSUITE/spool/db/retry.lockfile ->>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1242 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1235 -qf >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0378 b/test/stderr/0378 index 845da3cb2..b3ab37ec9 100644 --- a/test/stderr/0378 +++ b/test/stderr/0378 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@myhost.test.ex @@ -20,10 +21,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 @@ -67,7 +71,6 @@ aaaa router generated defer_aaaa@myhost.test.ex routed by aaaa router envelope to: aaaa@myhost.test.ex transport: -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: defer_aaaa@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 @@ -114,18 +119,18 @@ After routing: Failed addresses: Deferred addresses: defer_aaaa@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= <> R=10HmaX-000000005vi-0000 U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: CALLER@myhost.test.ex @@ -155,25 +160,25 @@ LOG: MAIN Completed >>>>>>>>>>>>>>>> Exim pid=p1239 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1238 (autoreply) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => >CALLER@myhost.test.ex R=aaaa T=t3 -locking TESTSUITE/spool/db/retry.lockfile transport error EPIPE ignored +>>>>>>>>>>>>>>>> Exim pid=p1241 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => |/bin/sh -c exit R=aaaa T=t2 -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1242 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => TESTSUITE/test-mail/file R=aaaa T=t1 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -qf -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@myhost.test.ex unique = aaaa@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 @@ -204,7 +212,6 @@ aaaa_2nd_time router generated aaaa@myhost.test.ex routed by aaaa_2nd_time router envelope to: aaaa@myhost.test.ex transport: -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@myhost.test.ex unique = \0\aaaa@myhost.test.ex @@ -214,10 +221,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 @@ -235,7 +245,7 @@ text "This is an autoreply"' (tainted) data is an Exim filter program Filter: start of processing Filter: end of processing ->>>>>>>>>>>>>>>> Exim pid=p1240 (router-interpret) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1243 (router-interpret) terminating with rc=0 >>>>>>>>>>>>>>>> rda_interpret: subprocess yield=0 error=NULL set transport t3 aaaa router generated >CALLER@myhost.test.ex @@ -258,7 +268,6 @@ aaaa router generated defer_aaaa@myhost.test.ex routed by aaaa router envelope to: aaaa@myhost.test.ex transport: -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: defer_aaaa@myhost.test.ex unique = defer_aaaa@myhost.test.ex @@ -280,6 +289,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 @@ -301,8 +312,7 @@ After routing: Failed addresses: Deferred addresses: defer_aaaa@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile ->>>>>>>>>>>>>>>> Exim pid=p1241 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1244 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 -qf >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0379 b/test/stderr/0379 index f37cea959..2440d10ad 100644 --- a/test/stderr/0379 +++ b/test/stderr/0379 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: defer@myhost.test.ex @@ -24,6 +25,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 @@ -59,7 +61,6 @@ defer router: defer for defer@myhost.test.ex message: forced defer LOG: MAIN == defer@myhost.test.ex R=defer defer (-1): forced defer -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: bbbb@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 @@ -125,22 +130,21 @@ After routing: Failed addresses: Deferred addresses: defer@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => bbbb R=bc T=t1 -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1238 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => cccc R=bc T=t1 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -qf -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: defer@myhost.test.ex unique = defer@myhost.test.ex @@ -167,8 +171,7 @@ After routing: Failed addresses: Deferred addresses: defer@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile ->>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 -qf >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0380 b/test/stderr/0380 index 835ef21ad..38bbcd1be 100644 --- a/test/stderr/0380 +++ b/test/stderr/0380 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: aaaa@myhost.test.ex @@ -28,6 +29,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 @@ -78,9 +80,8 @@ After routing: Failed addresses: Deferred addresses: aaaa@myhost.test.ex -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => bbbb R=r3 T=t1 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0381 b/test/stderr/0381 index 550e2dab9..d35fb6261 100644 --- a/test/stderr/0381 +++ b/test/stderr/0381 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "CALLER": cache not available @@ -48,19 +49,27 @@ 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) + 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) + 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..6da513f1f 100644 --- a/test/stderr/0382 +++ b/test/stderr/0382 @@ -1,10 +1,12 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -13,15 +15,19 @@ 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 .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: MAIN <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -41,6 +47,7 @@ LOG: MAIN >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid diff --git a/test/stderr/0386 b/test/stderr/0386 index ace0dc69c..bb322c8a4 100644 --- a/test/stderr/0386 +++ b/test/stderr/0386 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "CALLER": cache not available @@ -167,6 +168,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 seeking password data for user "CALLER": cache not available @@ -231,12 +233,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 @@ -282,6 +284,7 @@ SMTP>> 250 OK id=10HmaX-000000005vi-0000 search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1236 seeking password data for user "CALLER": cache not available @@ -309,8 +312,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: 2@b - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -346,8 +347,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> 2@b <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -364,7 +363,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 @@ -376,6 +375,7 @@ writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling 2@b t1 transport returned OK for 2@b post-process 2@b (0) @@ -479,6 +479,7 @@ SMTP>> 250 OK id=10HmaY-000000005vi-0000 search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaY-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1238 seeking password data for user "CALLER": cache not available @@ -506,8 +507,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: 2@b - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -543,8 +542,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> 2@b <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -561,7 +558,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 @@ -573,6 +570,7 @@ writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling 2@b t1 transport returned OK for 2@b post-process 2@b (0) diff --git a/test/stderr/0387 b/test/stderr/0387 index 2b78fcea4..901d53d55 100644 --- a/test/stderr/0387 +++ b/test/stderr/0387 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user diff --git a/test/stderr/0388 b/test/stderr/0388 index 92b85e558..78be65faf 100644 --- a/test/stderr/0388 +++ b/test/stderr/0388 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -6,8 +7,6 @@ admin user dropping to exim gid; retaining priv uid set_process_info: pppp delivering specified messages set_process_info: pppp delivering 10HmaX-000000005vi-0000 - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -23,9 +22,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 @@ -77,17 +76,16 @@ changed uid/gid: remote delivery to x@y with transport=smtp uid=EXIM_UID gid=EXIM_GID pid=p1235 set_process_info: pppp delivering 10HmaX-000000005vi-0000 using smtp checking retry status of 127.0.0.1 - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory 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: - 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 @@ -119,15 +117,14 @@ set_process_info: pppp delivering 10HmaX-000000005vi-0000: just tried 127.0.0.1 *@127.0.0.1 in "*"? yes (matched "*") Clearing TFO as not first host for message checking retry status of V4NET.0.0.0 - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory 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? +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 @@ -136,6 +133,8 @@ added retry item for T:[V4NET.0.0.0]:V4NET.0.0.0:PORT_S: errno=dd more_errno=dd, 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 +search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1235 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 @@ -151,8 +150,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: x@y - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR @@ -165,11 +162,12 @@ Deferred addresses: x@y in "*"? yes (matched "*") retry for R:x@y = * 0 0 dbfn_read: key=R:x@y + dbfn_read: null return failing_interval=ttt message_age=ttt Writing retry data for R:x@y first failed=dddd last try=dddd next try=+1 expired=1 errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 451 Temporary error - dbfn_write: key=R:x@y + dbfn_write: key=R:x@y datalen 148 *@V4NET.0.0.0 in "*"? list element: * address match test: subject=*@V4NET.0.0.0 pattern=* @@ -179,20 +177,22 @@ Writing retry data for R:x@y *@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 + dbfn_read: null return 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 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 datalen 70 timed out: all retries expired LOG: MAIN ** x@y: retry timeout exceeded EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database end of retry processing exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xd7715ced -MCd bounce-message -odi -odi -t -oem -oi -f <> -E10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -252,6 +252,7 @@ LOG: MAIN search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xd7715ced -MCd local-accept-delivery -odi -Mc 10HmaY-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -260,8 +261,6 @@ admin user dropping to exim gid; retaining priv uid set_process_info: pppp delivering specified messages set_process_info: pppp delivering 10HmaY-000000005vi-0000 - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY @@ -269,26 +268,29 @@ set_process_info: pppp delivering 10HmaY-000000005vi-0000 Considering: CALLER@myhost.test.ex unique = CALLER@myhost.test.ex dbfn_read: key=R:myhost.test.ex + dbfn_read: null return dbfn_read: key=R:CALLER@myhost.test.ex + dbfn_read: null return dbfn_read: key=R:CALLER@myhost.test.ex:<> + dbfn_read: null return no domain retry record no address retry record CALLER@myhost.test.ex: queued for routing EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 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/0391 b/test/stderr/0391 index b7873266f..884ffd32a 100644 --- a/test/stderr/0391 +++ b/test/stderr/0391 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0393 b/test/stderr/0393 index 75f92b9e1..9efcb548c 100644 --- a/test/stderr/0393 +++ b/test/stderr/0393 @@ -1,10 +1,12 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -22,7 +24,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 @@ -41,6 +43,7 @@ writing data block fd=dddd size=sss timeout=0 end of filtering transport writing: yield=1 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned OK for userx@test.ex LOG: MAIN => userx R=r1 T=t1 @@ -49,11 +52,13 @@ LOG: MAIN >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -69,7 +74,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 @@ -80,19 +85,22 @@ cannot use sendfile for body: spoolfile not wireformat writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned OK for userx@test.ex LOG: MAIN => userx R=r1 T=t1 LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -110,7 +118,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 @@ -121,10 +129,11 @@ cannot use sendfile for body: spoolfile not wireformat writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd +>>>>>>>>>>>>>>>> Exim pid=p1243 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned OK for userx@test.ex LOG: MAIN => userx R=r1 T=t1 LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1240 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1242 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1241 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0396 b/test/stderr/0396 index 75b64878a..e2f6cf70b 100644 --- a/test/stderr/0396 +++ b/test/stderr/0396 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0398 b/test/stderr/0398 index 604e791b6..745b5bb12 100644 --- a/test/stderr/0398 +++ b/test/stderr/0398 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -42,16 +43,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 +102,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 @@ -138,21 +139,22 @@ routed by r2 router transport: t2 host 127.0.0.1 [127.0.0.1] Attempting full verification using callout - locking TESTSUITE/spool/db/callout.lockfile - locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR dbfn_read: key=remote + dbfn_read: size 40 return callout cache: found domain record for remote dbfn_read: key=qq@remote + dbfn_read: null return callout cache: no address record found for qq@remote EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database 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 mail.test.ex @@ -173,18 +175,16 @@ cmd buf flush ddd bytes SMTP<< 250 OK SMTP(close)>> cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT:250' - locking TESTSUITE/spool/db/callout.lockfile - locked TESTSUITE/spool/db/callout.lockfile - EXIM_DBOPEN: file dir flags=O_RDWR|O_CREAT + EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA - opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT - dbfn_write: key=remote + opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR + dbfn_write: key=remote datalen 40 wrote callout cache domain record for remote: result=1 postmaster=0 random=0 - dbfn_write: key=qq@remote + dbfn_write: key=qq@remote datalen 16 wrote negative callout cache address record for qq@remote EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database ----------- end verify ------------ l_message: $acl_verify_message warn: condition test succeeded in ACL "rcpt" @@ -235,16 +235,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 @@ -272,18 +272,18 @@ routed by r2 router transport: t2 host 127.0.0.1 [127.0.0.1] Attempting full verification using callout - locking TESTSUITE/spool/db/callout.lockfile - locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR dbfn_read: key=remote + dbfn_read: size 40 return callout cache: found domain record for remote dbfn_read: key=qq@remote + dbfn_read: size 16 return callout cache: found address record for qq@remote callout cache: address record is negative EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database ----------- end verify ------------ l_message: $acl_verify_message warn: condition test succeeded in ACL "rcpt" diff --git a/test/stderr/0399 b/test/stderr/0399 index a3b583e11..cbcfb336b 100644 --- a/test/stderr/0399 +++ b/test/stderr/0399 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0402 b/test/stderr/0402 index 0d00c73e5..e92ec9019 100644 --- a/test/stderr/0402 +++ b/test/stderr/0402 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 environment after trimming: @@ -55,331 +56,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 ) @@ -403,6 +404,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715dfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 environment after trimming: @@ -445,8 +447,6 @@ Delivery address list: userz@test.ex rd+CALLER@test.ex rd+usery@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -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/ @@ -544,7 +544,6 @@ r5 router generated TESTSUITE/test-mail/junk errors_to=NULL transport=ft1 uid=unset gid=unset home=/non-exist/$local_part try option unseen -try option unseen routed by r5 router envelope to: rd+usery@test.ex transport: @@ -553,31 +552,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/ @@ -603,7 +602,6 @@ r4 router generated TESTSUITE/test-mail/junk errors_to=NULL transport=ft1 uid=unset gid=unset home=/non-exist/CALLER try option unseen -try option unseen routed by r4 router envelope to: rd+CALLER@test.ex transport: @@ -612,23 +610,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/ @@ -649,7 +647,6 @@ domain = test.ex errors_to=NULL domain_data=NULL local_part_data=userz try option unseen -try option unseen routed by r3 router envelope to: userz@test.ex transport: t2 @@ -658,16 +655,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/ @@ -688,7 +685,6 @@ domain = test.ex errors_to=NULL domain_data=NULL local_part_data=usery try option unseen -try option unseen routed by r2 router envelope to: usery@test.ex transport: t1 @@ -697,9 +693,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/ @@ -720,12 +716,9 @@ domain = test.ex errors_to=NULL domain_data=NULL local_part_data=CALLER try option unseen -try option unseen routed by r1 router envelope to: CALLER@test.ex transport: t1 - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -752,8 +745,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> TESTSUITE/test-mail/junk <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -844,6 +835,7 @@ try option message_suffix writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling TESTSUITE/test-mail/junk:rd+usery@test.ex ft1 transport returned OK for TESTSUITE/test-mail/junk post-process TESTSUITE/test-mail/junk (0) @@ -852,8 +844,6 @@ rd+usery@test.ex: children all complete LOG: MAIN => TESTSUITE/test-mail/junk R=r5 T=ft1 --------> TESTSUITE/test-mail/junk <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -936,6 +926,7 @@ try option message_suffix writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling TESTSUITE/test-mail/junk:rd+CALLER@test.ex ft1 transport returned OK for TESTSUITE/test-mail/junk post-process TESTSUITE/test-mail/junk (0) @@ -944,8 +935,6 @@ rd+CALLER@test.ex: children all complete LOG: MAIN => TESTSUITE/test-mail/junk R=r4 T=ft1 --------> CALLER@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -972,6 +961,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 maildir_use_size_file=no locking by lockfile fcntl search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1238 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling CALLER@test.ex t1 transport returned OK for CALLER@test.ex post-process CALLER@test.ex (0) @@ -979,8 +969,6 @@ CALLER@test.ex delivered LOG: MAIN => CALLER R=r1 T=t1 --------> usery@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -1015,6 +1003,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 maildir_use_size_file=no locking by lockfile fcntl search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling usery@test.ex t1 transport returned OK for usery@test.ex post-process usery@test.ex (0) @@ -1022,8 +1011,6 @@ usery@test.ex delivered LOG: MAIN => usery R=r2 T=t1 --------> userz@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -1058,6 +1045,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 maildir_use_size_file=no locking by lockfile fcntl search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling userz@test.ex t2 transport returned OK for userz@test.ex post-process userz@test.ex (0) diff --git a/test/stderr/0403 b/test/stderr/0403 index c44e370e1..39b958d45 100644 --- a/test/stderr/0403 +++ b/test/stderr/0403 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -47,6 +48,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -N -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -70,8 +72,6 @@ body_linecount=0 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -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] @@ -159,8 +159,6 @@ r2 router generated TESTSUITE/test-mail/junk routed by r2 router envelope to: userx@test.ex transport: - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -179,8 +177,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> TESTSUITE/test-mail/junk <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -204,6 +200,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 locking by lockfile fcntl *** delivery by t1 transport bypassed by -N option search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling TESTSUITE/test-mail/junk:userx@test.ex t1 transport returned OK for TESTSUITE/test-mail/junk post-process TESTSUITE/test-mail/junk (0) @@ -241,6 +238,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> ### _data from a multi-step expansion Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -288,6 +286,7 @@ LOG: MAIN search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -N -odi -Mc 10HmaY-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -311,8 +310,6 @@ body_linecount=0 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: charlie@dom1.ain - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -341,9 +338,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 +355,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 @@ -378,8 +375,6 @@ r1 router generated TESTSUITE/test-mail/junk routed by r1 router envelope to: charlie@dom1.ain transport: - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -398,8 +393,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> TESTSUITE/test-mail/junk <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -423,6 +416,7 @@ appendfile: mode=600 notify_comsat=0 quota=0 warning=0 locking by lockfile fcntl *** delivery by t1 transport bypassed by -N option search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling TESTSUITE/test-mail/junk:charlie@dom1.ain t1 transport returned OK for TESTSUITE/test-mail/junk post-process TESTSUITE/test-mail/junk (0) diff --git a/test/stderr/0404 b/test/stderr/0404 index bf8a60e5d..699106f7b 100644 --- a/test/stderr/0404 +++ b/test/stderr/0404 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -146,6 +147,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -171,8 +173,6 @@ body_linecount=0 message_linecount=160 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -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 @@ -217,8 +217,6 @@ r2 router generated >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex routed by r2 router envelope to: userx@test.ex transport: - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -237,8 +235,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ... <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -252,6 +248,7 @@ t1 transport entered taking data from address exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd autoreply -odi -odi -t -oem -oi -f <> -E10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -917,6 +914,7 @@ LOG: MAIN search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaY-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1239 configuration file is TESTSUITE/test-config @@ -2763,8 +2761,6 @@ Delivery address list: sender@test.ex sender@test.ex sender@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -6422,9 +6418,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6437,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6455,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6473,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6491,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6509,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6527,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6545,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6563,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6581,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6599,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6617,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6635,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6653,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6671,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6689,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6707,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6725,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6743,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6761,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6779,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6797,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6815,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6833,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6851,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6869,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6887,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6905,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6923,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6941,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6959,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6977,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +6995,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7013,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7031,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7049,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7067,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7085,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7103,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7121,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7139,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7157,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7175,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7193,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7211,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7229,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7247,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7265,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7283,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7301,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7319,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7337,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7355,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7373,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7391,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7409,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7427,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7445,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7463,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7481,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7499,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7517,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7535,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7553,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7571,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7589,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7607,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7625,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7643,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7661,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7679,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7697,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7715,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7733,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7751,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7769,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7787,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7805,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7823,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7841,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7859,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7877,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7895,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7913,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7931,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7949,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7967,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +7985,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8003,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8021,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8039,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8057,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8075,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8093,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8111,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8129,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8147,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8165,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8183,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8201,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8219,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8237,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8255,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8273,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8291,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8309,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8327,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8345,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8363,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8381,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8399,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8417,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8435,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8453,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8471,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8489,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8507,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8525,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8543,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8561,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8579,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8597,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8615,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8633,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8651,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8669,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8687,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8705,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8723,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8741,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8759,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8777,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8795,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8813,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8831,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8849,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8867,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8885,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8903,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8921,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8939,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8957,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8975,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +8993,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9011,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9029,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9047,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9065,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9083,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9101,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9119,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9137,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9155,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9173,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9191,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9209,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9227,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9245,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9263,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9281,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9299,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9317,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9335,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9353,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9371,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9389,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9407,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9425,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9443,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9461,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9479,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9497,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9515,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9533,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9551,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9569,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9587,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9605,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9623,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9641,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9659,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9677,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9695,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9713,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9731,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9749,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9767,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9785,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9803,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9821,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9839,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9857,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9875,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9893,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9911,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9929,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9947,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9965,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +9983,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10001,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10019,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10037,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10055,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10073,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10091,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10109,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10127,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10145,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10163,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10181,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10199,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10217,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10235,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10253,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10271,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10289,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10307,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10325,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10343,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10361,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10379,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10397,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10415,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10433,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10451,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10469,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10487,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10505,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10523,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10541,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10559,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10577,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10595,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10613,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10631,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10649,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10667,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10685,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10703,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10721,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10739,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10757,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10775,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10793,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10811,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10829,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10847,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10865,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10883,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10901,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10919,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10937,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10955,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10973,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +10991,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11009,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11027,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11045,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11063,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11081,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11099,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11117,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11135,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11153,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11171,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11189,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11207,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11225,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11243,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11261,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11279,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11297,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11315,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11333,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11351,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11369,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11387,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11405,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11423,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11441,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11459,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11477,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11495,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11513,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11531,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11549,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11567,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11585,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11603,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11621,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11639,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11657,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11675,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11693,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11711,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11729,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11747,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11765,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11783,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11801,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11819,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11837,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11855,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11873,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11891,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11909,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11927,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11945,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11963,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11981,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +11999,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12017,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12035,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12053,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12071,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12089,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12107,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12125,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12143,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12161,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12179,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12197,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12215,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12233,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12251,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12269,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12287,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12305,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12323,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12341,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12359,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12377,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12395,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12413,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12431,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12449,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12467,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12485,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12503,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12521,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12539,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12557,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12575,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12593,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12611,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12629,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12647,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12665,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12683,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12701,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12719,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12737,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12755,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12773,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12791,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12809,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12827,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12845,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12863,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12881,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12899,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12917,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12935,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12953,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12971,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +12989,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13007,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13025,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13043,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13061,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13079,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13097,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13115,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13133,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13151,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13169,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13187,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13205,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13223,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13241,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13259,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13277,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13295,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13313,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13331,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13349,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13367,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13385,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13403,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13421,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13439,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13457,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13475,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13493,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13511,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13529,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13547,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13565,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13583,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13601,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13619,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13637,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13655,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13673,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13691,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13709,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13727,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13745,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13763,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13781,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13799,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13817,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13835,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13853,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13871,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13889,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13907,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13925,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13943,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13961,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13979,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +13997,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14015,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14033,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14051,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14069,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14087,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14105,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14123,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14141,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14159,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14177,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14195,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14213,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14231,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14249,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14267,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14285,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14303,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14321,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14339,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14357,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14375,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14393,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14411,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14429,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14447,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14465,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14483,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14501,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14519,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14537,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14555,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14573,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14591,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14609,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14627,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14645,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14663,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14681,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14699,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14717,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14735,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14753,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14771,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14789,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14807,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14825,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14843,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14861,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14879,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14897,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14915,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14933,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14951,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14969,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +14987,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15005,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15023,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15041,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15059,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15077,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15095,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15113,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15131,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15149,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15167,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15185,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15203,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15221,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15239,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15257,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15275,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15293,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15311,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15329,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15347,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15365,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15383,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15401,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15419,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15437,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15455,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15473,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15491,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15509,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15527,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15545,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15563,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15581,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15599,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15617,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15635,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15653,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15671,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15689,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15707,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15725,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15743,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15761,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15779,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15797,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15815,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15833,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15851,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15869,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15887,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15905,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15923,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15941,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15959,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15977,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +15995,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16013,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16031,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16049,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16067,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16085,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16103,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16121,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16139,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16157,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16175,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16193,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16211,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16229,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16247,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16265,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16283,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16301,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16319,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16337,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16355,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16373,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16391,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16409,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16427,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16445,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16463,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16481,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16499,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16517,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16535,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16553,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16571,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16589,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16607,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16625,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16643,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16661,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16679,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16697,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16715,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16733,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16751,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16769,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16787,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16805,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16823,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16841,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16859,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16877,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16895,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16913,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16931,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16949,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16967,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +16985,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17003,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17021,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17039,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17057,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17075,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17093,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17111,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17129,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17147,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17165,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17183,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17201,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17219,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17237,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17255,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17273,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17291,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17309,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17327,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "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 +17345,9 @@ routing sender@test.ex --------> r1 router <-------- local_part=sender domain=test.ex checking local_parts -sender in "sender"? +sender in local_parts? list element: sender - sender in "sender"? yes (matched "sender") + sender in local_parts? yes (matched "sender") calling r1 router r1 router called for sender@test.ex domain = test.ex @@ -18586,8 +18582,6 @@ sender@test.ex is a duplicate address: discarded sender@test.ex is a duplicate address: discarded >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> sender@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -18604,7 +18598,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 @@ -18618,6 +18612,7 @@ writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling sender@test.ex t2 transport returned OK for sender@test.ex post-process sender@test.ex (0) @@ -18652,6 +18647,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1238 (autoreply) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport succeeded search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ...:userx@test.ex t1 transport returned OK for >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ... post-process >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ... (0) diff --git a/test/stderr/0408 b/test/stderr/0408 index bbe75fb92..09ad23207 100644 --- a/test/stderr/0408 +++ b/test/stderr/0408 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -47,6 +48,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -70,8 +72,6 @@ body_linecount=0 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -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 @@ -139,8 +139,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -157,7 +155,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 @@ -169,6 +167,7 @@ writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling userx@test.ex t1 transport returned OK for userx@test.ex post-process userx@test.ex (0) diff --git a/test/stderr/0414 b/test/stderr/0414 index f1eaccfa7..05abad438 100644 --- a/test/stderr/0414 +++ b/test/stderr/0414 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -18,7 +19,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 +64,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 +96,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 +124,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 +150,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..28f6784a2 100644 --- a/test/stderr/0419 +++ b/test/stderr/0419 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -17,52 +18,56 @@ 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 "*") -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 -DNS lookup of other1.test.ex (A) succeeded -DNS lookup of other2.test.ex (A) using fakens -DNS lookup of other2.test.ex (A) succeeded -other1.test.ex in hosts_treat_as_local? - list element: +local_domains - start sublist local_domains - other1.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? - ╎list element: !mxt13.test.ex - ╎list element: !other1.test.ex - ╎other1.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? no (matched "!other1.test.ex") - end sublist local_domains -other1.test.ex in hosts_treat_as_local? no (end of list) -other2.test.ex in hosts_treat_as_local? - list element: +local_domains - start sublist local_domains - other2.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? - ╎list element: !mxt13.test.ex - ╎list element: !other1.test.ex - ╎list element: *.test.ex - ╎other2.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? yes (matched "*.test.ex") - end sublist local_domains - other2.test.ex in hosts_treat_as_local? yes (matched "+local_domains") +main lookup for domain + 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 + DNS lookup of other1.test.ex (A) succeeded + DNS lookup of other2.test.ex (A) using fakens + DNS lookup of other2.test.ex (A) succeeded + other1.test.ex in hosts_treat_as_local? + list element: +local_domains + start sublist local_domains + ╎other1.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? + ╎ list element: !mxt13.test.ex + ╎ list element: !other1.test.ex + ╎ other1.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? no (matched "!other1.test.ex") + end sublist local_domains + other1.test.ex in hosts_treat_as_local? no (end of list) + other2.test.ex in hosts_treat_as_local? + list element: +local_domains + start sublist local_domains + ╎other2.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? + ╎ list element: !mxt13.test.ex + ╎ list element: !other1.test.ex + ╎ list element: *.test.ex + ╎ other2.test.ex in "!mxt13.test.ex : !other1.test.ex : *.test.ex"? yes (matched "*.test.ex") + end sublist local_domains + other2.test.ex in hosts_treat_as_local? yes (matched "+local_domains") local host in host list - removed hosts: other2.test.ex V4NET.12.3.2 5 other2.test.ex V4NET.12.3.1 5 -fully qualified name = mxt13.test.ex -host_find_bydns yield = HOST_FOUND (3); returned hosts: - other1.test.ex V4NET.12.4.5 MX=4 + fully qualified name = mxt13.test.ex + host_find_bydns yield = HOST_FOUND (3); returned hosts: + other1.test.ex V4NET.12.4.5 MX=4 set transport smtp queued for smtp transport: local_part = k domain = mxt13.test.ex diff --git a/test/stderr/0426 b/test/stderr/0426 index a97713c59..b9ab6329f 100644 --- a/test/stderr/0426 +++ b/test/stderr/0426 @@ -1,15 +1,16 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: x@uppercase.test.ex @@ -20,16 +21,21 @@ 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 -uppercase.test.ex (MX resp) DNSSEC +main lookup for domain + 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 -uppercase.test.ex 127.0.0.1 mx=-1 sort=xx + fully qualified name = UpperCase.test.ex + uppercase.test.ex 127.0.0.1 mx=-1 sort=xx remote host address is the local host: uppercase.test.ex: configured to try delivery anyway set transport t1 queued for t1 transport: local_part = x @@ -47,23 +53,23 @@ After routing: x@UpperCase.test.ex Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile -locking TESTSUITE/spool/db/wait-t1.lockfile cmdlog: '220:EHLO:250:MAIL:250:RCPT:550:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1236 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: MAIN <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: CALLER@test.ex @@ -91,8 +97,8 @@ After routing: Deferred addresses: LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1236 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN Completed >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0432 b/test/stderr/0432 index 2722e6b34..2e0719788 100644 --- a/test/stderr/0432 +++ b/test/stderr/0432 @@ -28,6 +28,7 @@ MUNGED: ::1 will be omitted in what follows >>> accept: condition test succeeded in ACL "mail" >>> end of ACL "mail": ACCEPT Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -91,21 +92,22 @@ MUNGED: ::1 will be omitted in what follows get[host|ipnode]byname[2] looked up these IP addresses: name=127.0.0.1 address=127.0.0.1 Attempting full verification using callout - locking TESTSUITE/spool/db/callout.lockfile - locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR dbfn_read: key=y + dbfn_read: null return callout cache: no domain record found for y dbfn_read: key=x@y + dbfn_read: null return callout cache: no address record found for x@y EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database 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 @@ -126,18 +128,16 @@ cmd buf flush ddd bytes SMTP<< 220 OK SMTP(close)>> cmdlog: '220:EHLO:250:MAIL:250:RCPT:250:QUIT:220' - locking TESTSUITE/spool/db/callout.lockfile - locked TESTSUITE/spool/db/callout.lockfile - EXIM_DBOPEN: file dir flags=O_RDWR|O_CREAT + EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA - opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT - dbfn_write: key=y + opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR + dbfn_write: key=y datalen 40 wrote callout cache domain record for y: result=1 postmaster=0 random=0 - dbfn_write: key=x@y + dbfn_write: key=x@y datalen 16 wrote positive callout cache address record for x@y EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database ----------- end verify ------------ sender x@y verified ok accept: condition test succeeded in ACL "mail" @@ -150,6 +150,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -213,18 +214,18 @@ MUNGED: ::1 will be omitted in what follows get[host|ipnode]byname[2] looked up these IP addresses: name=127.0.0.1 address=127.0.0.1 Attempting full verification using callout - locking TESTSUITE/spool/db/callout.lockfile - locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR dbfn_read: key=y + dbfn_read: size 40 return callout cache: found domain record for y dbfn_read: key=x@y + dbfn_read: size 16 return callout cache: found address record for x@y callout cache: address record is positive EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database ----------- end verify ------------ sender x@y verified ok accept: condition test succeeded in ACL "mail" @@ -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/0433 b/test/stderr/0433 index 40eef044c..eff327b62 100644 --- a/test/stderr/0433 +++ b/test/stderr/0433 @@ -1,6 +1,7 @@ ******** SERVER ******** Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -23,6 +24,7 @@ p1240 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -46,6 +48,7 @@ p1241 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -70,6 +73,7 @@ p1242 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -94,6 +98,7 @@ p1243 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -119,6 +124,7 @@ p1244 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1238 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1239 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0435 b/test/stderr/0435 index 77e147981..2ae20bf65 100644 --- a/test/stderr/0435 +++ b/test/stderr/0435 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0437 b/test/stderr/0437 index a8142da54..29241cfd3 100644 --- a/test/stderr/0437 +++ b/test/stderr/0437 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: search_open: lsearch "TESTSUITE/aux-fixed/0437.ls" search_find: file="TESTSUITE/aux-fixed/0437.ls" key="spool" partial=-1 affix=NULL starflags=0 opts=NULL @@ -44,12 +45,13 @@ search_tidyup called creating new cache entry lookup yielded: file search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1235 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => userx R=r1 T=t1 LOG: MAIN Completed search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=p1235 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1236 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> search_tidyup called search_open: lsearch "TESTSUITE/aux-fixed/0437.ls" search_find: file="TESTSUITE/aux-fixed/0437.ls" @@ -78,12 +80,13 @@ search_tidyup called creating new cache entry lookup yielded: file search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => userx R=r1 T=t1 LOG: MAIN Completed search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=p1236 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 search_tidyup called diff --git a/test/stderr/0438 b/test/stderr/0438 index 58f8d8262..b63c3c556 100644 --- a/test/stderr/0438 +++ b/test/stderr/0438 @@ -1,6 +1,7 @@ ******** SERVER ******** Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -25,6 +26,7 @@ p1237 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -49,6 +51,7 @@ p1238 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0443 b/test/stderr/0443 index 295a87306..75884eae0 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 1364d55a2..095135bbf 100644 --- a/test/stderr/0450 +++ b/test/stderr/0450 @@ -1,10 +1,12 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -18,7 +20,8 @@ getting address for 127.0.0.1 checking retry status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -26,11 +29,13 @@ 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 Leaving t1 transport +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == userx@test.ex R=r1 T=t1 defer (dd): Connection refused >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -47,7 +52,8 @@ no host retry record no message retry record 127.0.0.1 [127.0.0.1]:1112 retry-status = usable delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -55,9 +61,10 @@ all IP addresses skipped or deferred at least one address updating wait-t1 database already listed for 127.0.0.1 Leaving t1 transport +>>>>>>>>>>>>>>>> Exim pid=p1238 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == userx@test.ex R=r1 T=t1 defer (dd): Connection refused ->>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0462 b/test/stderr/0462 index 470f2ed59..1f0f29e01 100644 --- a/test/stderr/0462 +++ b/test/stderr/0462 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +14,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 @@ -51,11 +54,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +69,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 @@ -87,11 +93,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +108,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..391589473 100644 --- a/test/stderr/0463 +++ b/test/stderr/0463 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -16,31 +17,37 @@ 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-xxxx, 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 "*") -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 -ten-1 (MX resp) DNSSEC -DNS lookup of ten-1 (A) using fakens -DNS lookup of ten-1 (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for ten-1-MX-xxxx, ttl 3000 + ten-1 (MX resp) DNSSEC + DNS lookup of ten-1 (A) using fakens + DNS lookup of ten-1 (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx domain changed to ten-1.test.ex rewriting header lines re-routed to x@ten-1.test.ex @@ -51,31 +58,37 @@ 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-xxxx, 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 "*") -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 -ten-1.test.ex (MX resp) DNSSEC -DNS lookup of ten-1.test.ex (A) using fakens -DNS lookup of ten-1.test.ex (A) succeeded -fully qualified name = ten-1.test.ex -ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx +main lookup for domain + 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 + faking res_search(MX) response length as 65535 + writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000 + ten-1.test.ex (MX resp) DNSSEC + DNS lookup of ten-1.test.ex (A) using fakens + DNS lookup of ten-1.test.ex (A) succeeded + fully qualified name = ten-1.test.ex + ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx set transport smtp queued for smtp transport: local_part = x domain = ten-1.test.ex diff --git a/test/stderr/0464 b/test/stderr/0464 index 1d2b22b96..aa91bff38 100644 --- a/test/stderr/0464 +++ b/test/stderr/0464 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -54,12 +55,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 +80,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 +100,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 +135,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 +160,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 +179,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/0465 b/test/stderr/0465 index 5bcd5a1ce..3b0d8418d 100644 --- a/test/stderr/0465 +++ b/test/stderr/0465 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "CALLER": cache not available @@ -34,6 +35,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> exim: bad -f address "abc@somewhere.": domain is malformed (trailing dot not allowed) Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 seeking password data for user "CALLER": cache not available @@ -108,6 +110,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 seeking password data for user "CALLER": cache not available 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..f58711b97 100644 --- a/test/stderr/0469 +++ b/test/stderr/0469 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -18,20 +19,24 @@ 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 "*") -DNS lookup of mxt1c.test.ex (MX) using fakens -DNS lookup of mxt1c.test.ex (MX) succeeded -DNS lookup of dontqualify (A) using fakens -DNS lookup of dontqualify (A) gave NO_DATA -returning DNS_NODATA -DNS: couldn't fake dnsa len -DNS: no SOA record found for neg-TTL - writing neg-cache entry for dontqualify-A-xxxx, ttl -1 -fully qualified name = mxt1c.test.ex -host_find_bydns yield = HOST_FIND_FAILED (0); returned hosts: - dontqualify MX=1 * +main lookup for domain + 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 + DNS lookup of dontqualify (A) gave NO_DATA + returning DNS_NODATA + DNS: couldn't fake dnsa len + DNS: no SOA record found for neg-TTL + writing neg-cache entry for dontqualify-A-xxxx, ttl -1 + fully qualified name = mxt1c.test.ex + host_find_bydns yield = HOST_FIND_FAILED (0); returned hosts: + dontqualify MX=1 * r1 router declined for x@mxt1c.test.ex no more routers search_tidyup called diff --git a/test/stderr/0471 b/test/stderr/0471 index a0950c7a3..a83a4921f 100644 --- a/test/stderr/0471 +++ b/test/stderr/0471 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -26886,6 +26887,7 @@ created log directory TESTSUITE/spool/log search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -27082,6 +27084,7 @@ LOG: MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -27278,6 +27281,7 @@ LOG: MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -27446,6 +27450,7 @@ LOG: MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -27609,6 +27614,7 @@ LOG: MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1239 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0473 b/test/stderr/0473 index 1e943d0e8..3639713ec 100644 --- a/test/stderr/0473 +++ b/test/stderr/0473 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +14,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 @@ -31,11 +34,13 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +49,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 d14e2dbd2..ee229ff93 100644 --- a/test/stderr/0476 +++ b/test/stderr/0476 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -18,7 +19,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 @@ -42,7 +44,7 @@ error for DATA ignored: pipelining is in use and there were no good recipients ok=1 send_quit=1 send_rset=1 continue_more=0 yield=0 first_address is NULL transport_check_waiting entered sequence=1 local_max=500 global_max=-1 -transport_check_waiting: TRUE +transport_check_waiting: TRUE (found 10HmaY-000000005vi-0000) SMTP>> RSET cmd buf flush ddd bytes SMTP(closed)<< @@ -52,6 +54,7 @@ cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:550:RSET' set_process_info: pppp delivering 10HmaX-000000005vi-0000: just tried 127.0.0.1 [127.0.0.1]:PORT_S for userx@test.ex: result OK Leaving t1 transport set_process_info: pppp delivering 10HmaX-000000005vi-0000 (just run t1 for userx@test.ex in subprocess) +>>>>>>>>>>>>>>>> Exim pid=p1235 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> set_process_info: pppp running queue: waiting for 10HmaX-000000005vi-0000 (pppp) set_process_info: pppp delivering 10HmaX-000000005vi-0000: waiting for a remote delivery subprocess to finish set_process_info: pppp delivering 10HmaX-000000005vi-0000 @@ -59,6 +62,7 @@ LOG: MAIN ** userx@test.ex R=r1 T=t1 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 550 NO set_process_info: pppp tidying up after delivering 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -68,6 +72,7 @@ writing data block fd=dddd size=sss timeout=0 LOG: MAIN <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -85,7 +90,8 @@ checking retry status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (CALLER@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 @@ -95,16 +101,17 @@ updating wait-t1 database added 10HmaZ-000000005vi-0000 to queue for 127.0.0.1 Leaving t1 transport set_process_info: pppp delivering 10HmaZ-000000005vi-0000 (just run t1 for CALLER@the.local.host.name in subprocess) +>>>>>>>>>>>>>>>> Exim pid=p1238 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> set_process_info: pppp delivering 10HmaZ-000000005vi-0000: waiting for a remote delivery subprocess to finish set_process_info: pppp delivering 10HmaZ-000000005vi-0000 LOG: MAIN == CALLER@the.local.host.name R=r1 T=t1 defer (dd): Connection refused set_process_info: pppp tidying up after delivering 10HmaZ-000000005vi-0000 ->>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1235 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1236 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> set_process_info: pppp running queue: waiting for children of pppp set_process_info: pppp running queue set_process_info: pppp running queue: 10HmaY-000000005vi-0000 @@ -124,13 +131,14 @@ updating wait-t1 database added 10HmaY-000000005vi-0000 to queue for 127.0.0.1 Leaving t1 transport set_process_info: pppp delivering 10HmaY-000000005vi-0000 (just run t1 for usery@test.ex in subprocess) +>>>>>>>>>>>>>>>> Exim pid=p1240 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> set_process_info: pppp running queue: waiting for 10HmaY-000000005vi-0000 (pppp) set_process_info: pppp delivering 10HmaY-000000005vi-0000: waiting for a remote delivery subprocess to finish set_process_info: pppp delivering 10HmaY-000000005vi-0000 LOG: retry_defer MAIN == usery@test.ex R=r1 T=t1 defer (-54): retry time not reached for any host for 'test.ex' set_process_info: pppp tidying up after delivering 10HmaY-000000005vi-0000 ->>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1241 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> set_process_info: pppp running queue: waiting for children of pppp set_process_info: pppp running queue LOG: queue_run MAIN diff --git a/test/stderr/0479 b/test/stderr/0479 index 64ff0acc0..dbcd3b5bd 100644 --- a/test/stderr/0479 +++ b/test/stderr/0479 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0483 b/test/stderr/0483 index c38d537ea..ff2b49beb 100644 --- a/test/stderr/0483 +++ b/test/stderr/0483 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: smtp_connection MAIN @@ -23,6 +24,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/0484 b/test/stderr/0484 index 22ea6ae65..5855e2c6f 100644 --- a/test/stderr/0484 +++ b/test/stderr/0484 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: -C, -D, -be or -bf forces real uid uid=CALLER_UID gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0487 b/test/stderr/0487 index e703c88d9..cb058603d 100644 --- a/test/stderr/0487 +++ b/test/stderr/0487 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "CALLER": cache not available @@ -79,6 +80,7 @@ SMTP>> 250 OK id=10HmaX-000000005vi-0000 search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 seeking password data for user "CALLER": cache not available @@ -104,8 +106,6 @@ body_linecount=1 message_linecount=9 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -141,8 +141,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -159,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 @@ -173,6 +171,7 @@ writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling userx@test.ex t1 transport returned OK for userx@test.ex post-process userx@test.ex (0) diff --git a/test/stderr/0489 b/test/stderr/0489 index 1c20a8b4b..80e21ae5d 100644 --- a/test/stderr/0489 +++ b/test/stderr/0489 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -32,6 +33,7 @@ LOG: MAIN created log directory TESTSUITE/spool/log >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -64,6 +66,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -96,6 +99,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -128,6 +132,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -160,6 +165,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -192,6 +198,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss >>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -224,6 +231,7 @@ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss >>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user diff --git a/test/stderr/0499 b/test/stderr/0499 index 8a3733a50..ebc043e8e 100644 --- a/test/stderr/0499 +++ b/test/stderr/0499 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -16,35 +17,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 7bb550c81..f3979815b 100644 --- a/test/stderr/0512 +++ b/test/stderr/0512 @@ -1,9 +1,12 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,7 +18,8 @@ no message retry record 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -27,7 +31,8 @@ no message retry record 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -39,7 +44,8 @@ no message retry record 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -51,7 +57,8 @@ no message retry record 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -60,11 +67,13 @@ all IP addresses skipped or deferred at least one address updating wait-t1 database already listed for 127.0.0.1 Leaving t1 transport +>>>>>>>>>>>>>>>> Exim pid=p1236 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == userx@myhost.test.ex R=r1 T=t1 defer (dd): Connection refused LOG: MAIN ** userx@myhost.test.ex: retry timeout exceeded Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -73,6 +82,7 @@ writing data block fd=dddd size=sss timeout=0 LOG: MAIN <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -81,20 +91,23 @@ LOG: MAIN => :blackhole: R=r0 LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1236 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 -qf >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,7 +119,8 @@ no message retry record 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -118,7 +132,8 @@ no message retry record 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaZ-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (userx@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 @@ -129,11 +144,13 @@ hosts_max_try_hardlimit reached: behave as if all hosts were tried updating wait-t1 database already listed for 127.0.0.1 Leaving t1 transport +>>>>>>>>>>>>>>>> Exim pid=p1240 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == userx@myhost.test.ex R=r1 T=t1 defer (dd): Connection refused LOG: MAIN ** userx@myhost.test.ex: retry timeout exceeded Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -142,6 +159,7 @@ writing data block fd=dddd size=sss timeout=0 LOG: MAIN <= <> R=10HmaZ-000000005vi-0000 U=EXIMUSER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -150,11 +168,11 @@ LOG: MAIN => :blackhole: R=r0 LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1240 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1239 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1242 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1241 (bounce-message) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1241 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1243 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1235 -qf >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0513 b/test/stderr/0513 index 12280cded..e76e994f2 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/0514 b/test/stderr/0514 index 31658bec3..bb94dd359 100644 --- a/test/stderr/0514 +++ b/test/stderr/0514 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -16,3 +17,5 @@ Non-recipients: recipients_count=1 **** SPOOL_IN - No additional fields body_linecount=1 message_linecount=0 +search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> 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/0529 b/test/stderr/0529 index 536804c4d..3ef6a56dc 100644 --- a/test/stderr/0529 +++ b/test/stderr/0529 @@ -1,21 +1,21 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: x@test.ex no domain retry record no address retry record -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: TESTSUITE/test-mail/rmbox @@ -26,8 +26,8 @@ After routing: Remote deliveries: Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile no retry data available +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> added retry item for T:TESTSUITE/test-mail/rmbox:x@test.ex: errno=-22 more_errno=dd flags=0 LOG: MAIN == TESTSUITE/test-mail/rmbox R=r1 T=t1 defer (-22): mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/rmbox) @@ -37,7 +37,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: TESTSUITE/test-mail/rmbox -locking TESTSUITE/spool/db/retry.lockfile retry for T:TESTSUITE/test-mail/rmbox:x@test.ex = *@test.ex -22 0 failing_interval=ttt message_age=ttt Writing retry data for T:TESTSUITE/test-mail/rmbox:x@test.ex @@ -48,17 +47,16 @@ end of retry processing >>>>>>>>>>>>>>>> Exim pid=p1236 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: x@test.ex no domain retry record no address retry record -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: TESTSUITE/test-mail/rmbox >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -68,7 +66,6 @@ After routing: Remote deliveries: Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile retry record exists: age=ttt (max 1w) time to retry = tttt expired = 0 retry time not reached: checking ultimate address timeout @@ -84,7 +81,7 @@ Deferred addresses: TESTSUITE/test-mail/rmbox: no retry items x@test.ex: no retry items end of retry processing ->>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0543 b/test/stderr/0543 index 5df9df63b..f43aa63fe 100644 --- a/test/stderr/0543 +++ b/test/stderr/0543 @@ -1,10 +1,10 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@domain1 unique = userx@domain1 @@ -31,15 +31,13 @@ After routing: userx@domain1 Failed addresses: Deferred addresses: -locking TESTSUITE/spool/db/retry.lockfile -locking TESTSUITE/spool/db/wait-smtp.lockfile cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:DATA:354:.:250:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1235 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => userx@domain1 R=smarthost T=smtp H=thisloop.test.ex [127.0.0.1] C="250 OK" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1235 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> -locking TESTSUITE/spool/db/retry.lockfile +>>>>>>>>>>>>>>>> Exim pid=p1236 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: usery@domain1 unique = usery@domain1 @@ -52,7 +50,7 @@ After routing: Failed addresses: Deferred addresses: usery@domain1 ->>>>>>>>>>>>>>>> Exim pid=p1236 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0544 b/test/stderr/0544 index 3e5fbe13e..1f7e29bd4 100644 --- a/test/stderr/0544 +++ b/test/stderr/0544 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -17,331 +18,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} @@ -350,6 +351,7 @@ LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -361,12 +363,10 @@ try option router_home_directory try option set try option transport try option unseen -try option unseen try option router_home_directory try option set try option transport try option unseen -try option unseen try option multi_domain try option multi_domain try option max_parallel @@ -377,6 +377,7 @@ try option return_path ├───expanded: $domain ╰─────result: domain1.ex ╰──(tainted) +>>>>>>>>>>>>>>>> Exim pid=p1236 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == userx@domain1.ex R=smarthost T=smtp defer (-1): first-pass only routing due to -odqs, queue_smtp_domains or control=queue LOG: MAIN @@ -434,6 +435,7 @@ try option delay_warning_condition >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -487,6 +489,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 +503,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 +518,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,7 +532,8 @@ 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 ->>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0545 b/test/stderr/0545 index 94f313af8..0f7a71a32 100644 --- a/test/stderr/0545 +++ b/test/stderr/0545 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -18,26 +19,30 @@ 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 "*") -DNS lookup of alias-eximtesthost (MX) using fakens -DNS lookup of alias-eximtesthost (MX) succeeded -CNAME found: change to eximtesthost.test.ex -DNS lookup of eximtesthost.test.ex (MX) using fakens -DNS lookup of eximtesthost.test.ex (MX) gave NO_DATA -returning DNS_NODATA -faking res_search(MX) response length as 65535 - writing neg-cache entry for eximtesthost.test.ex-MX-xxxx, ttl 3000 -alias-eximtesthost (MX resp) DNSSEC -DNS lookup of alias-eximtesthost (A) using fakens -DNS lookup of alias-eximtesthost (A) succeeded -CNAME found: change to eximtesthost.test.ex -DNS lookup of eximtesthost.test.ex (A) using fakens -DNS lookup of eximtesthost.test.ex (A) succeeded +main lookup for domain + 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 + DNS lookup of eximtesthost.test.ex (MX) using fakens + DNS lookup of eximtesthost.test.ex (MX) gave NO_DATA + returning DNS_NODATA + faking res_search(MX) response length as 65535 + writing neg-cache entry for eximtesthost.test.ex-MX-xxxx, ttl 3000 + alias-eximtesthost (MX resp) DNSSEC + DNS lookup of alias-eximtesthost (A) using fakens + DNS lookup of alias-eximtesthost (A) succeeded + CNAME found: change to eximtesthost.test.ex + DNS lookup of eximtesthost.test.ex (A) using fakens + DNS lookup of eximtesthost.test.ex (A) succeeded local host found for non-MX address -fully qualified name = alias-eximtesthost.test.ex -eximtesthost.test.ex ip4.ip4.ip4.ip4 mx=-1 sort=xx + fully qualified name = alias-eximtesthost.test.ex + eximtesthost.test.ex ip4.ip4.ip4.ip4 mx=-1 sort=xx domain changed to alias-eximtesthost.test.ex rewriting header lines re-routed to userx@alias-eximtesthost.test.ex @@ -50,21 +55,25 @@ 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 "*") -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 -DNS lookup of eximtesthost.test.ex (MX): using cached value DNS_NODATA -DNS lookup of alias-eximtesthost.test.ex (A) using fakens -DNS lookup of alias-eximtesthost.test.ex (A) succeeded -CNAME found: change to eximtesthost.test.ex -DNS lookup of eximtesthost.test.ex (A) using fakens -DNS lookup of eximtesthost.test.ex (A) succeeded +main lookup for domain + 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 + DNS lookup of eximtesthost.test.ex (MX): using cached value DNS_NODATA + DNS lookup of alias-eximtesthost.test.ex (A) using fakens + DNS lookup of alias-eximtesthost.test.ex (A) succeeded + CNAME found: change to eximtesthost.test.ex + DNS lookup of eximtesthost.test.ex (A) using fakens + DNS lookup of eximtesthost.test.ex (A) succeeded local host found for non-MX address -fully qualified name = alias-eximtesthost.test.ex -eximtesthost.test.ex ip4.ip4.ip4.ip4 mx=-1 sort=xx + fully qualified name = alias-eximtesthost.test.ex + eximtesthost.test.ex ip4.ip4.ip4.ip4 mx=-1 sort=xx remote host address is the local host: alias-eximtesthost.test.ex: configured to try delivery anyway set transport smtp queued for smtp transport: local_part = userx @@ -78,6 +87,7 @@ routed by dns router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -97,26 +107,30 @@ 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 "*") -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 -DNS lookup of eximtesthost.test.ex (MX) using fakens -DNS lookup of eximtesthost.test.ex (MX) gave NO_DATA -returning DNS_NODATA -faking res_search(MX) response length as 65535 - writing neg-cache entry for eximtesthost.test.ex-MX-xxxx, ttl 3000 -alias-eximtesthost.test.ex (MX resp) DNSSEC -DNS lookup of alias-eximtesthost.test.ex (A) using fakens -DNS lookup of alias-eximtesthost.test.ex (A) succeeded -CNAME found: change to eximtesthost.test.ex -DNS lookup of eximtesthost.test.ex (A) using fakens -DNS lookup of eximtesthost.test.ex (A) succeeded +main lookup for domain + 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 + DNS lookup of eximtesthost.test.ex (MX) using fakens + DNS lookup of eximtesthost.test.ex (MX) gave NO_DATA + returning DNS_NODATA + faking res_search(MX) response length as 65535 + writing neg-cache entry for eximtesthost.test.ex-MX-xxxx, ttl 3000 + alias-eximtesthost.test.ex (MX resp) DNSSEC + DNS lookup of alias-eximtesthost.test.ex (A) using fakens + DNS lookup of alias-eximtesthost.test.ex (A) succeeded + CNAME found: change to eximtesthost.test.ex + DNS lookup of eximtesthost.test.ex (A) using fakens + DNS lookup of eximtesthost.test.ex (A) succeeded local host found for non-MX address -fully qualified name = alias-eximtesthost.test.ex -eximtesthost.test.ex ip4.ip4.ip4.ip4 mx=-1 sort=xx + fully qualified name = alias-eximtesthost.test.ex + eximtesthost.test.ex ip4.ip4.ip4.ip4 mx=-1 sort=xx remote host address is the local host: alias-eximtesthost.test.ex: configured to try delivery anyway set transport smtp queued for smtp transport: local_part = userx diff --git a/test/stderr/0554 b/test/stderr/0554 index 4e6690afb..25bba511d 100644 --- a/test/stderr/0554 +++ b/test/stderr/0554 @@ -1,8 +1,8 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: x@y @@ -16,10 +16,10 @@ After routing: Failed addresses: Deferred addresses: 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 cmdlog: '220:EHLO:250:MAIL:250:RCPT:451:QUIT+:250' +>>>>>>>>>>>>>>>> Exim pid=p1235 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> reading retry information for R:x@y: from subprocess added retry item LOG: MAIN @@ -29,7 +29,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: x@y -locking TESTSUITE/spool/db/retry.lockfile retry for R:x@y: = * 0 0 failing_interval=ttt message_age=ttt Writing retry data for R:x@y: @@ -38,10 +37,10 @@ Writing retry data for R:x@y: end of retry processing >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -locking TESTSUITE/spool/db/retry.lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: x@y no domain retry record @@ -57,13 +56,12 @@ After routing: Failed addresses: Deferred addresses: 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=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' +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> reading retry information for R:x@y from subprocess existing delete item dropped added delete item @@ -84,7 +82,6 @@ LOG: MAIN Processing retry items Succeeded addresses: x@y -locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:x@y: deleted retry information for R:x@y deleted retry information for R:y @@ -93,4 +90,4 @@ Deferred addresses: end of retry processing LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0563 b/test/stderr/0563 index e20d7cc93..8ce12a2e5 100644 --- a/test/stderr/0563 +++ b/test/stderr/0563 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -17,7 +18,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 +27,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/0575 b/test/stderr/0575 index c1bc66ab6..ad89f09be 100644 --- a/test/stderr/0575 +++ b/test/stderr/0575 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/0578 b/test/stderr/0578 index d804df43b..67739d428 100644 --- a/test/stderr/0578 +++ b/test/stderr/0578 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +14,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,15 +32,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,15 +59,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +86,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 @@ -73,11 +97,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +112,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 @@ -111,11 +138,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: smtp_connection MAIN SMTP connection from root +test in helo_lookup_domains? no (end of list) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying bad@localhost >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -132,11 +161,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +176,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 @@ -169,11 +201,13 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user LOG: smtp_connection MAIN SMTP connection from root +test in helo_lookup_domains? no (end of list) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Verifying ok@localhost >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -189,11 +223,14 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +239,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 @@ -234,11 +272,14 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1241 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -254,11 +295,14 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1242 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +311,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,15 +336,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,15 +364,26 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +392,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,17 +409,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,17 +437,28 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +467,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,17 +484,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,17 +512,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +541,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,15 +572,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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,15 +601,23 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +626,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,15 +651,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +679,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,15 +697,26 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +725,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,15 +749,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +777,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,15 +795,25 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +822,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,15 +846,27 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +875,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 @@ -712,11 +899,18 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1256 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +919,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,15 +944,29 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +976,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,17 +994,30 @@ 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 SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1258 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +1027,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 @@ -825,11 +1049,19 @@ LOG: smtp_connection MAIN SMTP connection from root D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1259 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +1070,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,15 +1097,26 @@ 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 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config 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 +1125,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..0be237c7e 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..6a801a299 100644 --- a/test/stderr/0609 +++ b/test/stderr/0609 @@ -1,6 +1,7 @@ ******** SERVER ******** Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -19,6 +20,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 +41,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/0620 b/test/stderr/0620 index 8b59ca9a6..147ad3067 100644 --- a/test/stderr/0620 +++ b/test/stderr/0620 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -73,6 +74,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys diff --git a/test/stderr/0623 b/test/stderr/0623 index bb517b859..3786f7168 100644 --- a/test/stderr/0623 +++ b/test/stderr/0623 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -17,7 +19,8 @@ getting address for 127.0.0.1 checking retry status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -58,16 +61,19 @@ 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 all IP addresses skipped or deferred at least one address Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1236 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == tempreject@test.ex R=client T=send_to_server defer (-46) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after end of data: 451 Service not available >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -83,7 +89,8 @@ 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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -120,20 +127,23 @@ ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:300:.:QUIT+:550:221' Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1239 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN ** permreject@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after end of data: 550 content rejected LOG: MAIN permreject@test.ex: error ignored LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -149,7 +159,8 @@ 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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -190,7 +201,8 @@ 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 all IP addresses skipped or deferred at least one address Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1242 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == permreject@test.ex R=client T=send_to_server defer (-18) H=127.0.0.1 [127.0.0.1]: Remote host closed connection in response to end of data ->>>>>>>>>>>>>>>> Exim pid=p1239 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1241 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0628 b/test/stderr/0628 index 5424c5664..e033ceae2 100644 --- a/test/stderr/0628 +++ b/test/stderr/0628 @@ -25,6 +25,7 @@ 01:01:01 p1237 LOG: smtp_connection MAIN 01:01:01 p1237 SMTP connection from (test.ex) [127.0.0.1] D=qqs closed by QUIT 01:01:01 p1239 Exim version x.yz uid=EXIM_UID gid=EXIM_GID pid=p1239 D=fff9ffff +01:01:01 p1239 Hints DB: 01:01:01 p1239 macros_trusted overridden to true by whitelisting 01:01:01 p1239 changed uid/gid: forcing real = effective 01:01:01 p1239 uid=uuuu gid=EXIM_GID pid=p1239 @@ -52,8 +53,6 @@ 01:01:01 p1239 DSN: set orcpt: flags: 0x0 01:01:01 p1239 Delivery address list: 01:01:01 p1239 dest@test.ex -01:01:01 p1239 locking TESTSUITE/spool/db/retry.lockfile -01:01:01 p1239 locked TESTSUITE/spool/db/retry.lockfile 01:01:01 p1239 EXIM_DBOPEN: file dir flags=O_RDONLY 01:01:01 p1239 returned from EXIM_DBOPEN: (nil) 01:01:01 p1239 failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -158,8 +157,6 @@ 01:01:01 p1241 DSN: set orcpt: flags: 0x0 01:01:01 p1241 Delivery address list: 01:01:01 p1241 dest2@test.ex -01:01:01 p1241 locking TESTSUITE/spool/db/retry.lockfile -01:01:01 p1241 locked TESTSUITE/spool/db/retry.lockfile 01:01:01 p1241 EXIM_DBOPEN: file dir flags=O_RDONLY 01:01:01 p1241 returned from EXIM_DBOPEN: (nil) 01:01:01 p1241 failed to open DB file TESTSUITE/spool/db/retry: No such file or directory 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..d7fac294a 100644 --- a/test/stderr/0632 +++ b/test/stderr/0632 @@ -1,6 +1,7 @@ ******** SERVER ******** Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -49,6 +50,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 +64,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 +146,350 @@ 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,350 @@ 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/0909 b/test/stderr/0909 index 730dc2c0a..3ba13b3b0 100644 --- a/test/stderr/0909 +++ b/test/stderr/0909 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -8,6 +9,7 @@ created log directory TESTSUITE/spool/log LOG: MAIN <= fred@myhost.test.ex U=root P=local-smtp S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -21,7 +23,8 @@ getting address for 127.0.0.1 checking retry status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 10HmaX-000000005vi-0000 to 127.0.0.1 [127.0.0.1] (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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -57,6 +60,7 @@ ok=1 send_quit=0 send_rset=0 continue_more=0 yield=0 first_address is NULL SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT+:QUIT+:250:250:250:221' Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1236 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => good@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1] L K C="250 OK chunked message data" LOG: MAIN @@ -66,6 +70,7 @@ LOG: smtp_connection MAIN SMTP connection from root D=q.qqqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -74,6 +79,7 @@ LOG: smtp_connection MAIN LOG: MAIN <= fred@myhost.test.ex U=root P=local-smtp S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -87,7 +93,8 @@ getting address for 127.0.0.1 checking retry status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -122,15 +129,17 @@ cmd buf flush ddd bytes (more expected) SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL:250:RCPT:250:BDAT+:250:QUIT+:221' Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1239 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => nopipe@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1] K C="250 OK chunked message data" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: smtp_connection MAIN SMTP connection from root D=q.qqqs closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -139,6 +148,7 @@ LOG: smtp_connection MAIN LOG: MAIN <= fred@myhost.test.ex U=root P=local-smtp S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -152,7 +162,8 @@ getting address for 127.0.0.1 checking retry status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 retry-status = usable delivering 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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -192,13 +203,15 @@ 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 all IP addresses skipped or deferred at least one address Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1242 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == tempreject@test.ex R=client T=send_to_server defer (-46) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 451 Service not available ->>>>>>>>>>>>>>>> Exim pid=p1239 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1241 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: smtp_connection MAIN SMTP connection from root D=q.qqqs closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -207,6 +220,7 @@ LOG: smtp_connection MAIN LOG: MAIN <= fred@myhost.test.ex U=root P=local-smtp S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -222,7 +236,8 @@ 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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -258,17 +273,19 @@ ok=0 send_quit=0 send_rset=1 continue_more=0 yield=0 first_address is NULL SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:BDAT+:QUIT+:250:250:550:221' Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1245 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN ** permreject@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 550 content rejected LOG: MAIN permreject@test.ex: error ignored LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1241 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1244 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: smtp_connection MAIN SMTP connection from root D=q.qqqs closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1243 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -277,6 +294,7 @@ LOG: smtp_connection MAIN LOG: MAIN <= fred@myhost.test.ex U=root P=local-smtp S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -292,7 +310,8 @@ 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 ... +connected SMTP<< 220 Server ready SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes @@ -332,9 +351,10 @@ 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 all IP addresses skipped or deferred at least one address Leaving send_to_server transport +>>>>>>>>>>>>>>>> Exim pid=p1248 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN == dataloss@test.ex R=client T=send_to_server defer (-18) H=127.0.0.1 [127.0.0.1]: Remote host closed connection in response to pipelined end of data ->>>>>>>>>>>>>>>> Exim pid=p1243 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1247 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: smtp_connection MAIN SMTP connection from root D=q.qqqs closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=p1242 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1246 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> 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..ef5f0b89f 100644 --- a/test/stderr/1006 +++ b/test/stderr/1006 @@ -1,47 +1,52 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -DNS lookup of mx46.test.ex (MX) using fakens -DNS lookup of mx46.test.ex (MX) succeeded + DNS lookup of mx46.test.ex (MX) using fakens + 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 -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 -DNS lookup of v6.test.ex (MX) using fakens -DNS lookup of v6.test.ex (MX) gave NO_DATA -returning DNS_NODATA -faking res_search(MX) response length as 65535 - writing neg-cache entry for v6.test.ex-MX-xxxx, ttl 3000 -DNS lookup of v6.test.ex (AAAA) succeeded -DNS lookup of v6.test.ex (A) using fakens -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 + DNS lookup of v6.test.ex (MX) using fakens + DNS lookup of v6.test.ex (MX) gave NO_DATA + returning DNS_NODATA + faking res_search(MX) response length as 65535 + writing neg-cache entry for v6.test.ex-MX-xxxx, ttl 3000 + DNS lookup of v6.test.ex (AAAA) succeeded + DNS lookup of v6.test.ex (A) using fakens + 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 >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -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 + 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 -DNS lookup of v6.test.ex (MX) gave NO_DATA -returning DNS_NODATA -faking res_search(MX) response length as 65535 - writing neg-cache entry for v6.test.ex-MX-xxxx, ttl 3000 -DNS lookup of v6.test.ex (A) using fakens -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 + DNS lookup of v6.test.ex (MX) using fakens + DNS lookup of v6.test.ex (MX) gave NO_DATA + returning DNS_NODATA + faking res_search(MX) response length as 65535 + writing neg-cache entry for v6.test.ex-MX-xxxx, ttl 3000 + DNS lookup of v6.test.ex (A) using fakens + 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/1007 b/test/stderr/1007 index ca46d25e6..aa1a3f048 100644 --- a/test/stderr/1007 +++ b/test/stderr/1007 @@ -1,6 +1,7 @@ ******** SERVER ******** Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -24,6 +25,7 @@ p1242 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -49,6 +51,7 @@ p1243 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -75,6 +78,7 @@ p1244 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -101,6 +105,7 @@ p1245 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -124,6 +129,7 @@ p1246 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1238 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1239 configuration file is TESTSUITE/test-config @@ -150,6 +156,7 @@ p1247 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1239 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1240 configuration file is TESTSUITE/test-config @@ -177,6 +184,7 @@ p1248 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DSERVER=se search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1240 (daemon) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1241 configuration file is TESTSUITE/test-config 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..d292a33a0 100644 --- a/test/stderr/1157 +++ b/test/stderr/1157 @@ -1,13 +1,18 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1234 -qqf ->>>>>>>>>>>>>>>> Exim pid=p1242 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1242 (transport) 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 +>>>>>>>>>>>>>>>> Exim pid=p1244 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1245 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1246 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1247 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +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 +26,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,18 +44,21 @@ 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) +>>>>>>>>>>>>>>>> Exim pid=p1248 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 Completed ->>>>>>>>>>>>>>>> Exim pid=p1245 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1249 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid SMTP|> MAIL FROM: SIZE=ssss - SMTP|> RCPT TO: + SMTP|> RCPT TO: SMTP>> DATA cmd buf flush ddd bytes SMTP<< 250 OK @@ -59,18 +68,20 @@ cmd buf flush ddd bytes SMTP<< 250 OK id=10HmbB-000000005vi-0000 SMTP(close)>> cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250' +>>>>>>>>>>>>>>>> Exim pid=p1251 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN - => userz@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=no C="250 OK id=10HmbB-000000005vi-0000" + => usery@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=no C="250 OK id=10HmbB-000000005vi-0000" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1246 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1250 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid SMTP|> MAIL FROM: SIZE=ssss - SMTP|> RCPT TO: + SMTP|> RCPT TO: SMTP>> DATA cmd buf flush ddd bytes SMTP<< 250 OK @@ -85,25 +96,31 @@ cmd buf flush ddd bytes (more expected) SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:QUIT+:250:221' +>>>>>>>>>>>>>>>> Exim pid=p1253 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN - => usery@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=no C="250 OK id=10HmbC-000000005vi-0000" + => userz@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=no C="250 OK id=10HmbC-000000005vi-0000" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1247 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1248 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1252 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1254 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1234 -qqf >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1235 -qqf ->>>>>>>>>>>>>>>> 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 +>>>>>>>>>>>>>>>> Exim pid=p1255 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1256 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1257 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1258 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1259 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1260 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +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 +134,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,18 +152,21 @@ 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) +>>>>>>>>>>>>>>>> Exim pid=p1261 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> 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 Completed ->>>>>>>>>>>>>>>> Exim pid=p1252 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1262 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid SMTP|> MAIL FROM: SIZE=ssss - SMTP|> RCPT TO: + SMTP|> RCPT TO: SMTP>> DATA cmd buf flush ddd bytes SMTP<< 250 OK @@ -155,18 +176,20 @@ cmd buf flush ddd bytes SMTP<< 250 OK id=10HmbH-000000005vi-0000 SMTP(close)>> cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250' +>>>>>>>>>>>>>>>> Exim pid=p1264 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN - => userc@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=no C="250 OK id=10HmbH-000000005vi-0000" + => userb@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=no C="250 OK id=10HmbH-000000005vi-0000" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1253 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1263 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user dropping to exim gid; retaining priv uid SMTP|> MAIL FROM: SIZE=ssss - SMTP|> RCPT TO: + SMTP|> RCPT TO: SMTP>> DATA cmd buf flush ddd bytes SMTP<< 250 OK @@ -181,25 +204,31 @@ cmd buf flush ddd bytes (more expected) SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:QUIT+:250:221' +>>>>>>>>>>>>>>>> Exim pid=p1266 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN - => userb@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=no C="250 OK id=10HmbI-000000005vi-0000" + => userc@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=no C="250 OK id=10HmbI-000000005vi-0000" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1254 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1255 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1265 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1267 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1235 -qqf >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid LOG: queue_run MAIN Start queue run: pid=p1236 -qqf ->>>>>>>>>>>>>>>> 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 +>>>>>>>>>>>>>>>> Exim pid=p1268 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1269 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1270 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1271 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1272 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1273 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +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 +242,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] @@ -241,12 +271,14 @@ cmd buf flush ddd bytes 250 HELP SMTP(close)>> cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250:EHLO:250-' +>>>>>>>>>>>>>>>> Exim pid=p1274 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => user_p@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=10HmbM-000000005vi-0000" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1259 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1275 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -254,6 +286,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] @@ -263,7 +296,7 @@ cmd buf flush ddd bytes 250-PIPELINING 250 HELP SMTP|> MAIL FROM: SIZE=ssss - SMTP|> RCPT TO: + SMTP|> RCPT TO: SMTP>> DATA cmd buf flush ddd bytes SMTP<< 250 OK @@ -282,12 +315,14 @@ cmd buf flush ddd bytes 250 HELP SMTP(close)>> cmdlog: 'STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250:EHLO:250-' +>>>>>>>>>>>>>>>> Exim pid=p1277 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN - => user_r@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=10HmbN-000000005vi-0000" + => user_q@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=10HmbN-000000005vi-0000" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1260 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1276 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -295,6 +330,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] @@ -304,7 +340,7 @@ cmd buf flush ddd bytes 250-PIPELINING 250 HELP SMTP|> MAIL FROM: SIZE=ssss - SMTP|> RCPT TO: + SMTP|> RCPT TO: SMTP>> DATA cmd buf flush ddd bytes SMTP<< 250 OK @@ -317,11 +353,12 @@ cmd buf flush ddd bytes SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> cmdlog: 'STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221' +>>>>>>>>>>>>>>>> Exim pid=p1279 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN - => user_q@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=10HmbO-000000005vi-0000" + => user_r@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=10HmbO-000000005vi-0000" LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1261 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1278 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: queue_run MAIN End queue run: pid=p1236 -qqf >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> 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/2035 b/test/stderr/2035 index 66f4d48b6..920205672 100644 --- a/test/stderr/2035 +++ b/test/stderr/2035 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: 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 +19,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] @@ -40,6 +43,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -73,11 +77,12 @@ cmd buf flush ddd bytes (more expected) SMTP(close)>> cmdlog: 'DATA:354:.:250:QUIT+:221' Leaving t1 transport +>>>>>>>>>>>>>>>> Exim pid=p1238 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => userb@test.ex R=client T=t1 H=127.0.0.1 [127.0.0.1]:PORT_D X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmaY-000000005vi-0000" LOG: MAIN Completed >>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1238 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> ******** SERVER ******** diff --git a/test/stderr/2135 b/test/stderr/2135 index 66f4d48b6..920205672 100644 --- a/test/stderr/2135 +++ b/test/stderr/2135 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: 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 +19,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] @@ -40,6 +43,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -73,11 +77,12 @@ cmd buf flush ddd bytes (more expected) SMTP(close)>> cmdlog: 'DATA:354:.:250:QUIT+:221' Leaving t1 transport +>>>>>>>>>>>>>>>> Exim pid=p1238 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => userb@test.ex R=client T=t1 H=127.0.0.1 [127.0.0.1]:PORT_D X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmaY-000000005vi-0000" LOG: MAIN Completed >>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1238 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1239 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>> ******** SERVER ******** diff --git a/test/stderr/2200 b/test/stderr/2200 index 7f1722497..70972b0c0 100644 --- a/test/stderr/2200 +++ b/test/stderr/2200 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -24,6 +25,7 @@ dropping to exim gid; retaining priv uid search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user search_tidyup called diff --git a/test/stderr/2201 b/test/stderr/2201 index cc1a37aed..eb37f80cb 100644 --- a/test/stderr/2201 +++ b/test/stderr/2201 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 seeking password data for user "CALLER": cache not available @@ -21,15 +22,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 +41,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 +58,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 +79,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 +98,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 +112,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-xxxx, ttl 3000 creating new cache entry lookup failed -unknown in "dnsdb;unknown"? no (end of list) +unknown in local_parts? no (end of list) r1 router skipped: local_parts mismatch --------> r2 router <-------- local_part=unknown domain=test.ex checking domains -test.ex in "dnsdb;test.ex"? +test.ex in domains? list element: dnsdb;test.ex search_open: dnsdb "NULL" cached open @@ -134,9 +135,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 +149,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 @@ -167,6 +168,7 @@ routed by r2 router search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -212,6 +214,7 @@ search_tidyup called ******** SERVER ******** Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -231,6 +234,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..f9c7704ca 100644 --- a/test/stderr/2202 +++ b/test/stderr/2202 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -48,15 +49,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-xxxx, ttl -1 creating new cache entry lookup failed host in "+ignore_unknown : *.cioce.test.again.dns : cioce.test.again.dns : "? @@ -64,13 +65,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 +83,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-xxxx, 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 @@ -105,6 +110,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -140,27 +146,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-xxxx, 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-xxxx, 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..8bfaf1c92 100644 --- a/test/stderr/2600 +++ b/test/stderr/2600 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -110,7 +111,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" @@ -136,6 +137,7 @@ dropping to exim gid; retaining priv uid search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -193,7 +195,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 +236,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" @@ -264,6 +266,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -321,7 +324,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 +365,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" @@ -392,6 +395,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -449,7 +453,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 +489,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" @@ -509,6 +513,7 @@ LOG: smtp_connection MAIN search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -557,6 +562,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DOPT=y -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1239 configuration file is TESTSUITE/test-config @@ -580,8 +586,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@myhost.test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -628,8 +632,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@myhost.test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -667,6 +669,7 @@ writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1240 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling userx@myhost.test.ex t1 transport returned OK for userx@myhost.test.ex post-process userx@myhost.test.ex (0) @@ -700,6 +703,7 @@ search_tidyup called search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -716,6 +720,7 @@ dropping to exim gid; retaining priv uid search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1241 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -732,6 +737,7 @@ dropping to exim gid; retaining priv uid search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1242 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -740,6 +746,7 @@ dropping to exim gid; retaining priv uid search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1243 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid diff --git a/test/stderr/2610 b/test/stderr/2610 index 1dde7606f..e0326a6a7 100644 --- a/test/stderr/2610 +++ b/test/stderr/2610 @@ -2,6 +2,7 @@ ### wait for db startup, set password on the root user ### create testdb and extra users Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -244,6 +245,7 @@ close MYSQL connection: ip4.ip4.ip4.ip4:1223/test/root close MYSQL connection: 127.0.0.1:PORT_N/test/root >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> 01:01:01 p1235 Exim version x.yz uid=CALLER_UID gid=CALLER_GID pid=p1235 D=fff9ffff +01:01:01 p1235 Hints DB: 01:01:01 p1235 macros_trusted overridden to true by whitelisting 01:01:01 p1235 changed uid/gid: forcing real = effective 01:01:01 p1235 uid=uuuu gid=CALLER_GID pid=p1235 @@ -574,7 +576,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 +614,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 +654,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 +695,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" @@ -727,6 +729,7 @@ close MYSQL connection: 127.0.0.1:PORT_N/test/root 01:01:01 p1235 close MYSQL connection: 127.0.0.1:PORT_N/test/root 01:01:01 p1235 >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -781,6 +784,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -804,8 +808,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: ph10@myhost.test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -873,8 +875,6 @@ search_tidyup called close MYSQL connection: 127.0.0.1:PORT_N/test/root >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> ph10@myhost.test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -918,6 +918,7 @@ writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called close MYSQL connection: 127.0.0.1:PORT_N/test/root +>>>>>>>>>>>>>>>> Exim pid=p1238 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling ph10@myhost.test.ex t1 transport returned OK for ph10@myhost.test.ex post-process ph10@myhost.test.ex (0) diff --git a/test/stderr/2620 b/test/stderr/2620 index a32994c26..6446d6912 100644 --- a/test/stderr/2620 +++ b/test/stderr/2620 @@ -2,6 +2,7 @@ WARNING: enabling "trust" authentication for local connections initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -98,7 +99,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 +112,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" @@ -226,6 +227,7 @@ close PGSQL connection: (TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER close PGSQL connection: localhost:PORT_N/test/CALLER >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config @@ -356,7 +358,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 +379,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 +402,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 +435,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 +553,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 +569,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 +592,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 +625,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" @@ -652,6 +654,7 @@ search_tidyup called close PGSQL connection: localhost:PORT_N/test/CALLER >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -700,6 +703,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -723,8 +727,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: CALLER@myhost.test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -773,8 +775,6 @@ search_tidyup called close PGSQL connection: localhost:PORT_N/test/CALLER >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> CALLER@myhost.test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -814,6 +814,7 @@ writing data block fd=dddd size=sss timeout=0 appendfile yields 0 with errno=dd more_errno=dd search_tidyup called close PGSQL connection: localhost:PORT_N/test/CALLER +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling CALLER@myhost.test.ex t1 transport returned OK for CALLER@myhost.test.ex post-process CALLER@myhost.test.ex (0) @@ -847,6 +848,7 @@ search_tidyup called search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid diff --git a/test/stderr/3000 b/test/stderr/3000 index c95336931..b04a15086 100644 --- a/test/stderr/3000 +++ b/test/stderr/3000 @@ -1,5 +1,6 @@ 1999-03-02 09:44:33 this is a warning at TESTSUITE/aux-fixed/3000.pl line 25. Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys diff --git a/test/stderr/3201 b/test/stderr/3201 index 0098e6e4f..70d48576b 100644 --- a/test/stderr/3201 +++ b/test/stderr/3201 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -44,6 +45,7 @@ LOG: connection_reject MAIN REJECT search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config 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..1dfb873e8 100644 --- a/test/stderr/3210 +++ b/test/stderr/3210 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -18,8 +19,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 +40,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..d6d923d6b 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 "*") ->>> test.again.dns in dns_again_means_nonexist? no (option unset) +>>> 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 "*") ->>> test.again.dns in dns_again_means_nonexist? no (option unset) +>>> 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/3212 b/test/stderr/3212 index f9f556d30..a7f4de90e 100644 --- a/test/stderr/3212 +++ b/test/stderr/3212 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: -C, -D, -be or -bf forces real uid uid=CALLER_UID gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config diff --git a/test/stderr/3400 b/test/stderr/3400 index c8b9ba1e2..915c6e8f1 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,17 +665,22 @@ 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) Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 seeking password data for user "CALLER": cache not available 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..f90265149 100644 --- a/test/stderr/4052 +++ b/test/stderr/4052 @@ -1,9 +1,11 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@the.local.host.name U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -29,8 +31,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 @@ -65,6 +68,7 @@ ok=1 send_quit=0 send_rset=0 continue_more=0 yield=0 first_address is NULL SMTP(close)>> cmdlog: 'EHLO|:MAIL|:RCPT|:DATA:220:250-:250:250:354:.:QUIT+:250:220' Leaving smtp transport +>>>>>>>>>>>>>>>> Exim pid=p1243 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => extchange@test.ex R=client T=smtp H=127.0.0.1 [127.0.0.1] L* C="250 message accepted" LOG: MAIN diff --git a/test/stderr/4510 b/test/stderr/4510 index fae0093b7..3b73b82f0 100644 --- a/test/stderr/4510 +++ b/test/stderr/4510 @@ -1,14 +1,17 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: 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 @@ -56,6 +59,7 @@ cmd buf flush ddd bytes (more expected) SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> cmdlog: '220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT+:250:221' +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d@test.ex R=client T=send_to_server H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] DKIM=test.ex:sel_bad C="250 OK id=10HmbN-000000005vi-0000" LOG: MAIN diff --git a/test/stderr/4530 b/test/stderr/4530 index 05f5a0468..0484105f5 100644 --- a/test/stderr/4530 +++ b/test/stderr/4530 @@ -1,14 +1,17 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: 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 +25,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] @@ -67,6 +71,7 @@ cmd buf flush ddd bytes SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221' +>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>> LOG: MAIN => d@test.ex R=client T=send_to_server H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes DKIM=test.ex:sel_bad C="250 OK id=10HmbL-000000005vi-0000" LOG: MAIN diff --git a/test/stderr/4802 b/test/stderr/4802 index 25abeaef6..72a915d0b 100644 --- a/test/stderr/4802 +++ b/test/stderr/4802 @@ -1,20 +1,22 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -DNS lookup of mx-sec-a-aa.test.ex (MX) using fakens -DNS lookup of mx-sec-a-aa.test.ex (MX) succeeded -DNS lookup of a-aa.test.ex (A) using fakens -DNS lookup of a-aa.test.ex (A) succeeded + DNS lookup of mx-sec-a-aa.test.ex (MX) using fakens + DNS lookup of mx-sec-a-aa.test.ex (MX) succeeded + DNS lookup of a-aa.test.ex (A) using fakens + DNS lookup of a-aa.test.ex (A) succeeded DNS lookup of a-aa.test.ex (A/AAAA) requested AD, but got AA >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -DNS lookup of mx-aa-a-sec.test.ex (MX) using fakens -DNS lookup of mx-aa-a-sec.test.ex (MX) succeeded -DNS lookup of mx-aa-a-sec.test.ex (MX) requested AD, but got AA -DNS lookup of a-sec.test.ex (A) using fakens -DNS lookup of a-sec.test.ex (A) succeeded + DNS lookup of mx-aa-a-sec.test.ex (MX) using fakens + DNS lookup of mx-aa-a-sec.test.ex (MX) succeeded + DNS lookup of mx-aa-a-sec.test.ex (MX) requested AD, but got AA + DNS lookup of a-sec.test.ex (A) using fakens + DNS lookup of a-sec.test.ex (A) succeeded >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/4803 b/test/stderr/4803 index 1f55809fa..c22fbdc7f 100644 --- a/test/stderr/4803 +++ b/test/stderr/4803 @@ -1,24 +1,26 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -DNS lookup of mx-sec-a-aa.test.ex (MX) using fakens -DNS lookup of mx-sec-a-aa.test.ex (MX) succeeded -DNS lookup of a-aa.test.ex (A) using fakens -DNS lookup of a-aa.test.ex (A) succeeded -DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) -DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) -DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) + DNS lookup of mx-sec-a-aa.test.ex (MX) using fakens + DNS lookup of mx-sec-a-aa.test.ex (MX) succeeded + DNS lookup of a-aa.test.ex (A) using fakens + DNS lookup of a-aa.test.ex (A) succeeded + DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) + DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) + DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -DNS lookup of mx-aa-a-sec.test.ex (MX) using fakens -DNS lookup of mx-aa-a-sec.test.ex (MX) succeeded -DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) -DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) -DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) -DNS lookup of a-sec.test.ex (A) using fakens -DNS lookup of a-sec.test.ex (A) succeeded + DNS lookup of mx-aa-a-sec.test.ex (MX) using fakens + DNS lookup of mx-aa-a-sec.test.ex (MX) succeeded + DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) + DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) + DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *)) + DNS lookup of a-sec.test.ex (A) using fakens + DNS lookup of a-sec.test.ex (A) succeeded >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/5000 b/test/stderr/5000 index 843b20242..7ff1d8f2d 100644 --- a/test/stderr/5000 +++ b/test/stderr/5000 @@ -1,10 +1,12 @@ 1999-03-02 09:44:33 10HmaX-000000005vi-0000 == userx@myhost.test.ex R=localuser T=maildir_tagged_appendfile defer (-1): Expansion of "${if eq{0}{1}{rhubarb}" (maildir_tag for maildir_tagged_appendfile transport) failed: syntax error in "if" item - "fail" expected Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -43,6 +45,7 @@ mailbox quota exceeded maildir: time since "new" directory modified = 10s Exim quota exceeded for tmp/dddddddddd.HddddddPddddd.myhost.test.ex appendfile yields 1 with errno=-22 more_errno=dd +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> maildir_taggedX_appendfile transport returned DEFER for userx@myhost.test.ex added retry item for T:userx@myhost.test.ex: errno=-22 more_errno=dd flags=0 LOG: MAIN diff --git a/test/stderr/5004 b/test/stderr/5004 index dd3ddcf1f..6ab926c43 100644 --- a/test/stderr/5004 +++ b/test/stderr/5004 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -49,6 +50,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -74,8 +76,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -112,8 +112,6 @@ r1 router generated TESTSUITE/test-mail routed by r1 router envelope to: userx@test.ex transport: - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -132,8 +130,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> TESTSUITE/test-mail <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -161,6 +157,7 @@ renaming temporary file renamed tmp/MAILDIR.mail.test.ex as new/MAILDIR.mail.test.ex appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1237 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling TESTSUITE/test-mail:userx@test.ex t1 transport returned OK for TESTSUITE/test-mail post-process TESTSUITE/test-mail (0) diff --git a/test/stderr/5005 b/test/stderr/5005 index d9041e69f..6620345bf 100644 --- a/test/stderr/5005 +++ b/test/stderr/5005 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -47,6 +48,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -70,8 +72,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: nofile@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -107,8 +107,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> nofile@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -124,7 +122,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 @@ -157,6 +155,7 @@ renaming temporary file renamed tmp/MAILDIR.myhost.test.ex as new/MAILDIR.myhost.test.ex appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling nofile@test.ex t1 transport returned OK for nofile@test.ex post-process nofile@test.ex (0) @@ -190,6 +189,7 @@ search_tidyup called search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1237 configuration file is TESTSUITE/test-config @@ -237,6 +237,7 @@ LOG: MAIN search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaY-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1238 configuration file is TESTSUITE/test-config @@ -260,8 +261,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -297,8 +296,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -314,7 +311,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 @@ -349,6 +346,7 @@ renaming temporary file renamed tmp/MAILDIR.myhost.test.ex as new/MAILDIR.myhost.test.ex appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling userx@test.ex t1 transport returned OK for userx@test.ex post-process userx@test.ex (0) @@ -382,6 +380,7 @@ search_tidyup called search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1240 configuration file is TESTSUITE/test-config @@ -429,6 +428,7 @@ LOG: MAIN search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaZ-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1241 configuration file is TESTSUITE/test-config @@ -452,8 +452,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -489,8 +487,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -506,7 +502,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|\..*)$ @@ -536,6 +532,7 @@ maildir: time since "new" directory modified = 10s Exim quota exceeded for tmp/dddddddddd.HddddddPddddd.myhost.test.ex appendfile yields 1 with errno=-22 more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1242 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned DEFER for userx@test.ex added retry item for T:userx@test.ex: errno=-22 more_errno=dd flags=0 post-process userx@test.ex (1) @@ -550,8 +547,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR @@ -564,13 +559,14 @@ Deferred addresses: userx@test.ex in "*"? yes (matched "*") retry for T:userx@test.ex = * 0 0 dbfn_read: key=T:userx@test.ex + dbfn_read: null return failing_interval=ttt message_age=ttt Writing retry data for T:userx@test.ex first failed=dddd last try=dddd next try=+86400 expired=0 errno=-22 more_errno=dd mailbox is full (MTA-imposed quota exceeded while writing to tmp/MAILDIR.myhost.test.ex) - dbfn_write: key=T:userx@test.ex + dbfn_write: key=T:userx@test.ex datalen 154 EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database end of retry processing delivery deferred: update_spool=1 header_rewritten=0 Writing spool header file: TESTSUITE/spool//input//hdr.10HmaZ-000000005vi-0000 @@ -584,6 +580,7 @@ search_tidyup called search_tidyup called >>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1243 configuration file is TESTSUITE/test-config @@ -631,6 +628,7 @@ LOG: MAIN search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmbA-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1244 configuration file is TESTSUITE/test-config @@ -654,8 +652,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY @@ -663,13 +659,16 @@ Delivery address list: Considering: userx@test.ex unique = userx@test.ex dbfn_read: key=R:test.ex + dbfn_read: null return dbfn_read: key=R:userx@test.ex + dbfn_read: null return dbfn_read: key=R:userx@test.ex: + dbfn_read: null return no domain retry record no address retry record userx@test.ex: queued for routing EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> routing userx@test.ex --------> r1 router <-------- @@ -695,16 +694,15 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY dbfn_read: key=T:userx@test.ex + dbfn_read: size 154 return retry record exists: age=ttt (max 1w) time to retry = tttt expired = 0 EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database search_tidyup called changed uid/gid: local delivery to userx transport=t1 uid=CALLER_UID gid=CALLER_GID pid=p1245 @@ -716,7 +714,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|\..*)$ @@ -733,6 +731,7 @@ maildir: time since "new" directory modified = 10s Exim quota exceeded for tmp/dddddddddd.HddddddPddddd.myhost.test.ex appendfile yields 1 with errno=-22 more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1245 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned DEFER for userx@test.ex added retry item for T:userx@test.ex: errno=-22 more_errno=dd flags=0 post-process userx@test.ex (1) @@ -747,8 +746,6 @@ Succeeded addresses: Failed addresses: Deferred addresses: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDWR returned from EXIM_DBOPEN: 0xAAAAAAAA opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR @@ -761,13 +758,14 @@ Deferred addresses: userx@test.ex in "*"? yes (matched "*") retry for T:userx@test.ex = * 0 0 dbfn_read: key=T:userx@test.ex + dbfn_read: size 154 return failing_interval=ttt message_age=ttt Writing retry data for T:userx@test.ex first failed=dddd last try=dddd next try=+86400 expired=0 errno=-22 more_errno=dd mailbox is full (MTA-imposed quota exceeded while writing to tmp/MAILDIR.myhost.test.ex) - dbfn_write: key=T:userx@test.ex + dbfn_write: key=T:userx@test.ex datalen 154 EXIM_DBCLOSE(0xAAAAAAAA) - closed hints database and lockfile + closed hints database end of retry processing delivery deferred: update_spool=1 header_rewritten=0 Writing spool header file: TESTSUITE/spool//input//hdr.10HmbA-000000005vi-0000 diff --git a/test/stderr/5006 b/test/stderr/5006 index 864a726f5..01e2ee923 100644 --- a/test/stderr/5006 +++ b/test/stderr/5006 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config @@ -47,6 +48,7 @@ created log directory TESTSUITE/spool/log search_tidyup called exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... +Hints DB: changed uid/gid: forcing real = effective uid=uuuu gid=EXIM_GID pid=p1235 configuration file is TESTSUITE/test-config @@ -70,8 +72,6 @@ body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@test.ex - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -107,8 +107,6 @@ After routing: search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- - locking TESTSUITE/spool/db/retry.lockfile - locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir flags=O_RDONLY returned from EXIM_DBOPEN: (nil) failed to open DB file TESTSUITE/spool/db/retry: No such file or directory @@ -124,7 +122,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 @@ -155,6 +153,7 @@ renaming temporary file renamed tmp/MAILDIR.myhost.test.ex as new/MAILDIR.myhost.test.ex appendfile yields 0 with errno=dd more_errno=dd search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> journalling userx@test.ex t1 transport returned OK for userx@test.ex post-process userx@test.ex (0) diff --git a/test/stderr/5008 b/test/stderr/5008 index 648ebd046..3a572fab1 100644 --- a/test/stderr/5008 +++ b/test/stderr/5008 @@ -1,10 +1,12 @@ Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -17,7 +19,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 @@ -32,6 +34,7 @@ writing data block fd=dddd size=sss timeout=0 renaming temporary file renamed tmp/MAILDIR.myhost.test.ex as new/MAILDIR.myhost.test.ex appendfile yields 0 with errno=dd more_errno=dd +>>>>>>>>>>>>>>>> Exim pid=p1236 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned OK for userx@test.ex LOG: MAIN => userx R=r1 T=t1 @@ -40,11 +43,13 @@ LOG: MAIN >>>>>>>>>>>>>>>> Exim pid=p1235 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config trusted user admin user @@ -57,7 +62,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 @@ -74,10 +79,11 @@ writing data block fd=dddd size=sss timeout=0 renaming temporary file renamed tmp/MAILDIR.myhost.test.ex as new/MAILDIR.myhost.test.ex appendfile yields 0 with errno=dd more_errno=dd +>>>>>>>>>>>>>>>> Exim pid=p1239 (delivery-local) terminating with rc=0 >>>>>>>>>>>>>>>> t1 transport returned OK for userx@test.ex LOG: MAIN => userx R=r1 T=t1 LOG: MAIN Completed ->>>>>>>>>>>>>>>> Exim pid=p1237 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> ->>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1238 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/5204 b/test/stderr/5204 index 6f3c13e10..d2f548258 100644 --- a/test/stderr/5204 +++ b/test/stderr/5204 @@ -1,6 +1,7 @@ LOG: MAIN remote host address is the local host: some.host (while routing <"ACCEPT hosts=localhost lookup=byname"@some.host>) Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -9,10 +10,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=/ @@ -22,6 +27,7 @@ q router declined for "DECLINE cannot route this one (DECLINE)"@some.host no more routers >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -30,10 +36,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=/ @@ -41,6 +51,7 @@ command wrote: FAIL cannot route this one (FAIL) q router forced address failure >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -49,10 +60,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=/ @@ -63,6 +78,7 @@ q router: defer for "ERROR cannot route this one (ERROR)"@some.host message: bad command yield: ERROR cannot route this one (ERROR) >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -71,10 +87,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=/ @@ -83,6 +103,7 @@ q router: defer for "DEFER cannot route this one (DEFER)"@some.host message: cannot route this one (DEFER) >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -91,10 +112,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=/ @@ -111,6 +136,7 @@ routed by q router host ten-1.test.ex [V4NET.0.0.1] >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -119,10 +145,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 +161,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 @@ -151,6 +182,7 @@ routed by s router host 127.0.0.1 [127.0.0.1] >>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -159,10 +191,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=/ @@ -171,6 +207,7 @@ q router: defer for "FREEZE cannot route this one (FREEZE)"@some.host message: cannot route this one (FREEZE) >>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid @@ -179,10 +216,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 +242,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 @@ -226,6 +269,7 @@ routed by pm router transport: null >>>>>>>>>>>>>>>> Exim pid=p1241 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: configuration file is TESTSUITE/test-config admin user host in hosts_connection_nolog? no (option unset) @@ -257,21 +301,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..b173280d1 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..9b4f0ff8a 100644 --- a/test/stderr/5410 +++ b/test/stderr/5410 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -72,15 +73,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 @@ -95,20 +96,19 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") try option transport try option unseen -try option unseen ----------- end verify ------------ 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 @@ -123,12 +123,12 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") 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: - connected +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 ├──────value: myhost.test.ex @@ -288,354 +288,352 @@ 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} @@ -658,6 +656,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -731,15 +730,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 @@ -754,20 +753,19 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") try option transport try option unseen -try option unseen ----------- end verify ------------ 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 @@ -782,12 +780,12 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") 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: - connected +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 ├──────value: myhost.test.ex @@ -897,354 +895,352 @@ 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} @@ -1267,6 +1263,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -1340,15 +1337,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 @@ -1363,20 +1360,19 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") try option transport try option unseen -try option unseen ----------- end verify ------------ 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 @@ -1391,12 +1387,12 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") 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: - connected +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 ├──────value: myhost.test.ex @@ -1506,354 +1502,352 @@ 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/5420 b/test/stderr/5420 index 3ee112b8c..caa9e0de0 100644 --- a/test/stderr/5420 +++ b/test/stderr/5420 @@ -1,4 +1,5 @@ Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -72,15 +73,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 @@ -95,20 +96,19 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") try option transport try option unseen -try option unseen ----------- end verify ------------ 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 @@ -123,12 +123,12 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") 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: - connected +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 ├──────value: myhost.test.ex @@ -288,354 +288,352 @@ 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} @@ -658,6 +656,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -731,15 +730,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 @@ -754,20 +753,19 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") try option transport try option unseen -try option unseen ----------- end verify ------------ 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 @@ -782,12 +780,12 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") 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: - connected +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 ├──────value: myhost.test.ex @@ -897,354 +895,352 @@ 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} @@ -1267,6 +1263,7 @@ LOG: smtp_connection MAIN SMTP connection from CALLER D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +Hints DB: environment after trimming: PATH= adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys @@ -1340,15 +1337,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 @@ -1363,20 +1360,19 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") try option transport try option unseen -try option unseen ----------- end verify ------------ 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 @@ -1391,12 +1387,12 @@ domain.com in "*"? domain.com in "*"? yes (matched "*") 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: - connected +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 ├──────value: myhost.test.ex @@ -1506,354 +1502,352 @@ 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/5820 b/test/stderr/5820 index 2dff7ec02..362fffd94 100644 --- a/test/stderr/5820 +++ b/test/stderr/5820 @@ -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/stderr/5840 b/test/stderr/5840 index 59e479de6..8da93ab49 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/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/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/0367 b/test/stdout/0367 index aa3af08c5..1f42f534a 100644 --- a/test/stdout/0367 +++ b/test/stdout/0367 @@ -32,14 +32,14 @@ DATA 354 More... Received: from CALLER by the.local.host.name with local (Exim x.yz) (envelope-from ) - id 10HmbA-000000005vi-0000 + id 10HmaY-000000005vi-0000 for userx@domain1; Tue, 2 Mar 1999 09:44:33 +0000 -Message-Id: +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 -Test message 4 +Test message 2 . 250 OK MAIL FROM: @@ -68,14 +68,14 @@ DATA 354 More... Received: from CALLER by the.local.host.name with local (Exim x.yz) (envelope-from ) - id 10HmaY-000000005vi-0000 + id 10HmbA-000000005vi-0000 for userx@domain1; Tue, 2 Mar 1999 09:44:33 +0000 -Message-Id: +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 -Test message 2 +Test message 4 . 250 OK QUIT diff --git a/test/stdout/0440 b/test/stdout/0440 index 5a3fbed6c..59fb726c3 100644 --- a/test/stdout/0440 +++ b/test/stdout/0440 @@ -25,38 +25,38 @@ First message 250 OK MAIL FROM: 250 OK -RCPT TO: +RCPT TO: 250 OK DATA 354 OK Received: from CALLER by myhost.test.ex with local (Exim x.yz) (envelope-from ) - id 10HmaZ-000000005vi-0000 - for x3@y3; + id 10HmaY-000000005vi-0000 + for x2@y2; Tue, 2 Mar 1999 09:44:33 +0000 -Message-Id: +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 -Third message +Second message . 250 OK MAIL FROM: 250 OK -RCPT TO: +RCPT TO: 250 OK DATA 354 OK Received: from CALLER by myhost.test.ex with local (Exim x.yz) (envelope-from ) - id 10HmaY-000000005vi-0000 - for x2@y2; + id 10HmaZ-000000005vi-0000 + for x3@y3; Tue, 2 Mar 1999 09:44:33 +0000 -Message-Id: +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 -Second message +Third message . 250 OK QUIT diff --git a/test/stdout/0543 b/test/stdout/0543 index 9a99cddf2..c53cb62ad 100644 --- a/test/stdout/0543 +++ b/test/stdout/0543 @@ -1,5 +1,5 @@ +++++++++++++++++++++++++++ -** Failed to open database lock file TESTSUITE/spool/db/wait-smtp.lockfile: No such file or directory +** Failed to open hintsdb TESTSUITE/spool/db/wait-smtp: No such file or directory ******** SERVER ******** Listening on port 1224 ... 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/0637 b/test/stdout/0637 new file mode 100644 index 000000000..97d95ea6e --- /dev/null +++ b/test/stdout/0637 @@ -0,0 +1,20 @@ +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 +>>> mail from: +??? 503 HELO or EHLO required +<<< 503 HELO or EHLO required +>>> mail from: +??? 503 +<<< 503 HELO or EHLO required +>>> mail from: +??? 503 +<<< 503 HELO or EHLO required +>>> mail from: +??? 503- +<<< 503-HELO or EHLO required +??? 503 Too many +<<< 503 Too many syntax or protocol errors +???* +Expected EOF read +End of script diff --git a/test/stdout/0699 b/test/stdout/0699 index 885d57928..52c85a1d1 100644 --- a/test/stdout/0699 +++ b/test/stdout/0699 @@ -1,5 +1,5 @@ ### Check that delivery of old-format spoolfiles works -TTT sss 10HmaX-0005vi-00-H +TTT sss 10HmaX-0005vi-00 nulldeliver@test.ex ### Check that the format-mangler utility can downgrade spoolfiles @@ -7,7 +7,7 @@ TTT sss 10HmaX-000000005vi-0000 nulldeliver@test.ex exim_id_update exit code = 0 -TTT sss 10HmaY-0005vi-00-H +TTT sss 10HmaY-0005vi-00 nulldeliver@test.ex ### Check that the format-mangler utility can upgrade spoolfiles 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/2500 b/test/stdout/2500 index 6daaab658..dd6b4bdd6 100644 --- a/test/stdout/2500 +++ b/test/stdout/2500 @@ -15,6 +15,9 @@ > fail,subdir(..):FAIL > fail,subdir(.) :FAIL > fail,subdir(f) :FAIL +> ok,subdir(..d) :..subdir +> Failed: lookup of "2500.dir/regfile" gave DEFER: key for dsearch lookup contains a slash: 2500.dir/regfile +> ok.path: 2500.dir/regfile > > cachelayer tests > fail: FAIL diff --git a/test/stdout/4040 b/test/stdout/4040 new file mode 100644 index 000000000..836f57379 --- /dev/null +++ b/test/stdout/4040 @@ -0,0 +1,213 @@ +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 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [127.0.0.1] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250-WELLKNOWN +<<< 250-WELLKNOWN +??? 250 HELP +<<< 250 HELP +>>> WELLKNOWN acme-response +??? 250-SIZE +<<< 250-SIZE=24 +??? 250- +<<< 250-line+201+0A +??? 250- +<<< 250-line+202+0A +??? 250 +<<< 250 last+20line+0A +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script +Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected +??? 220 +<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [ip4.ip4.ip4.ip4] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250 HELP +<<< 250 HELP +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script +Connecting to 127.0.0.1 port 1226 ... connected +??? 220 +<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [127.0.0.1] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250-WELLKNOWN +<<< 250-WELLKNOWN +??? 250 HELP +<<< 250 HELP +>>> WELLKNOWN acme-response +??? 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 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [127.0.0.1] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250-WELLKNOWN +<<< 250-WELLKNOWN +??? 250 HELP +<<< 250 HELP +>>> WELLKNOWN badfile +??? 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 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [127.0.0.1] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250-WELLKNOWN +<<< 250-WELLKNOWN +??? 250 HELP +<<< 250 HELP +>>> WELLKNOWN acme-response +??? 250-SIZE +<<< 250-SIZE=24 +??? 250- +<<< 250-line+201+0A +??? 250- +<<< 250-line+202+0A +??? 250 +<<< 250 last+20line+0A +>>> 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 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [127.0.0.1] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250-WELLKNOWN +<<< 250-WELLKNOWN +??? 250 HELP +<<< 250 HELP +>>> WELLKNOWN sub/acme-response +??? 250-SIZE +<<< 250-SIZE=24 +??? 250- +<<< 250-line+201+0A +??? 250- +<<< 250-line+202+0A +??? 250 +<<< 250 last+20line+0A +>>> 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 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [127.0.0.1] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250-WELLKNOWN +<<< 250-WELLKNOWN +??? 250 HELP +<<< 250 HELP +>>> WELLKNOWN sub/badfile +??? 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 +>>> EHLO test +??? 250- +<<< 250-myhost.test.ex Hello test [127.0.0.1] +??? 250-SIZE +<<< 250-SIZE 52428800 +??? 250-LIMITS +<<< 250-LIMITS MAILMAX=1000 RCPTMAX=50000 +??? 250-8BITMIME +<<< 250-8BITMIME +??? 250-PIPELINING +<<< 250-PIPELINING +??? 250-WELLKNOWN +<<< 250-WELLKNOWN +??? 250 HELP +<<< 250 HELP +>>> WELLKNOWN ../badfile +??? 550 +<<< 550 Administrative prohibition +>>> QUIT +??? 221 +<<< 221 myhost.test.ex closing connection +End of script diff --git a/test/stdout/4714 b/test/stdout/4714 index f01983e47..8037405e7 100644 --- a/test/stdout/4714 +++ b/test/stdout/4714 @@ -42,16 +42,16 @@ Date: Tue, 2 Mar 1999 09:44:33 +0000 250 message 2 received MAIL FROM: 250 mail cmd 3 good -RCPT TO: +RCPT TO: 250 rcpt cmd good DATA 352 go ahead Received: from CALLER by the.local.host.name with local (Exim x.yz) (envelope-from ) - id 10HmaZ-000000005vi-0000; + id 10HmaY-000000005vi-0000; Tue, 2 Mar 1999 09:44:33 +0000 -Subject: message 3 -Message-Id: +Subject: message 2 +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 @@ -59,16 +59,16 @@ Date: Tue, 2 Mar 1999 09:44:33 +0000 250 message 3 received MAIL FROM: 250 mail cmd 4 good -RCPT TO: +RCPT TO: 250 rcpt cmd good DATA 352 go ahead Received: from CALLER by the.local.host.name with local (Exim x.yz) (envelope-from ) - id 10HmaZ-000000005vi-0000; + id 10HmaY-000000005vi-0000; Tue, 2 Mar 1999 09:44:33 +0000 -Subject: message 3 -Message-Id: +Subject: message 2 +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 @@ -76,16 +76,16 @@ Date: Tue, 2 Mar 1999 09:44:33 +0000 250 message 4 received MAIL FROM: 250 mail cmd 5 good -RCPT TO: +RCPT TO: 250 rcpt cmd good DATA 352 go ahead Received: from CALLER by the.local.host.name with local (Exim x.yz) (envelope-from ) - id 10HmaY-000000005vi-0000; + id 10HmaZ-000000005vi-0000; Tue, 2 Mar 1999 09:44:33 +0000 -Subject: message 2 -Message-Id: +Subject: message 3 +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 @@ -102,16 +102,16 @@ EHLO the.local.host.name 250 MAIL FROM: 250 mail cmd 1 good -RCPT TO: +RCPT TO: 250 rcpt cmd good DATA 352 go ahead Received: from CALLER by the.local.host.name with local (Exim x.yz) (envelope-from ) - id 10HmaY-000000005vi-0000; + id 10HmaZ-000000005vi-0000; Tue, 2 Mar 1999 09:44:33 +0000 -Subject: message 2 -Message-Id: +Subject: message 3 +Message-Id: From: CALLER_NAME Date: Tue, 2 Mar 1999 09:44:33 +0000 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