howdy-i wrote the "onchange" patch which was added to vpopmail version 5.4.15. if you're not familiar with it, it allows the administrator to set up a ~vpopmail/etc/onchange script which is automatically executed whenever something changes with vpopmail's status, i.e. when a domain, mailbox, or alias is added or removed, or a password is changed.
my reason for writing this is to support the "validrcptto.cdb" patch that i wrote for qmail. it enables qmail to consult a cdb file containing every valid recipient address on the system, and reject incoming messages which are being sent to non-existent users.
http://qmail.jms1.net/patches/validrcptto.cdb.shtml
the idea is that whenever "something" changes- mailbox, alias,
whatever- the list of valid recipient addresses also changes, which
means that the validrcptto.cdb file needs to be re-generated. i have
a daemontools service that i call "qmail-updater", which waits for
input on a named pipe and then runs a script as root. the named pipe
is writable by any user. the root script re-generates the
validrcptto.cdb and auth.cdb files, and then for one of my clients,
pushes those files out to three other machines which pre-process the
flood of incoming mail through rblsmtpd, clamav, and spamassassin,
and then hand the messages to the mailbox server.
http://qmail.jms1.net/scripts/qmail-updater.shtml
http://qmail.jms1.net/mailhub.shtml
of course the "onchange" functionality can be used for other things-
to automatically make a final backup of a mailbox before deleting it,
for example.
anyway.somebody using the vpopmail "onchange" patch, along with qmailadmin, reported that qmailadmin does not call the "onchange" function when it creates a mailing list. this makes perfect sense- qmailadmin was never patched to make it call this function, IF it was even available.
his work-around was to trigger his "qmail-updater" service via cron job every five minutes. that seemed rather ugly to me, so i looked into what it would take to make qmailadmin call the "onchange" script whenever a mailing list was added (or deleted.)
it turned out that adding the necessary code was a twenty-minute exercise, most of which involved finding the correct places to add the code, and then realizing that i needed to include vpopmail_config.h so that the compiler would know whether or not to include the onchange code in the executable.
so i'm submitting the patch to the qmailadmin developers (rick i believe) so that it can be added to a future version of qmailadmin. and in the meantime, anybody who wants to try it is free to download it. it's about halfway down on this page:
http://qmail.jms1.net/patches/vpopmail.shtml
the page has two versions- the 1.2.9 version applies cleanly to the
1.2.10 code, while the 1.2.11 version is actually running on my own
server, and has been tested- it does call the "onchange" script after
adding and before removing a mailing list.
the one thing i noticed is that four error messages show up because the same constants exist in vpopmail's "vpopmail_config.h" and qmailadmin's "config.h", however this appears to me to be a non-issue because the qmailadmin file is included AFTER the vpopmail file.
---------------------------------------------------------------- | John M. Simpson --- KG4ZOW --- Programmer At Large | | http://www.jms1.net/ <[EMAIL PROTECTED]> | ---------------------------------------------------------------- | http://video.google.com/videoplay?docid=-4312730277175242198 | ----------------------------------------------------------------
PGP.sig
Description: This is a digitally signed message part
