Change how filtering routers work.
[exim-config] / vhost.m4
index 07ca79e..6a710cb 100644 (file)
--- a/vhost.m4
+++ b/vhost.m4
 ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 m4_define(<:VHOST:>,
-       <:domains = partial0-lsearch; CONF_sysconf_dir/domains.conf
+       <:domains = ${if exists{CONF_sysconf_dir/domains.conf} \
+                        {partial0-lsearch; CONF_sysconf_dir/domains.conf} \
+                        {}}
        condition = DOMKV($1):>)
 m4_define(<:VHOST_FILTER:>,
        <:FILTER_BASE
        VHOST(<:$1:>)
+       router_home_directory = DOMKV(home, {$value} fail)
+       more = ${if bool{DOMKV(final, {$value}{true})} {false} {true}}
        $2 = ${expand:DOMKV($1, {$value} fail)}:>)
 m4_define(<:VHOST_USER:>,
        <:user = DOMKV(owner, {$value}{CONF_filter_user})
@@ -51,19 +55,12 @@ SECTION(routers, virtual)m4_dnl
 ## Remap recipients according to the virtual host's instructions.  This must
 ## be done in two passes, so that we can identify the correct user's spam
 ## threshold during address verification.
-virtual_verify_data:
-       VHOST_FILTER(redirect, data)
-       FILTER_VERIFY
-virtual_verify_file:
-       VHOST_FILTER(filter, file)
-       FILTER_VERIFY
-
-virtual_filter_data:
-       VHOST_FILTER(redirect, data)
-       VHOST_USER
-virtual_filter_file:
-       VHOST_FILTER(filter, file)
-       VHOST_USER
+FILTER_ROUTER(virtual_data,
+       <:VHOST_FILTER(redirect, data):>,, <:
+       VHOST_USER:>)
+FILTER_ROUTER(virtual_file,
+       <:VHOST_FILTER(filter, file):>,, <:
+       VHOST_USER:>)
 
 DIVERT(null)
 ###----- That's all, folks --------------------------------------------------