http:// / patches /

qmail Patches

This page has information about patches to qmail. Actually, it's an index of other pages which have the information, but I'm sure you understand that already...

My combined patch set is a single patch file which contains the contents of several other patches, along with some customizations which I have done to them.

I also have a Domainkeys add-on patch for my combined patch. It's based on Russell Nelson's "qmail-dk" program, which tries to combine verification and generation of domainkeys headers in a single program. To me it makes more sense to verify any Domainkeys signatures as messages come into the queue, but only apply new signatures as a message leaves the queue, which means using two seperate programs. This is how Kyle Wheeler's approach works, and in fact I'm using Kyle's script to apply signatures to the messages I send through my server.

The validrcptto.cdb patch modifies qmail-smtpd so that it verifies all RCPT TO arguments against a cdb file which contains every valid email address on the server. This was based on an earlier patch which used a text file, but I changed it to use a cdb file so that it scales better, and I have added a cut-off counter to prevent (or at least slow down) harvesting attacks.

The AUTH_SET patch modifies qmail-smtpd, making it possible to change the environment that it sends to its child processes when a successful AUTH command is processed. This makes it possible to do things like adding a RELAYCLIENT variable, or deleting a DKVERIFY variable, when a client authenticates.

Other patches

This page contains information about two patches I have written for vpopmail. One adds the ability for vpopmail to run an external script whenever any of the vpopmail information changes (i.e. a mailbox or domain is added or removed, a user's password changes, etc.) Another one fixes a problem where vpopmaild (which is new with version 5.4.15) does not correctly handle passwords with spaces.

This page contains information about a patch I wrote for simscan, which allows it to compile and function correctly with clamav version 0.90 and later.