X-Git-Url: https://git.distorted.org.uk/~mdw/exim-config/blobdiff_plain/37a602dbb7e06f825e56825576ffd8231008a693..d90bdbcfdce8b632aa7fc386a82aac8788ccfe34:/vhost.m4 diff --git a/vhost.m4 b/vhost.m4 index 4ac677b..f98b904 100644 --- a/vhost.m4 +++ b/vhost.m4 @@ -30,7 +30,6 @@ m4_define(<:VHOST_FILTER:>, VHOST condition = DOMKV($2, {true}{false}) router_home_directory = DOMKV(home, {$value} fail) - more = ${if bool{DOMKV(final, {$value}{true})} {false} {true}} $1 = ${expand:DOMKV($2)}:>) m4_define(<:VHOST_USER:>, <:user = DOMKV(owner, {$value}{CONF_filter_user}) @@ -41,15 +40,16 @@ m4_define(<:VHOST_USER:>, SECTION(routers, route)m4_dnl ## If we're a front-end for some other domain, or we have special information -## about the domain, then pass stuff along as instructed. +## about the domain, then pass stuff along as instructed. The hack for the +## `transport' is very nasty; see the commentary for `smtp'. virtual_route: driver = manualroute self = fail VHOST condition = DOMKV(route, {true}{false}) - route_data = DOMKV(route) + route_data = <;DOMKV(route) same_domain_copy_routing = true - transport = smtp + transport = DOMKV(tls-min-dh-bits, {smtp_dhbits_$value}{smtp}) no_more SECTION(routers, virtual)m4_dnl @@ -63,5 +63,38 @@ FILTER_ROUTER(virtual_file, <:VHOST_FILTER(file, filter):>,, <: VHOST_USER:>) +SECTION(routers, virtual-spam)m4_dnl +## If we're dealing with a virtual host, see if we have special spam-limit +## rules to apply. +SPAMLIMIT_ROUTER(virtual_spam_limit_lookup) + VHOST + condition = DOMKV(spam-limit-file, {true}{false}) + SPAMLIMIT_LOOKUP(DOMKV(spam-limit-file), + $local_part, $domain, $sender_address) +SPAMLIMIT_ROUTER(virtual_spam_limit_userv) + VHOST + condition = DOMKV(spam-limit-userv, {true}{false}) + SPAMLIMIT_USERV(DOMKV(spam-limit-userv), + $local_part, $domain, $sender_address) + +SECTION(routers, virtual-tail)m4_dnl +## Last ditch effort for required local parts. This is a bit strange because +## we should only try this for `final' domains -- where we're not going to +## route using the system-wide rules -- and we want the router to decline if +## the local part isn't one of our required set so that routing as a whole +## fails. +virtual_endstop: + VHOST + condition = DOMKV(final, {$value}{true}) + driver = redirect + no_more + data = ${if match_local_part{$local_part}{+required} \ + {DOMKV(errors_to, \ + {$value} \ + {DOMKV(owner, \ + {$value} \ + {postmaster})})} \ + {:unknown:}} + DIVERT(null) ###----- That's all, folks --------------------------------------------------