summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbackdoor.cgi2
-rwxr-xr-xcreateattachment.cgi13
-rwxr-xr-xpost_bug.cgi10
-rwxr-xr-xprocess_bug.cgi19
-rwxr-xr-xprocessmail89
5 files changed, 71 insertions, 62 deletions
diff --git a/backdoor.cgi b/backdoor.cgi
index 0c4a013be..dd96b6316 100755
--- a/backdoor.cgi
+++ b/backdoor.cgi
@@ -160,4 +160,4 @@ foreach my $cc (split(/,/, $::FORM{'cc'})) {
}
print "Created bugzilla bug $zillaid\n";
-system("./processmail $zillaid < /dev/null > /dev/null 2> /dev/null &");
+system("./processmail $zillaid");
diff --git a/createattachment.cgi b/createattachment.cgi
index 80dff3520..225efc02f 100755
--- a/createattachment.cgi
+++ b/createattachment.cgi
@@ -97,16 +97,11 @@ What kind of file is this?
my $attachid = FetchOneColumn();
AppendComment($id, $::COOKIE{"Bugzilla_login"},
"Created an attachment (id=$attachid)\n$desc\n");
- print "Your attachment has been created.";
- system("./processmail $id < /dev/null > /dev/null 2> /dev/null &");
-
+ print "<TABLE BORDER=1><TD><H2>Attachment to bug $id created</H2>\n";
+ system("./processmail $id $::COOKIE{'Bugzilla_login'}");
+ print "<TD><A HREF=\"show_bug.cgi?id=$id\">Go Back to BUG# $id</A></TABLE>\n";
}
+navigation_header();
-
-print qq{
-<P>
-<a href="show_bug.cgi?id=$id">Go back to bug $id</a><br>
-<a href="query.cgi">Go back to the query page</a><br>
-};
diff --git a/post_bug.cgi b/post_bug.cgi
index 6ad8aff82..e98767b1b 100755
--- a/post_bug.cgi
+++ b/post_bug.cgi
@@ -136,12 +136,12 @@ foreach my $person (keys %ccids) {
SendSQL("insert into cc (bug_id, who) values ($id, $person)");
}
-print "<H2>Changes Submitted</H2>\n";
-print "<A HREF=\"show_bug.cgi?id=$id\">Show BUG# $id</A>\n";
-print "<BR><A HREF=\"createattachment.cgi?id=$id\">Attach a file to this bug</a>\n";
-print "<BR><A HREF=\"query.cgi\">Back To Query Page</A>\n";
+print "<TABLE BORDER=1><TD><H2>Bug $id posted</H2>\n";
+system("./processmail $id $::COOKIE{'Bugzilla_login'}");
+print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n";
+print "<BR><A HREF=\"createattachment.cgi?id=$id\">Attach a file to this bug</a>\n";
-system("./processmail $id < /dev/null > /dev/null 2> /dev/null &");
+navigation_header();
exit;
diff --git a/process_bug.cgi b/process_bug.cgi
index fc425a199..c671a90c2 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -226,13 +226,17 @@ SWITCH: for ($::FORM{'knob'}) {
exit;
}
if ($::FORM{'dup_id'} == $::FORM{'id'}) {
- print "Nice try. But it doesn't really make sense to mark a\n";
+ print "Nice try, $::FORM{'who'}. But it doesn't really make sense to mark a\n";
print "bug as a duplicate of itself, does it?\n";
exit;
}
AppendComment($::FORM{'dup_id'}, $::FORM{'who'}, "*** Bug $::FORM{'id'} has been marked as a duplicate of this bug. ***");
$::FORM{'comment'} .= "\n\n*** This bug has been marked as a duplicate of $::FORM{'dup_id'} ***";
- system("./processmail $::FORM{'dup_id'} < /dev/null > /dev/null 2> /dev/null &");
+
+ print "<TABLE BORDER=1><TD><H2>Notation added to bug $::FORM{'dup_id'}</H2>\n";
+ system("./processmail $::FORM{'dup_id'} $::FORM{'who'}");
+ print "<TD><A HREF=\"show_bug.cgi?id=$::FORM{'dup_id'}\">Go To BUG# $::FORM{'dup_id'}</A></TABLE>\n";
+
last SWITCH;
};
# default
@@ -327,20 +331,19 @@ foreach my $id (@idlist) {
}
}
- print "<TABLE BORDER=1><TD><H1>Changes Submitted</H1>\n";
- print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n";
-
+ print "<TABLE BORDER=1><TD><H2>Changes to bug $id submitted</H2>\n";
SendSQL("unlock tables");
-
- system("./processmail $id < /dev/null > /dev/null 2> /dev/null &");
+ system("./processmail $id $::FORM{'who'}");
+ print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n";
}
if (defined $::next_bug) {
+ print("<P>The next bug in your list is:\n");
$::FORM{'id'} = $::next_bug;
print "<HR>\n";
navigation_header();
do "bug_form.pl";
} else {
- print "<BR><A HREF=\"query.cgi\">Back To Query Page</A>\n";
+ navigation_header();
}
diff --git a/processmail b/processmail
index 3da6448e1..48eba9193 100755
--- a/processmail
+++ b/processmail
@@ -17,8 +17,8 @@
# Corporation. Portions created by Netscape are Copyright (C) 1998
# Netscape Communications Corporation. All Rights Reserved.
#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-
+# Contributor(s): Terry Weissman <terry@mozilla.org>,
+# Bryce Nesbitt <bryce-mozilla@nextbus.com>
# To recreate the shadow database, run "processmail regenerate" .
@@ -32,6 +32,8 @@ $| = 1;
umask(0);
$::lockcount = 0;
+my $regenerate = 0;
+my $nametoexclude = "";
sub Lock {
if ($::lockcount <= 0) {
@@ -182,7 +184,7 @@ sub fixaddresses {
my @result;
my %seen;
foreach my $i (@$list) {
- if ($i ne "" && !defined $::nomail{$i} && !defined $seen{$i}) {
+ if ($i ne $nametoexclude && $i ne "" && !defined $::nomail{$i} && !defined $seen{$i}) {
push @result, $i;
$seen{$i} = 1;
}
@@ -200,40 +202,8 @@ sub Log {
Unlock();
}
-
-ConnectToDatabase();
-
-
-Lock();
-
-# foreach i [split [read_file -nonewline "okmail"] "\n"] {
-# set okmail($i) 1
-# }
-
-
-
-if (open(FID, "<data/nomail")) {
- while (<FID>) {
- $::nomail{trim($_)} = 1;
- }
- close FID;
-}
-
-
-my $regenerate = 0;
-
-if ($ARGV[0] eq "regenerate") {
- $regenerate = 1;
- shift @ARGV;
- SendSQL("select bug_id from bugs order by bug_id");
- my @row;
- while (@row = FetchSQLData()) {
- push @ARGV, $row[0];
- }
- print "$#ARGV bugs to be regenerated.\n";
-}
-
-foreach my $i (@ARGV) {
+sub ProcessOneBug {
+ my $i = $_[0];
my $old = "shadow/$i";
my $new = "shadow/$i.tmp.$$";
my $diffs = "shadow/$i.diffs.$$";
@@ -257,7 +227,7 @@ foreach my $i (@ARGV) {
my $tolist = fixaddresses([$::bug{'assigned_to'}, $::bug{'reporter'},
$::bug{'qa_contact'}]);
my $cclist = fixaddresses($::bug{'cclist'});
- my $logstr = "Bug $i changed";
+ my $logstr = "Bug $i $verb";
if ($tolist ne "" || $cclist ne "") {
my %substs;
@@ -275,11 +245,13 @@ foreach my $i (@ARGV) {
my $msg = PerformSubsts(Param("changedmail"), \%substs);
if (!$regenerate) {
+ # Note: fixaddresses may result in a Cc: only. This seems harmless.
open(SENDMAIL, "|/usr/lib/sendmail -t") ||
die "Can't open sendmail";
print SENDMAIL $msg;
close SENDMAIL;
- $logstr = "$logstr; mail sent to $tolist $cclist";
+ $logstr = "$logstr; mail sent to $tolist, $cclist";
+ print "<B>Email sent to:</B> $tolist $cclist <B>Excluding:</B> $nametoexclude\n";
}
}
unlink($diffs);
@@ -292,4 +264,43 @@ foreach my $i (@ARGV) {
}
}
+# Code starts here
+
+ConnectToDatabase();
+Lock();
+
+if (open(FID, "<data/nomail")) {
+ while (<FID>) {
+ $::nomail{trim($_)} = 1;
+ }
+ close FID;
+}
+
+if (($#ARGV < 0) || ($#ARGV > 1)) {
+ print "Usage error: processmail {bugid} {nametoexclude}\nOr: processmail regenerate\n";
+ exit;
+}
+
+# To recreate the shadow database, run "processmail regenerate" .
+if ($ARGV[0] eq "regenerate") {
+ $regenerate = 1;
+ shift @ARGV;
+ SendSQL("select bug_id from bugs order by bug_id");
+ my @regenerate_list;
+ while (my @row = FetchSQLData()) {
+ push @regenerate_list, $row[0];
+ }
+ foreach my $i (@regenerate_list) {
+ ProcessOneBug($i);
+ }
+ print("\n");
+ exit;
+}
+
+if ($#ARGV == 1) {
+ $nametoexclude = $ARGV[1];
+}
+
+ProcessOneBug($ARGV[0]);
+
exit;