Hi Aaron,

Here's a really basic, not yet working LMTP daemon. Mostly it's pop3.c,
pop3.h and pop3d.c with a little s/pop3?/lmtp/g magic.

Cool!

Entering DATA will cause the RCPT addresses to be looked up via
auth_check_user_ext() and say if they're valid or not. I haven't started working on the "real data" part (the one that actually accepts a message)
because I'm still working out which pieces of pipe.c and injector.c are
good, which parts need more abstraction, and which parts get junked.

If you need any 'inside' info on those subject, please let me know!

I do get some segfaults and weird behaviour. If someone could audit the
code following the case LMTP_MAIL, LMTP_RCPT and LMTP_DATA blocks in
lmtp.c I would very much appreciate it. What really bugs me, though, is
that a few of the problems are not consistently triggered :-\

I've looked at the code. One possible problem cause is that you're not correctly closing the case block for LMTP_MAIL (after the return should be another }). Since i'm now on my bed checking this i can't really sent you any patches :)

Time to hunt down those random state bits!

I hope that this might become a basis for the official LMTP daemon, but in
any event this is a lot of fun to write! Plus, the experience helps for
the next daemon I'm going to write, for the ManageSieve protocol :-)

Very nice. If you're writing more daemons Roel's server software (the one that handles clients connections, child births and stuff like that) should come in handy.

Again, if you need any help, please let me know.

Huge shout out to the IC&S guys because the structure of pop3.c was SO
easy to work with!

Thanks!

Eelco


_________________________
E.J.A. van Beek
ICT Manager
IC&S
T: +31 30 2322878
F: +31 30 2322305

PGP-key:
www.ic-s.nl/keys/eelco.txt

Reply via email to