perl.qpsmtpd http://www.nntp.perl.org/group/perl.qpsmtpd/ ... Copyright 1998-2008 perl.org Thu, 16 Oct 2008 19:49:18 +0000 ask@perl.org Re: trying to get config for tls_ciphers by John Peacock Jan V&ouml;lkers wrote:<br/>&gt; I&#39;d like to communicate encrypted, but when i configure tls, qpsmtp<br/>&gt; stops working with the line &quot;trying to get config for tls_ciphers&quot; in<br/>&gt; the last logline.<br/><br/>That may be the last log line, but it is highly unlikely that it is the last<br/>thing executed. If you turn up the logging to 11, do you see<br/><br/> ciphers: DEFAULT<br/><br/>as well? Are you running a known broken distro like Solaris (which doesn&#39;t<br/>provide a fully functional SSL library by default)?<br/><br/>&gt; I have added a file tls_ciphers with &quot;DEFAULT&quot; inside. No change.<br/>&gt; I use pem files - could that be the problem? What format is preferred?<br/><br/> $perldoc IO::Socket::SSL<br/><br/>...<br/> SSL_cert_file<br/> If your SSL certificate is not in the default place<br/> (certs/server-cert.pem for servers, certs/client-cert.pem for<br/> clients), then you should use this option to specify the location<br/> of your certificate.<br/>...<br/><br/>NOTE: you cannot have a password on your certificate/key file, because there is<br/>no way for qpsmtpd to handle that. You also need to pass the CA cert that was<br/>used to sign your certificate (since you need the full chain).<br/><br/>Try running this:<br/><br/>perl -MIO::Socket::SSL -e &#39;<br/> my $ssl_ctx = IO::Socket::SSL::SSL_Context-&gt;new(<br/> SSL_use_cert =&gt; 1,<br/> SSL_cert_file =&gt; &quot;/path/to/cert&quot;,<br/> SSL_key_file =&gt; &quot;/path/to/key&quot;,<br/> SSL_ca_file =&gt; &quot;/path/to/ca&quot;,<br/> SSL_cipher_list =&gt; &quot;HIGH&quot;,<br/> SSL_server =&gt; 1<br/> ) or die &quot;Could not create SSL context: $!&quot;;<br/>&#39;<br/><br/>and see what that does (which is precisely what the tls plugin does internally).<br/><br/>HTH<br/><br/>John<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/10/msg8253.html Tue, 07 Oct 2008 04:04:56 +0000 trying to get config for tls_ciphers by Jan Völkers I&#39;d like to communicate encrypted, but when i configure tls, qpsmtp <br/>stops working with the line &quot;trying to get config for tls_ciphers&quot; in <br/>the last logline.<br/><br/>I have added a file tls_ciphers with &quot;DEFAULT&quot; inside. No change.<br/>I use pem files - could that be the problem? What format is preferred?<br/><br/>Any hints?<br/><br/>Jan<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/10/msg8252.html Mon, 06 Oct 2008 07:31:16 +0000 [PATCH] Add support for both AUTH LOGIN and PLAIN to auth_flat_file by Pedro Melo Hi,<br/><br/>a small patch to enable AUTH PLAIN and LOGIN in the auth_flat_file<br/>plugin.<br/><br/>I&#39;m using it for a small experiment and certain version of LookOut<br/>dont seem to support CRAM-MD5.<br/><br/>Best regards,<br/>---<br/> qpsmtpd/plugins/auth/auth_flat_file | 2 ++<br/> 1 files changed, 2 insertions(+), 0 deletions(-)<br/><br/>diff --git a/qpsmtpd/plugins/auth/auth_flat_file b/qpsmtpd/plugins/auth/auth_flat_file<br/>index 6a82342..c4f130d 100644<br/>--- a/qpsmtpd/plugins/auth/auth_flat_file<br/>+++ b/qpsmtpd/plugins/auth/auth_flat_file<br/>@@ -36,6 +36,8 @@ sub register {<br/> my ( $self, $qp ) = @_;<br/> <br/> $self-&gt;register_hook(&quot;auth-cram-md5&quot;, &quot;authsql&quot;);<br/>+ $self-&gt;register_hook(&quot;auth-plain&quot;, &quot;authsql&quot;);<br/>+ $self-&gt;register_hook(&quot;auth-login&quot;, &quot;authsql&quot;);<br/> }<br/> <br/> sub authsql {<br/>-- <br/>1.6.0.2.GIT<br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/10/msg8251.html Mon, 06 Oct 2008 05:45:00 +0000 Re: [qpsmtpd] Is there an orderly restart? by John Peacock b-sub-96e3ab9a984935f@rope.net wrote:<br/>&gt; My concern with killing all of the connections is that I have some<br/>&gt; internal processes that (I think) will occasionally corrupt log and data<br/>&gt; files when this happens.<br/><br/>You may want to reconsider your design, then. If you are trying to aggregate<br/>multiple log streams into a single file using any form of locking, you are<br/>almost inevitably going to be fighting corruption. You could use something like<br/>multilog, but that only allows you to post-process the log entries (when the log<br/>file is rolled), which may not be timely enough for your needs (though of course<br/>you could make the logfile size as small as you needed it to be for granularity).<br/><br/>One thing to consider would to be a log process outside of qpsmtpd that you can<br/>freely write to, then have your processing happen in a controlled manner in a<br/>third process. The folks I work with have released the implementation we use<br/>internally:<br/><br/>https://labs.omniti.com/trac/jlog<br/><br/>I&#39;m not necessarily recommending that tool per se (as the documentation is<br/>almost non-existent at the moment), but rather as an example of the style of<br/>programming you probably need to pursue:<br/><br/> qpsmtpd =&gt; logger &lt;= log processor<br/><br/>By decoupling qpsmtpd from the log processing, you can do whatever you want to<br/>qpsmtpd and the log processor still gets clean log entries to analyze.<br/><br/>John<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/10/msg8250.html Thu, 02 Oct 2008 04:25:19 +0000 Re: general question about ClamAV plugin by Matt Sergeant On Tue, 30 Sep 2008 17:03:36 -0700 (PDT), cmacduff@gmail.com wrote:<br/>&gt; When using the ClamAV plugin i realize that this is not the entire<br/>&gt; ClamAV application but how do I then keep the virus definitions for<br/>&gt; the plugin up to date? do I need to actually install the ClamAV<br/>&gt; application to use freshclam to update the virus definations and then<br/><br/>Yes.<br/><br/>&gt; do i need to have the ClamAV plugin point to a different spot for it<br/>&gt; to see these newer definations?<br/><br/>No, that&#39;s automatic.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/10/msg8249.html Wed, 01 Oct 2008 06:45:04 +0000 general question about ClamAV plugin by cmacduff When using the ClamAV plugin i realize that this is not the entire<br/>ClamAV application but how do I then keep the virus definitions for<br/>the plugin up to date? do I need to actually install the ClamAV<br/>application to use freshclam to update the virus definations and then<br/>do i need to have the ClamAV plugin point to a different spot for it<br/>to see these newer definations?<br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/10/msg8248.html Wed, 01 Oct 2008 02:13:07 +0000 Re: Latest SMTP.pm causes fatal errors by Chris Lewis Matt Sergeant wrote:<br/>&gt; On Tue, 30 Sep 2008 08:34:05 +0200, Hanno Hecker wrote:<br/>&gt;&gt;&gt; I&#39;m confused why the error is caused - anyone better with perl than me <br/>&gt;&gt;&gt; can help out?<br/>&gt;&gt; Same confusion here... and I cannot reproduce it. <br/>&gt;&gt; $ perl -v | grep &#39;This is perl&#39;<br/>&gt;&gt; This is perl, v5.8.8 built for i486-linux-gnu-thread-multi<br/>&gt;&gt;<br/>&gt;&gt; Running -async works without a problem, with and without (start)tls.<br/>&gt; <br/>&gt; Same here. Chris can you reduce it to a couple of plugins and let us <br/>&gt; know the setup required to reproduce?<br/><br/>I have got the TLS plugin enabled.<br/><br/>This is perl, v5.8.8 built for sun4-solaris<br/><br/>I&#39;ll ge around to plugin reduction.<br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8247.html Tue, 30 Sep 2008 07:55:47 +0000 Re: queueing based on rcpt to: address by Jörg C . Meyer <br/>I implemented it as suggested by Hanno and it works like a charm. And<br/>since this mail switching qpsmtpd instance is feed by a qmail process<br/>there can&#39;t be more than one recipient in a transaction, so we don&#39;t have<br/>a problem if one of the destination MTAs fails.<br/><br/>J&ouml;rg<br/><br/><br/>&gt; On Mon, 29 Sep 2008 14:51:08 +0200 (CEST)<br/>&gt; J&ouml;rg C. Meyer &lt;joerg@meyer.homedns.org&gt; wrote:<br/>&gt;&gt; I want to queue mails via SMTP to different SMTP servers based on the<br/>&gt;&gt; rcpt<br/>&gt;&gt; to: address. The goal is to route different parts of an email domain to<br/>&gt;&gt; different servers in a mail server migration szenario.<br/>&gt;&gt;<br/>&gt;&gt; How should I implement this? I thought about hacking the &quot;smtp-forward&quot;<br/>&gt;&gt; plugin.<br/>&gt; Why not wrap this plugin&#39;s hook_queue and return DECLINED if the<br/>&gt; destination is not for this instance... and then load the wrapper<br/>&gt; multiple times with different arguments, see docs/plugins.pod.<br/>&gt;<br/>&gt; Hanno<br/>&gt;<br/><br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8246.html Tue, 30 Sep 2008 07:46:08 +0000 Re: Latest SMTP.pm causes fatal errors by Matt Sergeant On Tue, 30 Sep 2008 08:34:05 +0200, Hanno Hecker wrote:<br/>&gt;&gt; I&#39;m confused why the error is caused - anyone better with perl than me <br/>&gt;&gt; can help out?<br/>&gt; Same confusion here... and I cannot reproduce it. <br/>&gt; $ perl -v | grep &#39;This is perl&#39;<br/>&gt; This is perl, v5.8.8 built for i486-linux-gnu-thread-multi<br/>&gt; <br/>&gt; Running -async works without a problem, with and without (start)tls.<br/><br/>Same here. Chris can you reduce it to a couple of plugins and let us <br/>know the setup required to reproduce?<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8245.html Tue, 30 Sep 2008 05:55:29 +0000 Re: DNSBL and answer id check missing by Peter J. Holzer On 2008-09-30 01:30:44 -0700, Ask Bj&oslash;rn Hansen wrote:<br/>&gt; How about making qpsmtpd require Net::DNS 0.60 then?<br/><br/>I&#39;ve built in a work-around for the problem in older releases of<br/>Net::DNS. But I&#39;m not sure if that still works - from a casual glance at<br/>the source I&#39;d say no, and I&#39;m not sure how it could ever have worked.<br/>Maybe the dnsbl plugin didn&#39;t use async at the time?<br/><br/> hp<br/><br/>-- <br/> _ | Peter J. Holzer | Openmoko has already embedded<br/>|_|_) | Sysadmin WSR | voting system.<br/>| | | hjp@hjp.at | Named &quot;If you want it -- write it&quot;<br/>__/ | http://www.hjp.at/ | -- Ilja O. on community@lists.openmoko.org<br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8244.html Tue, 30 Sep 2008 05:31:22 +0000 Re: DNSBL and answer id check missing by Ask Bjørn Hansen How about making qpsmtpd require Net::DNS 0.60 then?<br/><br/><br/> - ask<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8243.html Tue, 30 Sep 2008 01:30:56 +0000 Re: Latest SMTP.pm causes fatal errors by Hanno Hecker On Mon, 29 Sep 2008 23:24:41 -0400<br/>Matt Sergeant &lt;matt@sergeant.org&gt; wrote:<br/><br/>&gt; On Mon, 29 Sep 2008 21:20:02 -0400, Chris Lewis wrote:<br/>&gt; &gt; Running SVN head on Solaris 8 &amp; 9, synchronized today.<br/>&gt; &gt; <br/>&gt; &gt; qpsmtpd-async<br/>&gt; &gt; <br/>&gt; &gt; FATAL PLUGIN ERROR: Can&#39;t coerce array into hash at<br/>&gt; &gt; /opt/NTM/lib/perl5/site_perl/5.8.8/Qpsmtpd/SMTP.<br/>&gt; &gt; pm line 132 during global destruction.<br/>Mhh, this is the &quot;return&quot; line of transaction():<br/> sub transaction {<br/> my $self = shift;<br/> return $self-&gt;{_transaction} || $self-&gt;reset_transaction();<br/> }<br/>Are you running any plugins hooking &quot;reset_transaction&quot;? <br/><br/>&gt; &gt; Causes incomplete processing of _all_ email.<br/>&gt; &gt; <br/>&gt; &gt; When I take out this line (latest change to SMTP.pm), the problem goes<br/>&gt; &gt; away (line 40)<br/>&gt; &gt; <br/>&gt; &gt; $self-&gt;SUPER::_restart(%args) if $args{restart}; # calls<br/>&gt; &gt; Qpsmtpd::_restart()<br/>&gt; <br/>&gt; I&#39;m confused why the error is caused - anyone better with perl than me <br/>&gt; can help out?<br/>Same confusion here... and I cannot reproduce it. <br/> $ perl -v | grep &#39;This is perl&#39;<br/> This is perl, v5.8.8 built for i486-linux-gnu-thread-multi<br/><br/>Running -async works without a problem, with and without (start)tls.<br/><br/> Hanno<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8242.html Mon, 29 Sep 2008 23:33:42 +0000 Re: Latest SMTP.pm causes fatal errors by Matt Sergeant On Mon, 29 Sep 2008 21:20:02 -0400, Chris Lewis wrote:<br/>&gt; Running SVN head on Solaris 8 &amp; 9, synchronized today.<br/>&gt; <br/>&gt; qpsmtpd-async<br/>&gt; <br/>&gt; FATAL PLUGIN ERROR: Can&#39;t coerce array into hash at<br/>&gt; /opt/NTM/lib/perl5/site_perl/5.8.8/Qpsmtpd/SMTP.<br/>&gt; pm line 132 during global destruction.<br/>&gt; <br/>&gt; Causes incomplete processing of _all_ email.<br/>&gt; <br/>&gt; When I take out this line (latest change to SMTP.pm), the problem goes<br/>&gt; away (line 40)<br/>&gt; <br/>&gt; $self-&gt;SUPER::_restart(%args) if $args{restart}; # calls<br/>&gt; Qpsmtpd::_restart()<br/><br/>I&#39;m confused why the error is caused - anyone better with perl than me <br/>can help out?<br/><br/>&gt; I note that the<br/>&gt; <br/>&gt; $self-&gt;log(LOGCRIT, &quot;from email address : [$from]&quot;);<br/>&gt; <br/>&gt; and<br/>&gt; <br/>&gt; $self-&gt;log(LOGCRIT, &quot;to email address : [$rcpt]&quot;);<br/>&gt; <br/>&gt; Haven&#39;t been changed to LOGDEBUG yet. Pretty please?<br/><br/>Yeah - a long time irritation. Changed in SVN now.<br/><br/>Matt.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8241.html Mon, 29 Sep 2008 20:25:09 +0000 Latest SMTP.pm causes fatal errors by Chris Lewis Running SVN head on Solaris 8 &amp; 9, synchronized today.<br/><br/>qpsmtpd-async<br/><br/>FATAL PLUGIN ERROR: Can&#39;t coerce array into hash at<br/>/opt/NTM/lib/perl5/site_perl/5.8.8/Qpsmtpd/SMTP.<br/>pm line 132 during global destruction.<br/><br/>Causes incomplete processing of _all_ email.<br/><br/>When I take out this line (latest change to SMTP.pm), the problem goes<br/>away (line 40)<br/><br/> $self-&gt;SUPER::_restart(%args) if $args{restart}; # calls<br/>Qpsmtpd::_restart()<br/><br/>I note that the<br/><br/>$self-&gt;log(LOGCRIT, &quot;from email address : [$from]&quot;);<br/><br/>and<br/><br/> $self-&gt;log(LOGCRIT, &quot;to email address : [$rcpt]&quot;);<br/><br/>Haven&#39;t been changed to LOGDEBUG yet. Pretty please?<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8240.html Mon, 29 Sep 2008 18:20:38 +0000 Re: $transaction->body_filename; by Matt Sergeant On Mon, 29 Sep 2008, Chris Lewis wrote:<br/><br/>&gt; Matt told me that the body_filename not showing headers is actually an<br/>&gt; idiosyncracy of qpsmtpd-async, and behaves more like one would expect<br/>&gt; under qpsmtpd-forkserver etc. and that he had fixed that.<br/>&gt;<br/>&gt; Is that in SVN yet?<br/><br/>Yes.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8239.html Mon, 29 Sep 2008 12:13:03 +0000 Re: $transaction->body_filename; by Chris Lewis Matt told me that the body_filename not showing headers is actually an<br/>idiosyncracy of qpsmtpd-async, and behaves more like one would expect<br/>under qpsmtpd-forkserver etc. and that he had fixed that.<br/><br/>Is that in SVN yet?<br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8238.html Mon, 29 Sep 2008 10:53:07 +0000 Re: DNSBL and answer id check missing by Chris Lewis Charlie Brady wrote:<br/>&gt; <br/>&gt; On Sun, 28 Sep 2008, Ask Bj&#xFFFD;rn Hansen wrote:<br/>&gt; <br/>&gt;&gt; On Sep 28, 2008, at 12:01 AM, Diego d&#39;Ambra wrote:<br/>&gt;&gt;<br/>&gt;&gt;&gt; my $res = new Net::DNS::Resolver;<br/>&gt;&gt;&gt; $res-&gt;tcp_timeout(30);<br/>&gt;&gt;&gt; $res-&gt;udp_timeout(30);<br/>&gt;&gt;&gt; $res-&gt;srcport(1024+int(rand(64511)));<br/>&gt;&gt;<br/>&gt;&gt; Shouldn&#39;t this fix be in Net::DNS::Resolver?<br/>&gt; <br/>&gt; http://search.cpan.org/src/OLAF/Net-DNS-0.63/Changes<br/>&gt; <br/>&gt; Apparently some hjp caused that to be so in June 2007.<br/><br/>In 0.60 actually:<br/><br/>Fix rt 23961<br/> Randomized the ID on the queries. Thanks to &quot;hjp&quot; for reporting and<br/> suggesting a fix.<br/><br/> The randomization of the src port is supposed to be handled by the<br/> setting the source port to &quot;0&quot; (default). Overriding the default<br/> or using persistent sockets may be problematic.<br/><br/> Also see:<br/> http://www.potaroo.net/ietf/idref/draft-hubert-dns-anti-spoofing/<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8237.html Mon, 29 Sep 2008 10:52:22 +0000 Re: queueing based on rcpt to: address by Hanno Hecker On Mon, 29 Sep 2008 14:51:08 +0200 (CEST)<br/>J&ouml;rg C. Meyer &lt;joerg@meyer.homedns.org&gt; wrote:<br/>&gt; I want to queue mails via SMTP to different SMTP servers based on the rcpt<br/>&gt; to: address. The goal is to route different parts of an email domain to<br/>&gt; different servers in a mail server migration szenario.<br/>&gt; <br/>&gt; How should I implement this? I thought about hacking the &quot;smtp-forward&quot;<br/>&gt; plugin.<br/>Why not wrap this plugin&#39;s hook_queue and return DECLINED if the<br/>destination is not for this instance... and then load the wrapper<br/>multiple times with different arguments, see docs/plugins.pod.<br/><br/> Hanno<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8236.html Mon, 29 Sep 2008 10:29:37 +0000 Re: DNSBL and answer id check missing by Charlie Brady <br/>On Mon, 29 Sep 2008, Charlie Brady wrote:<br/><br/>&gt;<br/>&gt; On Sun, 28 Sep 2008, Ask Bj&oslash;rn Hansen wrote:<br/>&gt;<br/>&gt;&gt; On Sep 28, 2008, at 12:01 AM, Diego d&#39;Ambra wrote:<br/>&gt;&gt; <br/>&gt;&gt; &gt; my $res = new Net::DNS::Resolver;<br/>&gt;&gt; &gt; $res-&gt;tcp_timeout(30);<br/>&gt;&gt; &gt; $res-&gt;udp_timeout(30);<br/>&gt;&gt; &gt; $res-&gt;srcport(1024+int(rand(64511)));<br/>&gt;&gt;<br/>&gt;&gt; Shouldn&#39;t this fix be in Net::DNS::Resolver?<br/>&gt;<br/>&gt; http://search.cpan.org/src/OLAF/Net-DNS-0.63/Changes<br/>&gt;<br/>&gt; Apparently some hjp caused that to be so in June 2007.<br/><br/>And from http://rt.cpan.org/Public/Bug/Display.html?id=23961:<br/><br/> Patch made it into release 0.60<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8235.html Mon, 29 Sep 2008 08:55:42 +0000 Re: DNSBL and answer id check missing by Charlie Brady <br/>On Sun, 28 Sep 2008, Ask Bj&oslash;rn Hansen wrote:<br/><br/>&gt; On Sep 28, 2008, at 12:01 AM, Diego d&#39;Ambra wrote:<br/>&gt;<br/>&gt;&gt; my $res = new Net::DNS::Resolver;<br/>&gt;&gt; $res-&gt;tcp_timeout(30);<br/>&gt;&gt; $res-&gt;udp_timeout(30);<br/>&gt;&gt; $res-&gt;srcport(1024+int(rand(64511)));<br/>&gt;<br/>&gt; Shouldn&#39;t this fix be in Net::DNS::Resolver?<br/><br/>http://search.cpan.org/src/OLAF/Net-DNS-0.63/Changes<br/><br/>Apparently some hjp caused that to be so in June 2007.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8234.html Mon, 29 Sep 2008 08:54:02 +0000 Re: queueing based on rcpt to: address by Peter Eisch <br/><br/><br/>On 9/29/08 7:51 AM, &quot;J&ouml;rg C. Meyer&quot; &lt;joerg@meyer.homedns.org&gt; wrote:<br/><br/>&gt; Hi,<br/>&gt; <br/>&gt; I want to queue mails via SMTP to different SMTP servers based on the rcpt<br/>&gt; to: address. The goal is to route different parts of an email domain to<br/>&gt; different servers in a mail server migration szenario.<br/>&gt; <br/>&gt; How should I implement this? I thought about hacking the &quot;smtp-forward&quot;<br/>&gt; plugin.<br/>&gt; <br/><br/>That&#39;s a good place to start, but I offer a consideration: If you have an<br/>email that&#39;s destined for both MTAs, will you deliver it to just one and let<br/>it forward to the other server? If you deliver to both, how will you handle<br/>the case where delivery to one succeeded and the other failed.<br/><br/>peter <br/><br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8233.html Mon, 29 Sep 2008 07:12:49 +0000 queueing based on rcpt to: address by Jörg C . Meyer Hi,<br/><br/>I want to queue mails via SMTP to different SMTP servers based on the rcpt<br/>to: address. The goal is to route different parts of an email domain to<br/>different servers in a mail server migration szenario.<br/><br/>How should I implement this? I thought about hacking the &quot;smtp-forward&quot;<br/>plugin.<br/><br/>Kind regards,<br/>J&ouml;rg<br/><br/><br/><br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8232.html Mon, 29 Sep 2008 05:51:32 +0000 Re: Spamassasin and relay client by Radu Greab <br/>&gt; First of all, the isa_plugin method is available is the debian <br/>&gt; version. But there is a problem with loading path. I get the following :<br/>&gt; <br/>&gt; could not open plugins/spamassassin: No such file or directory at <br/>&gt; /usr/share/perl5/Qpsmtpd/Plugin.pm line 121.<br/>&gt; <br/>[...]<br/>&gt; <br/>&gt; my plugin_dir file indicate the two previous place<br/>&gt; <br/>&gt; But the isa_plugin() method and compile() method does not load the <br/>&gt; correct file.<br/><br/>If you could upgrade, qpsmtpd 0.43 would fix that problem.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8231.html Mon, 29 Sep 2008 03:24:39 +0000 Re: Spamassasin and relay client by julien Hello,<br/><br/>First of all, the isa_plugin method is available is the debian <br/>version. But there is a problem with loading path. I get the following :<br/><br/>could not open plugins/spamassassin: No such file or directory at <br/>/usr/share/perl5/Qpsmtpd/Plugin.pm line 121.<br/><br/>I put the wrapper plugin in :<br/><br/>/usr/local/share/qpsmtpd/plugins/<br/>and<br/>/usr/share/qpsmtpd/plugins/<br/><br/>my plugin_dir file indicate the two previous place<br/><br/>But the isa_plugin() method and compile() method does not load the <br/>correct file.<br/><br/>In the isa_plugin() method I replace the call to compile by adding the <br/>complete path<br/><br/><br/>----- 0.32-6 version ----<br/> $self-&gt;compile($self-&gt;plugin_name . &quot;_isa_$cleanParent&quot;,<br/> $newPackage,<br/> &quot;plugins/$parent&quot;); # assumes Cwd is qpsmtpd root<br/> warn &quot;---- $newPackage\n&quot;;<br/><br/>--- modified version -------<br/> $self-&gt;compile($self-&gt;plugin_name . &quot;_isa_$cleanParent&quot;,<br/> $newPackage,<br/> &quot;/usr/share/qpsmtpd/plugins/$parent&quot;);<br/> warn &quot;---- $newPackage\n&quot;;<br/><br/>It works ! but if I want to write a wrapper for a &quot;local&quot; plugins in <br/>/usr/local/share/qpsmtpd/plugins I need to change the path in <br/>/usr/share/perl5/Qpsmtpd/Plugin.pm<br/><br/>Is it possible to modify the Plugin.pm in order to search the &quot;parent&quot; <br/>plugin in directory listing in /etc/qpsmtpd/plugin_dir like :<br/><br/>$dirs = file_contents(&quot;/etc/qpsmtpd/plugin_dir&quot;);<br/><br/>foreach($dirs as $dir){<br/><br/> if(file_exists($dir.$parent)){<br/> $self-&gt;compile(....,<br/> $dir.$parent);<br/> break;<br/> }<br/>}<br/><br/>I known it is not a perl code but I have just a little experience in <br/>this language.<br/><br/><br/>Julien.<br/><br/><br/>Quoting julien@nura.eu:<br/><br/>&gt; Thanks for your reply !<br/>&gt;<br/>&gt; I&#39;m using the etch version 0.32-6. I have been using the 0.40 version<br/>&gt; before (on some server). I recently install debian version (on other<br/>&gt; server) for the simplicity of installation.<br/>&gt;<br/>&gt; So I write my own wrapper plugin called &quot;sa_norelay&quot; with the <br/>&gt; following code :<br/>&gt; --------------------<br/>&gt; sub init {<br/>&gt; my ($self, $qp, @args) = @_;<br/>&gt; $self-&gt;isa_plugin(&quot;spamassassin&quot;);<br/>&gt; }<br/>&gt;<br/>&gt; sub hook_data_post {<br/>&gt; my ($self, $transaction) = @_;<br/>&gt; return DECLINED if $self-&gt;qp-&gt;connection-&gt;relay_client;<br/>&gt; return $self-&gt;SUPER::hook_data_post($transaction);<br/>&gt; }<br/>&gt; ------------------<br/>&gt; Then I replace the spamassin call in config/plugins file by sa_norelay,<br/>&gt; and switch to the 0.40 version or newer.<br/>&gt;<br/>&gt; Am I right ?<br/>&gt;<br/>&gt; It is more elegant to leave the spam plugins unchange !<br/>&gt;<br/>&gt; Thanks you Hanno ! and thanks to qpsmtpd developper and contributor !<br/>&gt;<br/>&gt; Julien<br/>&gt;<br/>&gt;<br/>&gt;<br/>&gt;<br/>&gt;<br/>&gt; Quoting Hanno Hecker &lt;vetinari@ankh-morp.org&gt;:<br/>&gt;<br/>&gt;&gt; Hi Julien,<br/>&gt;&gt;<br/>&gt;&gt; On Fri, 26 Sep 2008 12:00:36 +0200<br/>&gt;&gt; julien@nura.eu wrote:<br/>&gt;&gt;&gt; I&#39;d like to disable spamassassin check for mail coming from relay<br/>&gt;&gt;&gt; clients. Is there a way to do that with the config file<br/>&gt;&gt;&gt; /etc/qpsmtpd/plugins without modifying the plugin code ?<br/>&gt;&gt; Not with a/the config file, but with a simple wrapper plugin.<br/>&gt;&gt;<br/>&gt;&gt;&gt; So far, I added the following lines to the spamassasin plugin<br/>&gt;&gt;&gt; code in the hook_data_post function :<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; # no spam check for relay client<br/>&gt;&gt;&gt; if ( $self-&gt;qp-&gt;connection-&gt;relay_client ) {<br/>&gt;&gt;&gt; $self-&gt;log(LOGDEBUG,&quot;No spam check from relay client&quot;);<br/>&gt;&gt;&gt; return (OK);<br/>&gt;&gt;&gt; }<br/>&gt;&gt; You should return DECLINED here, else no other plugin will be run (like<br/>&gt;&gt; a virus checker).<br/>&gt;&gt;<br/>&gt;&gt; [...]<br/>&gt;&gt;&gt; The code is working. But is there a more elegant way to do that?<br/>&gt;&gt; [...]<br/>&gt;&gt;&gt; I am using the debian relase of qpsmtpd.<br/>&gt;&gt; Hmm... etch or lenny/sid? I&#39;m not sure when the &quot;isa_plugin&quot; was added,<br/>&gt;&gt; but the etch version is too old for that. For lenny this may work as<br/>&gt;&gt; &quot;sa_norelay&quot; plugin. Not sure, I&#39;ve never used the debian packages, just<br/>&gt;&gt; SVN checkouts (even if all my systems are debian :))<br/>&gt;&gt; Use this instead of &quot;spamassassin&quot; in the config file. Arguments and<br/>&gt;&gt; usage is the same as the original spamassassin plugin.<br/>&gt;&gt; --------------------<br/>&gt;&gt; sub init {<br/>&gt;&gt; my ($self, $qp, @args) = @_;<br/>&gt;&gt; $self-&gt;isa_plugin(&quot;spamassassin&quot;);<br/>&gt;&gt; }<br/>&gt;&gt;<br/>&gt;&gt; sub hook_data_post {<br/>&gt;&gt; my ($self, $transaction) = @_;<br/>&gt;&gt; return DECLINED if $self-&gt;qp-&gt;connection-&gt;relay_client;<br/>&gt;&gt; return $self-&gt;SUPER::hook_data_post($transaction);<br/>&gt;&gt; }<br/>&gt;&gt; ------------------<br/>&gt;&gt;<br/>&gt;&gt; Hanno<br/>&gt;&gt;<br/><br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8230.html Mon, 29 Sep 2008 01:35:14 +0000 Re: [qpsmtpd] Is there an orderly restart? by b-sub-96e3ab9a984935f On Sun, 28 Sep 2008, John Peacock wrote:<br/><br/>&gt; b-sub-96e3ab9a984935f@rope.net wrote:<br/>&gt; &gt; Is there a way to not accept any more connections, let the current<br/>&gt; &gt; connections finish, and then restart qpsmtpd? Something has to be better<br/>&gt; &gt; than my current heavy hammer approach.<br/>&gt;<br/>&gt; I use &#39;svc -t&#39; instead of HUP, because it will kill all of the connections<br/>&gt; associated with the master process. And I do it whenever I feel like it.<br/>&gt;<br/>&gt; The SMTP protocol was designed specifically to be very tolerant of disruptions;<br/>&gt; all legitimate servers will happily resend an e-mail because of a snipped<br/>&gt; connection (though at their internal retry interval). It is really not possible<br/>&gt; to lose legitimate e-mail by randomly stopping your SMTP server to reload<br/>&gt; plugins. On the other hand, most zombie SMTP clients can&#39;t handle anything out<br/>&gt; of the ordinary, so that&#39;s once piece of spam you probably won&#39;t receive...<br/><br/>Thank-you for your response.<br/><br/>This I am aware of, and is not a problem.<br/><br/>My concern with killing all of the connections is that I have some<br/>internal processes that (I think) will occasionally corrupt log and data<br/>files when this happens.<br/><br/>Perl&#39;s flock() is not reliable enough (all processes accessing these files<br/>were using flock() ), and I found the most often accessed files were being<br/>corrupted very often. Many processes are after the same file. I wrote a<br/>file access arbitrator daemon (based on IO::Select and IO::Socket), which<br/>has proven much more robust, but is still not adequate. I have a couple<br/>more ideas for improving it, but if I can reduce the killed processes<br/>(that is, letting my internal processes finish what they start), then that<br/>will help in the meantime.<br/><br/>On further examination/testing, I think &quot;svc -h&#39; may be what I want (for<br/>now), and I should just avoid killing the current connections and let them<br/>finish. The only problem is that it can often take a while to drain the<br/>queue.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8229.html Sun, 28 Sep 2008 08:01:45 +0000 Re: [qpsmtpd] Is there an orderly restart? by John Peacock b-sub-96e3ab9a984935f@rope.net wrote:<br/>&gt; Is there a way to not accept any more connections, let the current<br/>&gt; connections finish, and then restart qpsmtpd? Something has to be better<br/>&gt; than my current heavy hammer approach.<br/><br/>I use &#39;svc -t&#39; instead of HUP, because it will kill all of the connections<br/>associated with the master process. And I do it whenever I feel like it.<br/><br/>The SMTP protocol was designed specifically to be very tolerant of disruptions;<br/>all legitimate servers will happily resend an e-mail because of a snipped<br/>connection (though at their internal retry interval). It is really not possible<br/>to lose legitimate e-mail by randomly stopping your SMTP server to reload<br/>plugins. On the other hand, most zombie SMTP clients can&#39;t handle anything out<br/>of the ordinary, so that&#39;s once piece of spam you probably won&#39;t receive...<br/><br/>John<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8228.html Sun, 28 Sep 2008 06:45:54 +0000 Re: DNSBL and answer id check missing by Ask Bjørn Hansen <br/>On Sep 28, 2008, at 12:01 AM, Diego d&#39;Ambra wrote:<br/><br/>&gt; my $res = new Net::DNS::Resolver;<br/>&gt; $res-&gt;tcp_timeout(30);<br/>&gt; $res-&gt;udp_timeout(30);<br/>&gt; $res-&gt;srcport(1024+int(rand(64511)));<br/><br/>Shouldn&#39;t this fix be in Net::DNS::Resolver?<br/><br/><br/> - ask<br/><br/>-- <br/>http://develooper.com/ - http://askask.com/<br/><br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8227.html Sun, 28 Sep 2008 02:15:02 +0000 PATCH: Re: DNSBL and answer id check missing by Diego d'Ambra This is a multi-part message in MIME format.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8226.html Sun, 28 Sep 2008 01:59:38 +0000 Re: DNSBL and answer id check missing by Diego d'Ambra Diego d&#39;Ambra wrote:<br/>[...]<br/>&gt; <br/>&gt; I made a little change to DNSBL to ensure it randomize scr port and I <br/>&gt; see a major difference.<br/>&gt; <br/><br/>Maybe latest version of Net::DNS does this (after Dan&#39;s widely report <br/>exploit). My box is an older Sarge solution, so others may not see same <br/>issue.<br/><br/>But even with random src port it will happen - on my system probably <br/>around 100 times per day.<br/><br/>Best regards,<br/>Diego d&#39;Ambra<br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8225.html Sun, 28 Sep 2008 01:05:56 +0000 Re: DNSBL and answer id check missing by Diego d'Ambra Matt Sergeant wrote:<br/>&gt; On Sat, 27 Sep 2008 13:56:58 +0200, Diego d&#39;Ambra wrote:<br/>&gt;&gt; To me it seems that plugin DNSBL is using Net::DNS bgsend/bgread, but<br/>&gt;&gt; is not checking the id of the reply received.<br/>&gt;&gt;<br/>&gt;&gt; If true this means that an attacker can white- or blacklist any email<br/>&gt; <br/>&gt; Thinking more about this - since we don&#39;t do any &quot;dnswl&quot; type stuff, it<br/>&gt; doesn&#39;t seem that relevant.<br/>&gt; <br/>&gt; All the attacker can do is blacklist more emails, which given the<br/>&gt; timings surely he can only blacklist his own emails?<br/>&gt; <br/>&gt; Just a thought - wondering if this really needs to be fixed.<br/>&gt; <br/><br/>I made a little change to DNSBL to ensure it randomize scr port and I <br/>see a major difference.<br/><br/>---snip---<br/>my $res = new Net::DNS::Resolver;<br/>$res-&gt;tcp_timeout(30);<br/>$res-&gt;udp_timeout(30);<br/>$res-&gt;srcport(1024+int(rand(64511)));<br/>---snip---<br/><br/>Anyway the worst is maybe that with current solution, results are very <br/>wrong - e.g. blacklisting a sender that shouldn&#39;t be, but is because no <br/>checking of received dns replies. The more busy your server is, the more <br/>it happens - on a server handling around 2 millions SMTP sessions per <br/>day, I see blacklisting of &quot;valid&quot; sender about every 30 seconds.<br/><br/>I vote for a fix :-)<br/><br/>Best regards,<br/>Diego d&#39;Ambra<br/><br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8224.html Sun, 28 Sep 2008 00:02:06 +0000 Re: DNSBL and answer id check missing by Matt Sergeant On Sat, 27 Sep 2008 20:09:37 -0400, Chris Lewis wrote:<br/>&gt; I&#39;ve extended the async dnsbl plugin to do scoring. It occured to me a<br/>&gt; few days ago that DNSBLs with negative scores (DNSWLs) should be treated<br/>&gt; as a hit if they get a timeout or other failure. This has prompted me<br/>&gt; to comment about checking ids too.<br/>&gt; <br/>&gt; The stock one doesn&#39;t do scoring, and hence can&#39;t do DNSWL. You want my<br/>&gt; code? You might not like my logging conventions however ;-)<br/><br/>Like I said, the async version doesn&#39;t suffer from this bug, because it <br/>uses ParaDNS which checks the id fields (but doesn&#39;t do 0x20 checking - <br/>I wish I knew enough to be able to extend it to do so).<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8223.html Sat, 27 Sep 2008 18:04:21 +0000 Re: DNSBL and answer id check missing by Chris Lewis Matt Sergeant wrote:<br/>&gt; On Sat, 27 Sep 2008 13:56:58 +0200, Diego d&#39;Ambra wrote:<br/>&gt;&gt; To me it seems that plugin DNSBL is using Net::DNS bgsend/bgread, but <br/>&gt;&gt; is not checking the id of the reply received.<br/>&gt;&gt;<br/>&gt;&gt; If true this means that an attacker can white- or blacklist any email <br/>&gt; <br/>&gt; Thinking more about this - since we don&#39;t do any &quot;dnswl&quot; type stuff, it <br/>&gt; doesn&#39;t seem that relevant.<br/>&gt; <br/>&gt; All the attacker can do is blacklist more emails, which given the <br/>&gt; timings surely he can only blacklist his own emails?<br/>&gt; <br/>&gt; Just a thought - wondering if this really needs to be fixed.<br/><br/>I&#39;ve extended the async dnsbl plugin to do scoring. It occured to me a<br/>few days ago that DNSBLs with negative scores (DNSWLs) should be treated<br/>as a hit if they get a timeout or other failure. This has prompted me<br/>to comment about checking ids too.<br/><br/>The stock one doesn&#39;t do scoring, and hence can&#39;t do DNSWL. You want my<br/>code? You might not like my logging conventions however ;-)<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8222.html Sat, 27 Sep 2008 17:10:11 +0000 Re: DNSBL and answer id check missing by Matt Sergeant On Sat, 27 Sep 2008 13:56:58 +0200, Diego d&#39;Ambra wrote:<br/>&gt; To me it seems that plugin DNSBL is using Net::DNS bgsend/bgread, but <br/>&gt; is not checking the id of the reply received.<br/>&gt; <br/>&gt; If true this means that an attacker can white- or blacklist any email <br/><br/>Thinking more about this - since we don&#39;t do any &quot;dnswl&quot; type stuff, it <br/>doesn&#39;t seem that relevant.<br/><br/>All the attacker can do is blacklist more emails, which given the <br/>timings surely he can only blacklist his own emails?<br/><br/>Just a thought - wondering if this really needs to be fixed.<br/><br/>Matt.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8221.html Sat, 27 Sep 2008 15:56:55 +0000 Re: DNSBL and answer id check missing by Diego d'Ambra Hanno Hecker wrote:<br/>&gt; Hi Diego,<br/>&gt; <br/>&gt; On Sat, 27 Sep 2008 10:11:15 -0400<br/>&gt; Matt Sergeant &lt;matt@sergeant.org&gt; wrote:<br/>&gt;&gt; On Sat, 27 Sep 2008 13:56:58 +0200, Diego d&#39;Ambra wrote:<br/>&gt;&gt;&gt; To me it seems that plugin DNSBL is using Net::DNS bgsend/bgread, but<br/>&gt;&gt;&gt; is not checking the id of the reply received.<br/>&gt; [...]<br/>&gt;&gt;&gt; I&#39;m working on a way to test this, but would love to hear others<br/>&gt;&gt;&gt; opinion, before doing to much work for maybe nothing :-)<br/>&gt;&gt; I&#39;m pretty sure you&#39;re probably right. The async version uses ParaDNS<br/>&gt;&gt; which does do the id checking.<br/>&gt; What about a generic resolver module for qpsmtpd? We&#39;re doing quite a<br/>&gt; lot of lookups in the different plugins.<br/>&gt; $ grep -lr bgsend plugins/<br/>&gt; plugins/dnsbl<br/>&gt; plugins/rhsbl<br/>&gt; plugins/dns_whitelist_soft<br/>&gt; plugins/uribl<br/>&gt; Plus the non async lookups in require_resolvable_fromhost and the<br/>&gt; core.<br/>&gt; <br/><br/>Excellent idea and especially if the &quot;other places&quot; also need to be fixed.<br/><br/>I&#39;ll gladly assist, but maybe somebody with greater knowledge in <br/>qpsmtpd&#39;s inner working should draft some minimum requirements?<br/><br/>Best regards,<br/>Diego d&#39;Ambra<br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8220.html Sat, 27 Sep 2008 12:40:57 +0000 Re: DNSBL and answer id check missing by Hanno Hecker Hi Diego,<br/><br/>On Sat, 27 Sep 2008 10:11:15 -0400<br/>Matt Sergeant &lt;matt@sergeant.org&gt; wrote:<br/>&gt; On Sat, 27 Sep 2008 13:56:58 +0200, Diego d&#39;Ambra wrote:<br/>&gt; &gt; To me it seems that plugin DNSBL is using Net::DNS bgsend/bgread, but <br/>&gt; &gt; is not checking the id of the reply received.<br/>[...] <br/>&gt; &gt; I&#39;m working on a way to test this, but would love to hear others <br/>&gt; &gt; opinion, before doing to much work for maybe nothing :-)<br/>&gt; <br/>&gt; I&#39;m pretty sure you&#39;re probably right. The async version uses ParaDNS <br/>&gt; which does do the id checking.<br/>What about a generic resolver module for qpsmtpd? We&#39;re doing quite a<br/>lot of lookups in the different plugins. <br/> $ grep -lr bgsend plugins/<br/> plugins/dnsbl<br/> plugins/rhsbl<br/> plugins/dns_whitelist_soft<br/> plugins/uribl<br/>Plus the non async lookups in require_resolvable_fromhost and the<br/>core.<br/> <br/> Hanno<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8219.html Sat, 27 Sep 2008 09:18:52 +0000 Re: DNSBL and answer id check missing by Matt Sergeant On Sat, 27 Sep 2008 13:56:58 +0200, Diego d&#39;Ambra wrote:<br/>&gt; To me it seems that plugin DNSBL is using Net::DNS bgsend/bgread, but <br/>&gt; is not checking the id of the reply received.<br/>&gt; <br/>&gt; If true this means that an attacker can white- or blacklist any email <br/>&gt; by sending fake dns replies (only randomisation is source port). <br/>&gt; Furthermore any other application on same machine also doing dns <br/>&gt; lookup may end up using same source port and have it&#39;s replies being <br/>&gt; mixed with those plugin DNSBL is waiting for.<br/>&gt; <br/>&gt; Spamassassin is also using Net::DNS bgsend/bgread, but does verify if <br/>&gt; the dns answer id matched the request.<br/>&gt; <br/>&gt; Maybe Net::DNS requires the caller to do the validation, or did I <br/>&gt; miss something?<br/>&gt; <br/>&gt; I&#39;m working on a way to test this, but would love to hear others <br/>&gt; opinion, before doing to much work for maybe nothing :-)<br/><br/>I&#39;m pretty sure you&#39;re probably right. The async version uses ParaDNS <br/>which does do the id checking.<br/><br/>(we should probably do 0x20 checking too, but I think that&#39;s beyond my <br/>skill levels :-/ )<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8218.html Sat, 27 Sep 2008 07:11:51 +0000 DNSBL and answer id check missing by Diego d'Ambra To me it seems that plugin DNSBL is using Net::DNS bgsend/bgread, but is <br/>not checking the id of the reply received.<br/><br/>If true this means that an attacker can white- or blacklist any email by <br/>sending fake dns replies (only randomisation is source port). <br/>Furthermore any other application on same machine also doing dns lookup <br/>may end up using same source port and have it&#39;s replies being mixed with <br/>those plugin DNSBL is waiting for.<br/><br/>Spamassassin is also using Net::DNS bgsend/bgread, but does verify if <br/>the dns answer id matched the request.<br/><br/>Maybe Net::DNS requires the caller to do the validation, or did I miss <br/>something?<br/><br/>I&#39;m working on a way to test this, but would love to hear others <br/>opinion, before doing to much work for maybe nothing :-)<br/><br/>Best regards,<br/>Diego d&#39;Ambra<br/><br/><br/><br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8217.html Sat, 27 Sep 2008 04:57:11 +0000 Re: Spamassasin and relay client by Robert Spier <br/><br/>Hanno Hecker wrote:<br/>&gt; <br/>&gt; On Fri, 26 Sep 2008 19:10:42 +0200<br/>&gt; julien@nura.eu wrote:<br/>&gt; &gt; So I write my own wrapper plugin called &quot;sa_norelay&quot; with the following code :<br/>&gt; [...]<br/>&gt; &gt; Then I replace the spamassin call in config/plugins file by <br/>&gt; &gt; sa_norelay, and switch to the 0.40 version or newer.<br/>&gt; &gt; <br/>&gt; &gt; Am I right ?<br/>&gt; Yes, if it works in 0.40 :) I don&#39;t know when this was added.<br/><br/>Plugin wrappers have been around for a long long long time. Since at<br/>least 0.31, which is late 2005.<br/><br/>I&#39;m really happy to start seeing people use them.<br/><br/>-R<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8216.html Fri, 26 Sep 2008 22:36:06 +0000 [qpsmtpd] Is there an orderly restart? by b-sub-96e3ab9a984935f I find that when I am creating or changing plugins, I end up restarting<br/>qpsmtpd regularly. However, this simply amounts to doing &quot;svc -h&quot; and then<br/>cleaning up a few outstanding connections (killing their PIDs), which<br/>stops the subsequent log entries:<br/><br/>Creating TCP socket 0:465: Address already in use<br/><br/>Is there a way to not accept any more connections, let the current<br/>connections finish, and then restart qpsmtpd? Something has to be better<br/>than my current heavy hammer approach.<br/><br/>Or should I simply be doing &quot;svc -h&quot; and then letting nature take its<br/>course?<br/><br/>Thank-you.<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8215.html Fri, 26 Sep 2008 15:17:50 +0000 Re: Spamassasin and relay client by Hanno Hecker On Fri, 26 Sep 2008 19:10:42 +0200<br/>julien@nura.eu wrote:<br/>&gt; So I write my own wrapper plugin called &quot;sa_norelay&quot; with the following code :<br/>[...]<br/>&gt; Then I replace the spamassin call in config/plugins file by <br/>&gt; sa_norelay, and switch to the 0.40 version or newer.<br/>&gt; <br/>&gt; Am I right ?<br/>Yes, if it works in 0.40 :) I don&#39;t know when this was added.<br/><br/> Hanno<br/> http://www.nntp.perl.org/group/perl.qpsmtpd/2008/09/msg8214.html Fri, 26 Sep 2008 11:23:49 +0000