[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