Re: [exim] temporary variables in transports

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Philip Hazel
Date:  
À: Jeremy Harris
CC: exim-users @ exim. org
Sujet: Re: [exim] temporary variables in transports
On Mon, 7 Mar 2005, Jeremy Harris wrote:

> Note that the cache seems to get invalidated due to
> a database connection drop between routing and transport,


Correct. They run in different processes, and several transports may run
simultaneously. I did not want to get involved in dealing with one
connection (or open file for some lookups) being used by multiple
processes.

> Wishlists:
>
> - tell me I'm wrong!


Sorry, no can do. The "right" way to improve the situation is to
implement what has been suggested several times, namely a daemon that
"front ends" a number of databases and caches lookup values for multiple
processes.

> - non-data-returning lookups to be ignored by the
> cache, rather than causing a full invalidate


But that might mean that data in the cache (the data you've just updated
with your INSERT) is incorrect.

> - 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 :)


I think if we are to go down that road, there should be a radical
re-design of how it all works. People seem to want routing to be more of
a programming language than a set of semi-static values. Or perhaps
something like the queryprogram router could be implemented, using some
kind of interpreted language that doesn't require a separate process to
run in.... hmm .... we sort of have that already if you run a filter
file for each address .... but without all the power of the routers. But
one shouldn't invent yet more programming languages. A queryperl router?

Anyway, this all sounds like "Exim 5" to me, and I'm planning to retire
before then. :-)

-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book