Add $router_name and $transport_name variables. Bug 308.
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 6 Oct 2012 22:20:08 +0000 (23:20 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Tue, 25 Dec 2012 19:58:32 +0000 (19:58 +0000)
21 files changed:
doc/doc-docbook/spec.xfpt
doc/doc-txt/ChangeLog
doc/doc-txt/NewStuff
src/src/deliver.c
src/src/expand.c
src/src/globals.c
src/src/globals.h
src/src/route.c
test/confs/0143
test/confs/0227
test/confs/0325
test/confs/0410
test/log/0143
test/log/0227
test/rejectlog/0227
test/scripts/0000-Basic/0143
test/scripts/0000-Basic/0227
test/scripts/0000-Basic/0325
test/scripts/0000-Basic/0410
test/stderr/0143
test/stderr/0227

index e049936a32fd17e46c42fd5f02bf08582c75232e..0d258ec5efdf7c9eda4d05fa7a0aa17093198f70 100644 (file)
@@ -11750,6 +11750,13 @@ envelope sender.
 .vindex "&$return_size_limit$&"
 This is an obsolete name for &$bounce_return_size_limit$&.
 
+.vitem &$router_name$&
+.cindex "router" "name"
+.cindex "name" "of router"
+.vindex "&$router_name$&"
+During the running of a router, and any transport it runs, this variable
+contains the name of the router.
+
 .vitem &$runrc$&
 .cindex "return code" "from &%run%& expansion"
 .vindex "&$runrc$&"
@@ -12204,6 +12211,12 @@ This variable contains the numerical value of the local timezone, for example:
 This variable contains the UTC date and time in &"Zulu"& format, as specified
 by ISO 8601, for example: 20030221154023Z.
 
+.vitem &$transport_name$&
+.cindex "transport" "name"
+.cindex "name" "of transport"
+.vindex "&$transport_name$&"
+During the running of a transport, this variable contains its name.
+
 .vitem &$value$&
 .vindex "&$value$&"
 This variable contains the result of an expansion lookup, extraction operation,
@@ -16420,7 +16433,8 @@ be specified using &%condition%&.
 .option debug_print routers string&!! unset
 .cindex "testing" "variables in drivers"
 If this option is set and debugging is enabled (see the &%-d%& command line
-option), the string is expanded and included in the debugging output.
+option) or in address-testing mode (see the &%-bt%& command line option),
+the string is expanded and included in the debugging output.
 If expansion of the string fails, the error message is written to the debugging
 output, and Exim carries on processing.
 This option is provided to help with checking out the values of variables and
@@ -16429,6 +16443,7 @@ option appears not to be working, &%debug_print%& can be used to output the
 variables it references. The output happens after checks for &%domains%&,
 &%local_parts%&, and &%check_local_user%& but before any other preconditions
 are tested. A newline is added to the text if it does not end with one.
+The variable &$router_name$& contains the name of the router.
 
 
 
@@ -19589,6 +19604,8 @@ so on when debugging driver configurations. For example, if a &%headers_add%&
 option is not working properly, &%debug_print%& could be used to output the
 variables it references. A newline is added to the text if it does not end with
 one.
+The variables &$transport_name$ and &&$router_name$& contain the name of the
+transport and the router that called it.
 
 
 .option delivery_date_add transports boolean false
index bf8141351360d420e51c99178ac2ef0480f533c9..a8b2dfa12635bf451aa88c5b7ea429b693b88e3b 100644 (file)
@@ -80,6 +80,8 @@ JH/09 Add $headers_added variable, with content from use of ACL modifier
 JH/10 Add 8bitmime log_selector, for 8bitmime status on the received line.
       Pulled from Bugzilla 817 by Wolfgang Breyha.
 
+JH/11 Add $router_name and $transport_name variables.  Bugzilla 308.
+
 PP/11 SECURITY: protect DKIM DNS decoding from remote exploit.
       CVE-2012-5671
 
index 974ebebed82190b719b7d432e4453d0330582911..cf4014843bccccf8831b5f8c7310e343b4881e1f 100644 (file)
@@ -120,8 +120,15 @@ Version 4.82
 
 15. New 8bitmime status logging option for received messages.  Log field "M8S".
 
