diff -Nur -x '*.orig' -x '*.rej' qpsmtpd-0.40/plugins/rhsbl mezzanine_patched_qpsmtpd-0.40/plugins/rhsbl --- qpsmtpd-0.40/plugins/rhsbl 2007-06-14 13:57:24.000000000 -0400 +++ mezzanine_patched_qpsmtpd-0.40/plugins/rhsbl 2007-10-16 17:28:06.000000000 -0400 @@ -1,4 +1,13 @@ +sub register { + my ($self, $qp, $denial ) = @_; + if ( defined $denial and $denial =~ /^disconnect$/i ) { + $self->{_rhsbl}->{DENY} = DENY_DISCONNECT; + } + else { + $self->{_rhsbl}->{DENY} = DENY; + } +} sub hook_mail { my ($self, $transaction, $sender, %param) = @_; @@ -48,12 +57,12 @@ my $result = $self->process_sockets; if ($result && defined($self->{_rhsbl_zones_map}{$result})) { if ($result =~ /^$host\./ ) { - return (DENY, "Mail from $host rejected because it " . $self->{_rhsbl_zones_map}{$result}); + return ($self->{_rhsbl}->{DENY}, "Mail from $host rejected because it " . $self->{_rhsbl_zones_map}{$result}); } else { - return (DENY, "Mail from HELO $hello rejected because it " . $self->{_rhsbl_zones_map}{$result}); + return ($self->{_rhsbl}->{DENY}, "Mail from HELO $hello rejected because it " . $self->{_rhsbl_zones_map}{$result}); } } - return (DENY, $result) if $result; + return ($self->{_rhsbl}->{DENY}, $result) if $result; return DECLINED; }