.cindex "line length" limit
This option sets the maximum line length, in bytes, that the transport
will send. Any messages with lines exceeding the given value
+(before a transport filter, if any)
will fail and a failure-DSN ("bounce") message will if possible be returned
to the sender.
The default value is that defined by the SMTP standards.
documentation, the error results by default in a no-match result for the
list. It is logged if the unknown_in_list log_selector is used.
+JH/10 Bug 3058: Ensure that a failing expansion in a router "set" option defers
+ the routing operation. Previously it would silently stop routing the
+ message.
+
Exim version 4.97
{
addr->message = string_sprintf("expansion of \"%s\" failed "
"in %s router: %s", ele, r->name, expand_string_message);
- return DEFER;
+ /* Caller will replace that for logging, if a DB lookup, to avoid exposing
+ passwords */
+ DEBUG(D_route) debug_printf("%s\n", addr->message);
+ if (!f.search_find_defer)
+ return f.search_find_defer ? DEFER : FAIL;
}
if (!(node = tree_search(*root, name)))
{
int yield = OK;
BOOL unseen;
-router_instance *r, *nextr;
-const uschar *old_domain = addr->domain;
+router_instance * r, * nextr;
+const uschar * old_domain = addr->domain;
HDEBUG(D_route)
{
for (r = addr->start_router ? addr->start_router : routers; r; r = nextr)
{
- uschar *error;
- struct passwd *pw = NULL;
+ uschar * error;
+ struct passwd * pw = NULL;
struct passwd pwcopy;
BOOL loop_detected = FALSE;
BOOL more;
router traversal. On the addr string they are held as a variable tree, so
as to maintain the post-expansion taints separate. */
- switch (set_router_vars(addr, r))
+ switch (rc = set_router_vars(addr, r))
{
case OK: break;
case PASS: continue; /* with next router */
- default: goto ROUTE_EXIT;
+ default: yield = rc; goto ROUTE_EXIT;
}
/* Finally, expand the address_data field in the router. Forced failure
1999-03-02 09:44:33 10HmaX-000000005vi-0000 <= CALLER@test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-000000005vi-0000 ** bad@test.ex R=bad: Temporary internal error
1999-03-02 09:44:33 10HmaX-000000005vi-0000 => b <a@test.ex> R=user T=local_delivery
+1999-03-02 09:44:33 10HmaY-000000005vi-0000 <= <> R=10HmaX-000000005vi-0000 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmaY-000000005vi-0000 => :blackhole: <CALLER@test.ex> R=dump_bounce
+1999-03-02 09:44:33 10HmaY-000000005vi-0000 Completed
1999-03-02 09:44:33 10HmaX-000000005vi-0000 Completed
Envelope-to: a@test.ex
Received: from CALLER by the.local.host.name with local (Exim x.yz)
(envelope-from <CALLER@test.ex>)
- id 10HmaX-000000005vi-0000
- for a@test.ex;
+ id 10HmaX-000000005vi-0000;
Tue, 2 Mar 1999 09:44:33 +0000
Subject: foo
Message-Id: <E10HmaX-000000005vi-0000@the.local.host.name>