+
 16. New authenticated_sender logging option, adding to log field "A".
 
+17. New expansion variables $router_name and $transport_name.  Useful
+    particularly for debug_print as -bt commandline option does not
+    require privilege whereas -d does.  As a side-effect the router accepting
+    for verification is visible in ACLs.
+
+
 
 Version 4.80
 ------------
index 79d431b37307b79fbf24ba6c59d5b926b2a96335..55bfa0dd0839fe2b539623d026985ab280c03ae2 100644 (file)
@@ -2190,6 +2190,8 @@ while (addr_local != NULL)
 
   if (previously_transported(addr, FALSE)) continue;
 
+  transport_name = tp->name;
+
   /* There are weird cases where logging is disabled */
 
   disable_logging = tp->disable_logging;
@@ -3530,6 +3532,8 @@ for (delivery_count = 0; addr_remote != NULL; delivery_count++)
 
   if (previously_transported(addr, FALSE)) continue;
 
+  transport_name = tp->name;
+
   /* Force failure if the message is too big. */
 
   if (tp->message_size_limit != NULL)
index c7dc2742c770f5fbf6687d8f3329d036dc71242c..464c6f6fcde1a765b945879a1601c7d9cb425444 100644 (file)
@@ -571,6 +571,7 @@ static var_entry var_table[] = {
   { "reply_address",       vtype_reply,       NULL },
   { "return_path",         vtype_stringptr,   &return_path },
   { "return_size_limit",   vtype_int,         &bounce_return_size_limit },
+  { "router_name",         vtype_stringptr,   &router_name },
   { "runrc",               vtype_int,         &runrc },
   { "self_hostname",       vtype_stringptr,   &self_hostname },
   { "sender_address",      vtype_stringptr,   &sender_address },
@@ -667,6 +668,7 @@ static var_entry var_table[] = {
   { "tod_logfile",         vtype_todlf,       NULL },
   { "tod_zone",            vtype_todzone,     NULL },
   { "tod_zulu",            vtype_todzulu,     NULL },
+  { "transport_name",      vtype_stringptr,   &transport_name },
   { "value",               vtype_stringptr,   &lookup_value },
   { "version_number",      vtype_stringptr,   &version_string },
   { "warn_message_delay",  vtype_stringptr,   &warnmsg_delay },
index 616a2350d777dfe9c580f7e89027d2835f3c2763..43cf73d5be2c35f3ddffba055abefe972ddb1324 100644 (file)
@@ -1071,6 +1071,8 @@ router_instance  router_defaults = {
     NULL                       /* redirect_router */
 };
 
+uschar *router_name            = NULL;
+
 ip_address_item *running_interfaces = NULL;
 BOOL    running_in_test_harness = FALSE;
 
@@ -1305,6 +1307,7 @@ transport_instance  transport_defaults = {
 };
 
 int     transport_count;
+uschar *transport_name          = NULL;
 int     transport_newlines;
 uschar **transport_filter_argv  = NULL;
 int     transport_filter_timeout;
index 325a9161ddccce22a4aee23a1ff6c606cfaba2f1..06cbf312ba0cd9bf3708251be279903501fffbee 100644 (file)
@@ -657,6 +657,7 @@ extern uid_t   root_uid;               /* The uid for root */
 extern router_info routers_available[];/* Vector of available routers */
 extern router_instance *routers;       /* Chain of instantiated routers */
 extern router_instance router_defaults;/* Default values */
+extern uschar *router_name;            /* Name of router last started */
 extern BOOL    running_in_test_harness; /*TRUE when running_status is patched */
 extern ip_address_item *running_interfaces; /* Host's running interfaces */
 extern uschar *running_status;         /* Flag string for testing */
@@ -812,6 +813,7 @@ extern int     test_harness_load_avg;  /* For use when testing */
 extern int     thismessage_size_limit; /* Limit for this message */
 extern int     timeout_frozen_after;   /* Max time to keep frozen messages */
 extern BOOL    timestamps_utc;         /* Use UTC for all times */
+extern uschar *transport_name;         /* Name of transport last started */
 extern int     transport_count;        /* Count of bytes transported */
 extern int     transport_newlines;     /* Accurate count of number of newline chars transported */
 extern uschar **transport_filter_argv; /* For on-the-fly filtering */
index 32dbd60abd04ea207d7f988f56f61dd21bf207d5..f8bacf11be7f2acc90f9b67708927034a15dba70 100644 (file)
@@ -1512,6 +1512,7 @@ for (r = (addr->start_router == NULL)? routers : addr->start_router;
   int rc;
 
   DEBUG(D_route) debug_printf("--------> %s router <--------\n", r->name);
+  router_name = r->name;
 
   /* Reset any search error message from the previous router. */
 
index c853c80723a388e04ac7240f1aa3aafde3f7ea54..08eb3f66a556dccaa58cf91c263b92fc0f9fd702 100644 (file)
@@ -18,12 +18,12 @@ domainlist local_domains = test.ex : *.test.ex
 
 begin routers
 
-all:
+my_main_router:
   driver = manualroute
   domains = ! +local_domains
   route_list = * 127.0.0.1
   self = send
-  transport = smtp
+  transport = my_smtp
   no_more
 
 
@@ -31,10 +31,11 @@ all:
 
 begin transports
 
-smtp:
+my_smtp:
   driver = smtp
   interface = HOSTIPV4
   port = PORT_S
+  debug_print = transport_name <$transport_name> from router <$router_name>
 
 
 # End
index 17f49eb76fe85cd14e4f86d7a4f946b68dbcfbc9..2f2178185d1ed6fb7ddcd965fe9a2f04d4678db1 100644 (file)
@@ -26,21 +26,25 @@ check_recipient:
           control  = no_multiline_responses
   accept  hosts    = V4NET.0.0.4
   deny    hosts    = V4NET.0.0.1
+          log_message = ($sender_verify_failure) R:$router_name
          !verify   = sender/callout=no_cache
   deny    hosts    = V4NET.0.0.3
-          log_message = ($recipient_verify_failure)
+          log_message = ($recipient_verify_failure) R:$router_name
          !verify   = recipient/callout=no_cache
+  warn    logwrite = verify recipient used R:$router_name
   deny    hosts    = V4NET.0.0.5
-          log_message = ($sender_verify_failure)
+          log_message = ($sender_verify_failure) R:$router_name
          !verify   = sender/callout=no_cache/check_postmaster
   require verify   = sender
+          logwrite = verify sender used R:$router_name
   accept  domains  = +local_domains
   deny    message  = relay not permitted
 
 check_data:
   deny    hosts = V4NET.0.0.4
+          log_message = header_sender R:$router_name
          !verify = header_sender/callout=no_cache
-  accept
+  accept logwrite = verify header_sender used R:$router_name
 
 
 # ----- Routers -----
index f56b01bd7f13fd0ec7cab439bb9a475f46896532..5310dcc8dd5ae2d2f81c83900e0a141f18c37086 100644 (file)
@@ -41,7 +41,7 @@ r1:
   local_parts = lsearch;DIR/aux-fixed/TESTNUM.data
   data =
   debug_print = r1: \$domain_data = $domain_data\n\
-                r1: \$local_part_data = $local_part_data
+                $router_name: \$local_part_data = $local_part_data
 
 r2:
   driver = redirect
@@ -49,7 +49,7 @@ r2:
   local_parts = lsearch;DIR/aux-fixed/TESTNUM.data
   data =
   debug_print = r2: \$domain_data = $domain_data\n\
-                r2: \$local_part_data = $local_part_data
+                $router_name: \$local_part_data = $local_part_data
 
 r3:
   driver = redirect
@@ -57,7 +57,7 @@ r3:
   local_parts = +test_local_parts
   data =
   debug_print = r3: \$domain_data = $domain_data\n\
-                r3: \$local_part_data = $local_part_data
+                $router_name: \$local_part_data = $local_part_data
 
 r4:
   driver = accept
@@ -65,7 +65,7 @@ r4:
   local_parts = +test_local_parts
   transport = t1
   debug_print = r4: \$domain_data = $domain_data\n\
-                r4: \$local_part_data = $local_part_data
+                $router_name: \$local_part_data = $local_part_data
 
 
 # ----- Transports -----
index b8da514f479687283879ff08574e19c4e722253e..934d8a1e891a5b7a0dabbb72d4e3cb10a2285163 100644 (file)
@@ -22,7 +22,9 @@ begin ACL
 
 rcpt:
   accept verify = recipient
+        logwrite = rcpt R:$router_name
          verify = sender
+        logwrite = sndr R:$router_name
          condition = ${if eq {$address_data}{ADDRESS_DATA_STRING}{yes}{no}}
          condition = ${if eq {$sender_address_data}{SENDER_ADDRESS_DATA_STRING}{yes}{no}}
 
index c21deee7c652cdeeadaa285868684e7f2c04a9fb..1f177b3d352cb4615acfd3fa20d99427da009606 100644 (file)
@@ -1,3 +1,3 @@
 1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmaX-0005vi-00 => userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK"
+1999-03-02 09:44:33 10HmaX-0005vi-00 => userx@domain.com R=my_main_router T=my_smtp H=127.0.0.1 [127.0.0.1] C="250 OK"
 1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
index b976ec2c8c8bc057d731e54481fb118cf996443d..00d940b51dea45da963ac16d6deb1ff5b39ac88e 100644 (file)
@@ -1,20 +1,27 @@
+1999-03-02 09:44:33 verify recipient used R:all
+1999-03-02 09:44:33 verify sender used R:all
+1999-03-02 09:44:33 verify recipient used R:
+1999-03-02 09:44:33 verify sender used R:all
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 Unknown user
-1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient) R:all: Sender verify failed
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550 Error for <>
-1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: (mail) R:localhost1: Sender verify failed
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550-Multiline error for <>\n550 Here's the second line
-1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
-1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient): response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
-1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient): response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550-Recipient not liked on two lines\n550 Here's the second
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> rejected RCPT <z@test.ex>: (mail) R:localhost1: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient) R:all: response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient) R:all: response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550-Recipient not liked on two lines\n550 Here's the second
 1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@remote.domain>: Could not complete recipient verify callout
