On Mon, 7 Jun 2004, Jens Benecke wrote:

> Hi,
>
> I'm currently running a somewhat patched version of qmail-smtpd for my
> setup, under tcpserver, started in /etc/init.d/qmail. I was thinking of
> applying the SPAMCONTROL patch to my servers' qmail setups, but qpsmtpd
> *looks* more configurable and flexible. So here come the questions :-)
>
> Here's what my qmail-smtpd currently does, addition to the "original", and
> what I'd like to keep running:
>
> - badrcptto, badmailfrom with custom 550 error messages and syslogging
> - QMAILQUEUE patch (running spamassassin + f-prot)
> - tarpitting
> - SMTP AUTH with auth data coming from an IMAP server (vpopmail database)
> - attachment blocking at SMTP level (virusscan patch) with syslogging
>
> I'm primarily interested in spam-blocking features, such as:
> - "[bad|good]mail[from/to]" features with regex support
> - custom 550 error messages for different blocked domains/addresses
> - greylisting
> - user account verification (via vpopmail/MySQL)
> - check_earlytalker
> - performance

I'm not sure about the customer 5xx error messages, but most of this stuff
already works. Certainly patching the plugins to give custom error
messages is trivial.

> How stable is the basic qpsmtpd setup, and how stable and useable are the
> plugins / extensions I'd need? How much of a "plug-in" replacement would
> qpsmtpd be for me (minimum downtime)? What about performance (I read about
> PPerl, which seems to be a bit unstable, and speedycgi)?

PPerl seems to be one of those things that works for some people and not
for others. I have no idea why, sadly. There's a remote chance that this
might fix things for those with problems, but it's remote:

diff -u -r1.47 pperl.h.header
--- pperl.h.header      2004/05/17 14:29:33     1.47
+++ pperl.h.header      2004/06/08 09:39:23
@@ -209,7 +209,8 @@
     $SIG{CHLD} = \&reap_child;
   }
   else {
-    $SIG{HUP} = $SIG{INT} = $SIG{CHLD} = $SIG{TERM} = 'DEFAULT';
+    # $SIG{HUP} = $SIG{INT} = $SIG{CHLD} = $SIG{TERM} = 'DEFAULT';
+    $SIG{$_} = 'DEFAULT' for keys %SIG;
     $< = $>;  # set real UID to effective UID
   }
   sigprocmask(SIG_UNBLOCK,$signals);  # unblock signals


-- 
<!-- Matt -->
<:->get a SMart net</:->
I am Jack's broken heart.

Reply via email to