getting strict on angle brackets and spaces

2007-02-16 Thread David Sparks
Hi, I've just upgraded to the latest version and noticed that mail from
and rcpt to checking is now very strict.  Bear in mind that I use
qpsmtpd on a spamtrap, so getting strict with the protocol isn't what
I want.

I found the workaround for optional brackets by adding them in
hook_rcpt_pre when missing, but I can't find a workaround for what to do
for senders that put a space between the : and the envelope address, ie:

MAIL FROM: [EMAIL PROTECTED]

The above line doesn't even get sent to the hook_rcpt_pre hook.

After reading over a few threads in the archives, it seems that the
angle bracket issue was resolved with the hook_rcpt_pre and the spaces
issue was never resolved?  Whats the solution for this?

I'm using the async server.

Cheers,

ds


Re: getting strict on angle brackets and spaces

2007-02-16 Thread Matt Sergeant

On 16-Feb-07, at 6:32 PM, David Sparks wrote:

Hi, I've just upgraded to the latest version and noticed that mail  
from

and rcpt to checking is now very strict.  Bear in mind that I use
qpsmtpd on a spamtrap, so getting strict with the protocol isn't  
what

I want.


Interesting note. I haven't yet noticed this, but I imagine I would  
soon...


(as a side note I have another speedup coming for you shortly - I  
have re-written the DNS resolver in XS, which should provide a  
significant speedup).



I found the workaround for optional brackets by adding them in
hook_rcpt_pre when missing, but I can't find a workaround for what  
to do
for senders that put a space between the : and the envelope  
address, ie:


MAIL FROM: [EMAIL PROTECTED]

The above line doesn't even get sent to the hook_rcpt_pre hook.


Bug. Try this patch:

Index: lib/Qpsmtpd/PollServer.pm
===
--- lib/Qpsmtpd/PollServer.pm   (revision 714)
+++ lib/Qpsmtpd/PollServer.pm   (working copy)
@@ -141,7 +141,7 @@
sub process_cmd {
 my Qpsmtpd::PollServer $self = shift;
 my $line = shift;
-my ($cmd, @params) = split(/ +/, $line);
+my ($cmd, @params) = split(/ +/, $line, 2);
 my $meth = lc($cmd);
 if (my $lookup = $self-{_commands}-{$meth}  $self-can 
($meth)) {

 my $resp = eval {