-1999-03-02 09:44:33 10HmaX-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
-1999-03-02 09:44:33 10HmaY-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
+1999-03-02 09:44:33 10HmaX-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: header_sender R:all: there is no valid sender in any header line
+1999-03-02 09:44:33 10HmaY-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: header_sender R:all: there is no valid sender in any header line
+1999-03-02 09:44:33 verify recipient used R:
+1999-03-02 09:44:33 verify sender used R:localhost1
 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: relay not permitted
+1999-03-02 09:44:33 verify recipient used R:
 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root sender verify fail for <ok@localhost1>: response to "RCPT TO:<postmaster@localhost1>" from 127.0.0.1 [127.0.0.1] was: 550 Don't like postmaster
-1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: (postmaster): Sender verify failed
-1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: (recipient): response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
+1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: (postmaster) R:localhost1: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: (recipient) R:lmtp: response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: response to "initial connection" from 127.0.0.1 [127.0.0.1] was: connection dropped
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused
index bc1480be71d853d0071585370d43fcff867e747b..f6225699272bf95341ecb6eaac9973e04c50c3db 100644 (file)
@@ -1,15 +1,15 @@
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 Unknown user
-1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient) R:all: Sender verify failed
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <uncheckable@localhost1>: response to "RCPT TO:<uncheckable@localhost1>" from 127.0.0.1 [127.0.0.1] was: 450 Temporary error
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550 Error for <>
-1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: (mail) R:localhost1: Sender verify failed
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550-Multiline error for <>\n550 Here's the second line
-1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
-1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient): response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
-1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient): response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550-Recipient not liked on two lines\n550 Here's the second
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> rejected RCPT <z@test.ex>: (mail) R:localhost1: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient) R:all: response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient) R:all: response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550-Recipient not liked on two lines\n550 Here's the second
 1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> temporarily rejected RCPT <z@remote.domain>: Could not complete recipient verify callout
