# header and decoded body respectively
my (@headerlines, @bodylines);
+# whether maintainer addresses have been checked
+our $maintainerschecked = 0;
#maintainer address for this message
our @maintaddrs;
# other src addresses
{
if ($replyto =~ m/$gBounceFroms/o ||
$header{'from'} =~ m/$gBounceFroms/o)
- {
- &quit("bounce detected ! Mwaap! Mwaap!");
+ {
+ print STDERR "bounce detected ! Mwaap! Mwaap!";
+ exit 1;
}
my $markedby= $header{'from'} eq $replyto ? $replyto :
"$header{'from'} (reply to $replyto)";
$generalcc='';
}
} else { # Done
- if (length($data->{done}) and
+ if (defined $data->{done} and length($data->{done}) and
not defined $pheader{'source-version'} and
not defined $pheader{'version'}) {
&appendlog;
(defined($source_package) and length($source_package))?("X-$gProject-PR-Source" => $source_package):(),
"Reply-To" => "$ref\@$gEmailDomain",
"Content-Type" => 'text/plain; charset="utf-8"',
- ],message_body_template('mail/process_mark_as_done',
+ ],message_body_template('mail/process_your_bug_done',
{data => $data,
markedby => $markedby,
messageid => $header{'message-id'},
$data->{package} = $pheader{source};
} elsif (defined $pheader{package}) {
$data->{package} = $pheader{package};
- } else {
+ } elsif (defined $config{default_package}) {
+ $data->{package} = $config{default_package},
+ }
+ else {
&htmllog("Warning","sent",$replyto,"Message not forwarded.");
my $body = message_body_template('mail/process_no_package',
);
&finish;
}
+ if (defined $config{default_package}) {
+ &checkmaintainers;
+ # if there are no maintainers for this package, assign it to the default package
+ if (not @maintaddrs) {
+ $data->{package} = $config{default_package};
+ $brokenness.= fill_template('mail/process_default_package_selected',
+ {old_package => $pheader{source} || $pheader{package} || 'No package',
+ new_package => $data->{package},
+ }
+ );
+ # force the maintainers to be rechecked
+ $maintainerschecked = 0;
+ &checkmaintainers;
+ }
+ }
+
$data->{keywords}= '';
if (defined($pheader{'keywords'})) {
$data->{keywords}= $pheader{'keywords'};
$data->{severity} =~ s/^\s*(.+)\s*$/$1/;
if (!grep($_ eq $data->{severity}, @gSeverityList, "$gDefaultSeverity")) {
- $brokenness.= fill_in_template('mail/invalid_severity',
- {severity=>$data->{severity}}
- );
+ $brokenness.= fill_template('mail/invalid_severity',
+ {severity=>$data->{severity}}
+ );
$data->{severity}= '';
}
}
write_usertags(\%user_tags,$user);
}
else {
- $brokenness .= fill_in_template('mail/invalid_user',
- {user => $user}
- );
+ $brokenness .= fill_template('mail/invalid_user',
+ {user => $user}
+ );
}
}
&overwrite("db-h/$hash/$ref.report",
}
-my $maintainerschecked = 0;
sub checkmaintainers {
return if $maintainerschecked++;
return if !length($data->{package});