[Pkg-exim4-users] conf.d/router/200*: redundant no_more + non accurate comment?
Regid Ichira
regid23 at yahoo.com
Tue May 22 16:36:48 UTC 2012
Consider the no_more director in the default smarthost router:
$ grep -A15 smarthost: /etc/exim4/conf.d/router/200_exim4-config_primary
smarthost:
debug_print = "R: smarthost for $local_part@$domain"
driver = manualroute
domains = ! +local_domains
transport = remote_smtp_smarthost
route_list = * DCsmarthost byname
host_find_failed = defer
same_domain_copy_routing = yes
no_more
.endif
# The "no_more" above means that all later routers are for
# domains in the local_domains list, i.e. just like Exim 3 directors.
$
I think the following quote applies here too. Therefore, the no_more director
has no effect. It is redundant. Conseaquently, it may be generally like the
Exim 3 director, but here it does not have that significance.
Does it warrants a bug report against exim4-config?
$ zgrep -A34 '* The manualroute router' /usr/share/doc/exim4-base/spec.txt.gz
* The manualroute router can be used to forward all external mail to a smart
host. If you have set up, in the main part of the configuration, a named
domain list that contains your local domains, for example:
domainlist local_domains = my.domain.example
You can arrange for all other domains to be routed to a smart host by
making your first router something like this:
smart_route:
driver = manualroute
domains = !+local_domains
transport = remote_smtp
route_list = * smarthost.ref.example
This causes all non-local addresses to be sent to the single host
smarthost.ref.example. If a colon-separated list of smart hosts is given,
they are tried in order (but you can use hosts_randomize to vary the order
each time). Another way of configuring the same thing is this:
smart_route:
driver = manualroute
transport = remote_smtp
route_list = !+local_domains smarthost.ref.example
There is no difference in behaviour between these two routers as they
stand. However, they behave differently if no_more is added to them. In the
first example, the router is skipped if the domain does not match the
domains precondition; the following router is always tried. If the router
runs, it always matches the domain and so can never decline. Therefore,
no_more would have no effect. In the second case, the router is never
skipped; it always runs. However, if it doesn't match the domain, it
declines. In this case no_more would prevent subsequent routers from
running.
$
More information about the Pkg-exim4-users
mailing list