Re: [exim] temporary variables in transports

Top Page
Delete this message
Reply to this message
Author: Jeremy Harris
Date:  
To: exim-users @ exim. org
Subject: Re: [exim] temporary variables in transports
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