Re: [EXIM] Perl enabled exim

Top Page
Delete this message
Reply to this message
Author: Nigel Metheringham
Date:  
To: Martin Hamilton
CC: exim-users
Subject: Re: [EXIM] Perl enabled exim

martin@??? said:
} Write a Perl based mail hub!

Well its an interesting thought which has crossed my mind more than once
(its actually slightly behind the perl news proxy on my list).


} The main problems would seem to be in the areas of process forking
} (multiplex across a pool of socket descriptors instead?)

well forking is not that bad at all - its a fork/exec which kills you and
with semi-compiled perl just about available you might well be able to cut
that down too.

} and
} permissions (we don't want Perl programs running as root).

I'm happier with perl running as root than I am about most C :-)

You could run user supplied stuff in a Safe environment.

} I'm
} thinking that a hypothetical Perl mail hub would be started by a
} wrapper program which immediately surrendered its privileges, and
} perhaps not even try to do its own local deliveries. There's no
} reason why the Internet mail gateway for (say) a whole organisation
} has to be the same program which actually delivers the messages into
} people's mailboxes.

This is moving the same way that the news model is going... feed systems
(Cyclone, diablo, nntpfeed) and reader systems (inn, Typhoon, DNews).

[this section is getting into random thought mode :-) ]
There is some interesting stuff you could do.... A message is pretty much
a perl object. There are things for saving object state to disk. You do
need multiple process access to an object if you are trying some of this
stuff.... and you need to make sure that things don't get dropped at
all....
I'm wondering if this is moving to the model proposed for smail 4 a couple
of years back, and that I think qmail uses (apologies if I have got qmail
wrong - its while since I poked inside), where you have a receipient
process that puts messages in the incoming queue, a dispatcher that takes
messages and routes them to output processes (or queues). This model's
purity is loused up by routing type data having limited life and so
something need to be passed back to the dispatcher after a time in the
output queues.


} Obviously this is just a very rough sketch so far. If anyone's
} interested in hacking some code, we could set up a mailing list...
} I'll probably have a go at writing it myself at some point in the
} future if nobody's beaten me to it, but don't hold your breath!

Its certainly an interesting idea. Whether it will be taken up and get
somewhere is a whole different issue.

    Nigel.
-- 
[ Nigel.Metheringham@???   -  Systems Software Engineer ]
[ Tel : +44 113 251 6012                   Fax : +44 113 234 6065 ]
[      Real life is but a pale imitation of a Dilbert strip       ]




--
*** Exim information can be found at http://www.exim.org/ ***