diff --git a/Changes b/Changes index 36b1a4b..6229a77 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,12 @@ 0.26-dev + Add queue/smtp-forward plugin (Matt Sergeant) + + Add documentation to Qpsmtpd::Transaction (Matt Sergeant) + + Fix bug in dnsbl that made it sometimes ignore "hits" (thanks to + James H. Thompson ) + Fix bug hiding the error message when an existing configuration file isn't readable. diff --git a/plugins/dnsbl b/plugins/dnsbl index 7e5c0fb..fff593b 100644 --- a/plugins/dnsbl +++ b/plugins/dnsbl @@ -47,8 +47,8 @@ sub process_sockets { $self->log(8, "waiting for dnsbl dns"); - # don't wait more than 5 seconds here - my @ready = $sel->can_read(5); + # don't wait more than 4 seconds here + my @ready = $sel->can_read(4); $self->log(8, "DONE waiting for dnsbl dns, got " , scalar @ready, " answers ...") ; return '' unless @ready; @@ -79,8 +79,11 @@ sub process_sockets { unless $res->errorstring eq "NXDOMAIN"; } - last if $result; - + if ($result) { + #kill any other pending I/O + $conn->notes('dnsbl_sockets', undef); + return $conn->notes('dnsbl', $result); + } } if ($sel->count) { @@ -88,6 +91,8 @@ sub process_sockets { return $self->process_sockets(); } + # er, the following code doesn't make much sense anymore... + # if there was more to read; then forget it $conn->notes('dnsbl_sockets', undef);