-1999-03-02 09:44:33 10HmaX-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
+1999-03-02 09:44:33 10HmaX-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: header_sender R:all: there is no valid sender in any header line
 Envelope-from: <uncheckable@localhost1>
 Envelope-to: <z@remote.domain>
 P Received: from [V4NET.0.0.4] (ident=root)
@@ -18,7 +18,7 @@ P Received: from [V4NET.0.0.4] (ident=root)
        id 10HmaX-0005vi-00
        for z@remote.domain; Tue, 2 Mar 1999 09:44:33 +0000
 F From: abcd@x.y.z
-1999-03-02 09:44:33 10HmaY-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
+1999-03-02 09:44:33 10HmaY-0005vi-00 H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: header_sender R:all: there is no valid sender in any header line
 Envelope-from: <uncheckable@localhost1>
 Envelope-to: <z@remote.domain>
 P Received: from [V4NET.0.0.4] (ident=root)
@@ -29,8 +29,8 @@ P Received: from [V4NET.0.0.4] (ident=root)
 F From: abcd@x.y.z
 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: relay not permitted
 1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root sender verify fail for <ok@localhost1>: response to "RCPT TO:<postmaster@localhost1>" from 127.0.0.1 [127.0.0.1] was: 550 Don't like postmaster
-1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: (postmaster): Sender verify failed
-1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: (recipient): response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
+1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: (postmaster) R:localhost1: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: (recipient) R:lmtp: response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: response to "initial connection" from 127.0.0.1 [127.0.0.1] was: connection dropped
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost1> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
 1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <bad@localhost1>: could not connect to 127.0.0.1 [127.0.0.1]: Connection refused
