Bug#865287: exim4-daemon-light: nomore than one rule option in a route_list rule

Erkki Lintunen ebirdie at iki.fi
Tue Jun 20 09:27:35 UTC 2017

Package: exim4-daemon-light
Version: 4.89-2+deb9u1
Severity: normal

Dear Maintainer,

I upgraded from Debian Jessie to Stretch, checked and merged a few new
config changes from the release to my near default exim4 config and
found out the new release did not work with my config.

I think my exim4 config isn't anything special. I have DCsmarthost set
to "mailhost::465 remote_smtps_smarthost", which get appended with a
route_list rule option "byname" in manualrouter config for smarthost.

By removing either rule option, ie. complete rules are either:

    * mailhost::465 remote_smtps_smarthost


    * mailhost::465 byname

exim4 accepts the rule (see below for detail not accepting a rule). My
mail setup works only with the first rule because the smarthost accepts
only legacy ssmtp alias smtps connections, but this behaviour of exim4
may break rules of others, when more than one rule option is needed. And
Exim documentation still says more than one rule option is allowed.


To me this looks like a regression bug. I checked both Debian and Exim
upstream changelogs. From the changelogs I couldn't spot direct changes
made either to route_list rule handling or to manualrouter between the
Debian releases.

Plase note: hostname of the smarthost obfuscated to "mailhost" and
email address to someone at example.com.

-- Bug reporter added additional information:
$ sudo exim4 -d+route -bt someone at example.com 2>&1 | tee \
$ cat exim4-debug-route.out
[skipping unnecessary output]
--------> smarthost router <--------
local_part=someone domain=example.com
checking domains
example.com in "@:localhost"? no (end of list)
example.com in "! +local_domains"? yes (end of list)
R: smarthost for someone at example.com
calling smarthost router
smarthost router called for someone at example.com
  domain = example.com
route_item = * mailhost::465 remote_smtps_smarthost byname
example.com in "*"? yes (matched "*")
original list of hosts = "mailhost::465" options =
remote_smtps_smarthost byname
expanded list of hosts = "mailhost::465" options =
remote_smtps_smarthost byname
  Error in smarthost router: unknown routing option or transport name
"remote_smtps_smarthost byname"
smarthost router: defer for someone at example.com
  message: error in router: unknown routing option or transport name
"remote_smtps_smarthost byname"
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=6619 terminating with rc=1 >>>>>>>>>>>>>>>>
someone at example.com cannot be resolved at this time: error in router: unknown
routing option or transport name "remote_smtps_smarthost byname"

-- Package-specific info:
Exim version 4.89 #2 built 14-Jun-2017 05:03:07
Copyright (c) University of Cambridge, 1995 - 2017
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2017
Berkeley DB: Berkeley DB 5.3.28: (September  9, 2013)
Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages DKIM DNSSEC Event OCSP PRDR SOCKS TCP_Fast_Open
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Configuration file is /var/lib/exim4/config.autogenerated
# /etc/exim4/update-exim4.conf.conf
# Edit this file and /etc/mailname by hand and execute update-exim4.conf
# yourself or use 'dpkg-reconfigure exim4-config'
# Please note that this is _not_ a dpkg-conffile and that automatic changes
# to this file might happen. The code handling this will honor your local
# changes, so this is usually fine, but will break local schemes that mess
# around with multiple versions of the file.
# update-exim4.conf uses this file to determine variable values to generate
# exim configuration macros for the configuration file.
# Most settings found in here do have corresponding questions in the
# Debconf configuration, but not all of them.
# This is a Debian specific file

dc_local_interfaces=' ; ::1'
dc_smarthost='mailhost::465 remote_smtps_smarthost'
# /etc/default/exim4

# 'combined' -	 one daemon running queue and listening on SMTP port
# 'no'       -	 no daemon running the queue
# 'separate' -	 two separate daemons
# 'ppp'      -   only run queue with /etc/ppp/ip-up.d/exim4.
# 'nodaemon' - no daemon is started at all.
# 'queueonly' - only a queue running daemon is started, no SMTP listener.
# setting this to 'no' will also disable queueruns from /etc/ppp/ip-up.d/exim4
# how often should we run the queue
# options common to quez-runner and listening daemon
# more options for the daemon/process running the queue (applies to the one
# started in /etc/ppp/ip-up.d/exim4, too.
# special flags given to exim directly after the -q. See exim(8)
# Options for the SMTP listener daemon. By default, it is listening on
# port 25 only. To listen on more ports, it is recommended to use
# -oX 25:587:10025 -oP /var/run/exim4/exim.pid

-- System Information:
Debian Release: 9.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages exim4-daemon-light depends on:
ii  debconf [debconf-2.0]  1.5.61
ii  exim4-base             4.89-2+deb9u1
ii  libc6                  2.24-11+deb9u1
ii  libdb5.3               5.3.28-12+b1
ii  libgnutls30            3.5.8-5+deb9u1
ii  libpcre3               2:8.39-3

exim4-daemon-light recommends no packages.

exim4-daemon-light suggests no packages.

-- debconf information:

More information about the Pkg-exim4-maintainers mailing list