Looks interesting, but I'm not too keen on that patch. I'd much rather see subclasses used for this, since the changes are very particular to your daemon (i.e. catching specific die() strings). Should be very trivial to do this as a couple of subclasses. On 24-May-06, at 7:45 AM, Lars Roland wrote: > The link found at the end of this email points to a high-performance > qpsmtpd daemon (or use the attached files), which is meant as a > replacement of the included qpsmtpd-forkserver. > > We call it high-performance since it handles high load significantly > better than <qpsmtpd-forkserver> (at least that's what we've > experienced). Our tests show that a single server is able to handle > more > than 1 million messages per day (scanning with ClamAV and > spamassassin). > > Difference in relation to <qpsmtpd-forkserver>: > - pre-fork children > - reuse child > - renice of parent to ensure reaper and re-spawn of children > - reload option to graceful reinitialize plugins > > Usage: > -- > cd /path/to/qpsmtpd (path to vanilla version of qpsmtpd) > wget http://www.softscan.dk/doc/qpsmtpd/qpsmtpd-highperf-daemon.tar.gz > tar zxvf qpsmtpd-highperf-daemon.tar.gz > patch -p1 < qpsmtpd-prefork.patch > -- > > Continue to install qpsmtpd as you normally would, then copy > <qpsmtpd-highperf> to a desired location and start the daemon. > > See <qpsmtpd-highperf --help> for daemon options. > > Needed patches: Two modules must be patched to avoid <exit>, > as it terminates the child. <Exit> has been replaced with <die>, > allowing the daemon to catch finished children and reuse them. > > Requirements: Patched version of qpsmtpd and Perl module > <IPC::Shareable>. Children use the shareable memory to load/save > connection information. > > Considerations: Since children are reused it's important that a > child is > reset after/before use. It would be greatly appreciated if those with > better knowledge of the inner workings of qpsmtpd could comment on the > current used solution in TcpServer.pm. We solved the problem by > resetting <$self->{_connection}> and <$self->{_transaction}> in the > <start_connection> function . > > Stability: The daemon has been tested without problems on Debian Sarge > with the following plugins: > > -- > check_badmailfrom > check_badrcptto > check_badrcptto_patterns > check_loop > check_relay > check_spamhelo > hosts_allow > queue/qmail > rcpt_ok > tls > -- > > Download daemon and patch here: > http://www.softscan.co.uk/doc/qpsmtpd/qpsmtpd-highperf-daemon.tar.gz > (md5: 413bcd27f1df237d3adb71a3808f7901) > <qpsmtpd-highperf> > <qpsmtpd-prefork.patch>Thread Previous | Thread Next