index 41596d6b5bcd02e808ce908804a5cc284f6f3804..7ab54f154c207578d18d6001c6464bdf9033f21b 100644 (file)
@@ -1,4 +1,4 @@
-# smtp client "interface" option
+# smtp client "interface" option, $transport_name and $router_name
 need_ipv4
 #
 server PORT_S
index 7b091de4bf60f075e5f3f72524fbdbdd85919966..59adba788b85967c48458bac91f88b169ecd9a29 100644 (file)
@@ -1,4 +1,4 @@
-# callout verification (no caching)
+# callout verification (no caching) and $router_name
 need_ipv4
 #
 server PORT_S
index b2109f0960d1377efeaa40d8db1fa97ba3ec9aba..a81abd6bcdec58e1562ad2b05ae3a16e1168eec0 100644 (file)
@@ -1,4 +1,4 @@
-# $domain_data and $local_part_data
+# $domain_data, $local_part_data and $router_name
 exim -v -bt xxx@a.b.c
 ****
 exim -bh V4NET.0.0.0
index 5124845744820e91eda95c9fa2362e4fb114dca1..8d9c240eef8a2ada4728d07cc5d1faf3e7f85af4 100644 (file)
@@ -1,4 +1,4 @@
-# address_data in ACLs after verification
+# address_data and router_name in ACLs after verification
 exim -bs
 MAIL FROM:<oksender@y>
 rcpt to:<child@test.ex>
index 3373ded2e71084632a5a0b23b512f1610bb273fc..bcf7ecc823f2e77ca0b45138bd725fd7c7e950ef 100644 (file)
@@ -10,7 +10,8 @@ trusted user
 admin user
 >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>
 --------> userx@domain.com <--------
-smtp transport entered
+transport_name <my_smtp> from router <my_main_router>
+my_smtp transport entered
   userx@domain.com
 checking status of 127.0.0.1
 127.0.0.1 [127.0.0.1]:1111 status = usable
@@ -36,9 +37,9 @@ transport_check_waiting entered
   sequence=1 local_max=500 global_max=-1
 no messages waiting for 127.0.0.1
   SMTP>> QUIT
-Leaving smtp transport
+Leaving my_smtp transport
 LOG: MAIN
-  => userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK"
+  => userx@domain.com R=my_main_router T=my_smtp H=127.0.0.1 [127.0.0.1] C="250 OK"
 LOG: MAIN
   Completed
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
index 31f5b584d83ece2f41a648170deb0169ac9b1736..2530d7cd7ae9e080079f2dff89bf267480fc0dc6 100644 (file)
@@ -9,10 +9,18 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<ok@localhost>
   SMTP<< 250 OK
   SMTP>> QUIT
