Fix bug which breaks queue plugins that implement continuations

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@764 958fd67b-6ff1-0310-b445-bb7760255be9
This commit is contained in:
Matt Sergeant 2007-08-03 20:16:01 +00:00
parent 8809fceb4a
commit 521a6f3f9e

View File

@ -719,18 +719,18 @@ sub data_post_respond {
elsif ($rc == DENY) { elsif ($rc == DENY) {
$msg->[0] ||= "Message denied"; $msg->[0] ||= "Message denied";
$self->respond(552, @$msg); $self->respond(552, @$msg);
# DATA is always the end of a "transaction"
return $self->reset_transaction;
} }
elsif ($rc == DENYSOFT) { elsif ($rc == DENYSOFT) {
$msg->[0] ||= "Message denied temporarily"; $msg->[0] ||= "Message denied temporarily";
$self->respond(452, @$msg); $self->respond(452, @$msg);
# DATA is always the end of a "transaction"
return $self->reset_transaction;
} }
else { else {
$self->queue($self->transaction); $self->queue($self->transaction);
} }
# DATA is always the end of a "transaction"
return $self->reset_transaction;
} }
sub getline { sub getline {
@ -765,6 +765,10 @@ sub queue_pre_respond {
sub queue_respond { sub queue_respond {
my ($self, $rc, $msg, $args) = @_; my ($self, $rc, $msg, $args) = @_;
# reset transaction if we queued the mail
return $self->reset_transaction;
if ($rc == DONE) { if ($rc == DONE) {
return 1; return 1;
} }