There are a lot of things we could do if we had the ability to plug in to arbitrary milters. For example, if someone doesn't like the fact that our SpamAssassin connector rejects messages at the SMTP server, they could install spamass-milter instead, and then use a Sieve script to catch the headers it adds.
It would also give us the ability to use clamav-milter instead of plugging ClamAV into SpamAssassin. My questions to the library developer appear below, along with his replies: >> 1. What kind of shape is it in right now? Is it alpha quality or >> can we use it in a production environment? If it isn't ready, are >> you still actively working on it? > >I am still actively working on libspawner. It is part of a student >research project which I am about to finish. > >> 2. Is the library threadsafe? Our MTA is multithreaded so it would >> be best to have a threadsafe library to work with. > >All information that the exported library functions use is stored in >an opaque context structure. There are no global or static variables, >and I don't do anything with signals. > >The only other problem I can think of right now would be functions >from libc that might not be guaranteed to be threadsafe. Do you have >any other suggestions what I should look at? > >The last "release" tarball is quite outdated; if you want to have a >closer look at the current state, have a look at the Subversion >repository (http://svn.berlios.de/svnroot/repos/libspawner/).