+LOG: MAIN
+  verify recipient used R:all
+LOG: MAIN
+  verify sender used R:all
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
   SMTP connection from root
+LOG: MAIN
+  verify recipient used R:
+LOG: MAIN
+  verify sender used R:all
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -29,7 +37,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
 LOG: MAIN REJECT
   H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 Unknown user
 LOG: MAIN REJECT
-  H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: Sender verify failed
+  H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient) R:all: Sender verify failed
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -61,7 +69,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
 LOG: MAIN REJECT
   H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable2@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550 Error for <>
 LOG: MAIN REJECT
-  H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
+  H=[V4NET.0.0.1] U=root F=<uncheckable2@localhost1> rejected RCPT <z@test.ex>: (mail) R:localhost1: Sender verify failed
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -77,7 +85,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
 LOG: MAIN REJECT
   H=[V4NET.0.0.1] U=root sender verify fail for <uncheckable@localhost1>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550-Multiline error for <>\n550 Here's the second line
 LOG: MAIN REJECT
-  H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> rejected RCPT <z@test.ex>: Sender verify failed
+  H=[V4NET.0.0.1] U=root F=<uncheckable@localhost1> rejected RCPT <z@test.ex>: (mail) R:localhost1: Sender verify failed
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -92,7 +100,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 550 Recipient not liked
   SMTP>> QUIT
 LOG: MAIN REJECT
-  H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient): response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
+  H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient) R:all: response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -108,7 +116,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
          550 Here's the second
   SMTP>> QUIT
 LOG: MAIN REJECT
-  H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient): response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550-Recipient not liked on two lines\n550 Here's the second
+  H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.domain>: (recipient) R:all: response to "RCPT TO:<z@remote.domain>" from 127.0.0.1 [127.0.0.1] was: 550-Recipient not liked on two lines\n550 Here's the second
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -131,7 +139,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 550 Not liked
   SMTP>> QUIT
 LOG: MAIN REJECT
-  H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
+  H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: header_sender R:all: there is no valid sender in any header line
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -146,11 +154,13 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 550 Not liked
   SMTP>> QUIT
 LOG: MAIN REJECT
-  H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: there is no valid sender in any header line
+  H=[V4NET.0.0.4] U=root F=<uncheckable@localhost1> rejected after DATA: header_sender R:all: there is no valid sender in any header line
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
   SMTP connection from root
+LOG: MAIN
+  verify recipient used R:
 Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
@@ -167,12 +177,16 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@localhost1>
   SMTP<< 250 OK
   SMTP>> QUIT
+LOG: MAIN
+  verify sender used R:localhost1
 LOG: MAIN REJECT
   H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: relay not permitted
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
   SMTP connection from root
+LOG: MAIN
+  verify recipient used R:
 Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 220 Server ready
   SMTP>> EHLO myhost.test.ex
@@ -192,7 +206,7 @@ Cutthrough cancelled by presence of postmaster verify
 LOG: MAIN REJECT
   H=[V4NET.0.0.5] U=root sender verify fail for <ok@localhost1>: response to "RCPT TO:<postmaster@localhost1>" from 127.0.0.1 [127.0.0.1] was: 550 Don't like postmaster
 LOG: MAIN REJECT
-  H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: (postmaster): Sender verify failed
+  H=[V4NET.0.0.5] U=root F=<ok@localhost1> rejected RCPT <z@remote.domain>: (postmaster) R:localhost1: Sender verify failed
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN
@@ -207,7 +221,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 550 Recipient not liked
   SMTP>> QUIT
 LOG: MAIN REJECT
-  H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: (recipient): response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
+  H=[V4NET.0.0.3] U=root F=<uncheckable@localhost1> rejected RCPT <z@remote.lmtp>: (recipient) R:lmtp: response to "RCPT TO:<z@remote.lmtp>" from 127.0.0.1 [127.0.0.1] was: 550 Recipient not liked
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 LOG: smtp_connection MAIN