use Debbugs::Status qw(:versions);
use Debbugs::Config qw(:globals :config);
+use Debbugs::Control qw(append_action_to_log);
+
chdir( "$gSpoolDir" ) || die "chdir spool: $!\n";
#open(DEBUG,"> /tmp/debbugs.debug");
# extract pseudo-headers
for my $phline (@bodylines)
{
+ # Remove BOM markers from UTF-8 strings
+ # Fixes #488554
+ $phline =~ s/\xef\xbb\xbf//g;
last if $phline !~ m/^([\w-]+):\s*(\S.*)/;
my ($fn, $fv) = ($1, $2);
$fv =~ s/\s*$//;
if ($bfound) {
$ref= $tryref;
} else {
- &htmllog("Reply","sent", $replyto,"Unknown problem report number <code>$tryref</code>.");
&sendmessage(create_mime_message(
[From => "$gMaintainerEmail ($gProject $gBug Tracking System)",
To => $replyto,
push @generalcc,"$gStrongList\@$gListDomain";
}
if ($ref<0) {
- &htmllog("Warning","sent",$replyto,"Message ignored.");
&sendmessage(create_mime_message(
[From => "$gMaintainerEmail ($gProject $gBug Tracking System)",
To => $replyto,
if ($ref<0) { # new bug report
if ($codeletter eq 'U') { # -submitter
- &htmllog("Warning","sent",$replyto,"Message not forwarded.");
&sendmessage(create_mime_message(
[From => "$gMaintainerEmail ($gProject $gBug Tracking System)",
To => $replyto,
$data->{package} = $config{default_package},
}
else {
- &htmllog("Warning","sent",$replyto,"Message not forwarded.");
my $body = message_body_template('mail/process_no_package',
);
&sendmessage(create_mime_message(
sub htmllog {
my ($whatobj,$whatverb,$where,$desc) = @_;
- my $hash = get_hashname($ref);
- open(AP,">>db-h/$hash/$ref.log") || die "opening db-h/$hash/$ref.log (lh): $!";
- print(AP
- "\6\n".
- "<strong>$whatobj $whatverb</strong>".
- ($where eq '' ? "" : " to <code>".html_escape($where)."</code>").
- ":<br>\n". $desc.
- "\n\3\n") || die "writing db-h/$hash/$ref.log (lh): $!";
- close(AP) || die "closing db-h/$hash/$ref.log (lh): $!";
-}
+ append_action_to_log(bug => $ref,
+ action => "$whatobj $whatverb",
+ requester => '',
+ request_addr => $where,
+ desc => $desc,
+ get_lock => 0,
+ );
+}
sub stripbccs {
my $msg = shift;
my $hole_var = {'&bugurl' =>
sub{"$_[0]: ".
'http://'.$config{cgi_domain}.'/'.
- Debbugs::CGI::bug_url($_[0]);
+ Debbugs::CGI::bug_links(bug=>$_[0],
+ links_only => 1,
+ );
}
};
return fill_in_template(template => $template,
my ($bug_fn) = @_;
# Read the bug information and package information for passing to
# the mailing list
+ my $bug_fh = IO::File->new("incoming/P$bug_fn",'r') or
+ die "Unable to open incoming/P$bug_fn $!";
+
+ if (not defined $config{bug_subscription_domain} or not
+ length $config{bug_subscription_domain}) {
+ unlink("incoming/P$bug_fn") or
+ die "unlinking incoming/P$bug_fn: $!";
+ exit 0;
+ }
+
my ($bug_number) = $bug_fn =~ /^L(\d+)\./;
- my ($bfound, $data)= lockreadbugmerge($bug_number);
- my $bug_fh = IO::File->new("incoming/P$bug_fn",'r') or die "Unable to open incoming/P$bug_fn $!";
+ my $data = read_bug(bug => $bug_number);
local $/ = undef;
my $bug_message = <$bug_fh>;
# If we don't have a bug address, something has gone horribly wrong.
print STDERR "Doesn't match: $bug_address\n" and exit 1 unless defined $bug_address;
$bug_address =~ s/\@.+//;
- print DEBUG "Sending message to bugs=$bug_address\@$gListDomain\n";
+ print DEBUG "Sending message to bugs=$bug_address\@$config{bug_subscription_domain}\n";
print DEBUG $header.qq(\n\n).$body;
send_mail_message(message => $header.qq(\n\n).$body,
- recipients => ["bugs=$bug_address\@$gListDomain"],
+ recipients => ["bugs=$bug_address\@$config{bug_subscription_domain}"],
envelope_from => $envelope_from,
encode_headers => 0,
);