Tony Finch wrote:
> Exim should cache the domain mapping lookup to make it
> reasonably efficient.
>
> MAP_DOMAIN = ${lookup {$domain} lsearch {TABLES/domain_map} \
> {$value} {$domain} }
>
> MAP_USER = ${lookup {$local_part@MAP_DOMAIN} \
> lsearch {TABLES/aliases/MAP_DOMAIN} \
> {$value} {$local_part@MAP_DOMAIN} }
Note that the cache seems to get invalidated due to
a database connection drop between routing and transport,
and also as a result of a non-data-returning lookup
(e.g. an sql INSERT).
Wishlists:
- tell me I'm wrong!
- non-data-returning lookups to be ignored by the
cache, rather than causing a full invalidate
- Explicit, dynamically-created variables settable
and usable in routers and transports.
$address_data isn't quite enough, $acl_[cm][0-9]
get carried over from their final ACL values
and there's no way to change them.
In fact, nameable variables in ACLs too. I'm
running out with a mere twenty :)
Cheers,
Jeremy