]> git.donarmstrong.com Git - debbugs.git/commitdiff
Merge branch 'don/processcleanup' into control.at.submit
authorDon Armstrong <don@donarmstrong.com>
Fri, 13 Jul 2012 00:14:00 +0000 (17:14 -0700)
committerDon Armstrong <don@donarmstrong.com>
Fri, 13 Jul 2012 00:14:00 +0000 (17:14 -0700)
1  2 
scripts/process

diff --combined scripts/process
index c238246613d82bc113fcb2c1f6e7c247e4e42e28,40bc1fccc2edb0597672c09c9366be9a27872369..c8b30b54181d5fe512cef3b162af8debadeae2d4
@@@ -18,7 -18,7 +18,7 @@@ use Debbugs::MIME qw(decode_rfc1522 cre
  use Debbugs::Mail qw(send_mail_message encode_headers get_addresses);
  use Debbugs::Packages qw(getpkgsrc binary_to_source);
  use Debbugs::User qw(read_usertags write_usertags);
- use Debbugs::Common qw(:lock get_hashname package_maintainer overwritefile);
+ use Debbugs::Common qw(:lock get_hashname buglog package_maintainer overwritefile);
  use Debbugs::Status qw(writebug isstrongseverity lockreadbugmerge lockreadbug new_bug read_bug splitpackages  :versions);
  
  use Debbugs::CGI qw(html_escape bug_url);
@@@ -172,7 -172,7 +172,7 @@@ for my $hdr (@headerlines) 
      $hdr = decode_rfc1522($hdr);
      $_ = $hdr;
      s/\n\s/ /g;
-     &finish if m/^x-loop: (\S+)$/i && $1 eq "$gMaintainerEmail";
+     finish() if m/^x-loop: (\S+)$/i && $1 eq "$gMaintainerEmail";
      my $ins = !m/^subject:/i && !m/^reply-to:/i && !m/^return-path:/i
             && !m/^From / && !m/^X-Debbugs-/i;
      $fwd .= $hdr."\n" if $ins;
@@@ -210,7 -210,6 +210,7 @@@ if (@bodylines and $bodylines[0] =~ /^-
  
  #psuedoheaders
  my %pheader;
 +my @control_bits;
  # extract pseudo-headers
  for my $phline (@bodylines)
  {
      $fv =~ s/\s*$//;
      print {$debugfh} ">$fn|$fv|\n";
      $fn = lc $fn;
 -    # Don't lc owner or forwarded
 -    $fv = lc $fv unless $fn =~ /^(?:owner|forwarded|usertags|version|source-version)$/;
 -    $pheader{$fn} = $fv;
 +    if ($fn =~ /^control$/) {
 +      push @control_bits,$fv;
 +    } else {
 +      # Don't lc owner or forwarded
 +      $fv = lc $fv unless $fn =~ /^(?:owner|forwarded|usertags|version|source-version)$/;
 +      $pheader{$fn} = $fv;
 +    }
      print {$debugfh} ">$fn~$fv<\n";
  }
  
@@@ -297,8 -292,8 +297,8 @@@ if (defined $tryref) 
                                   messageid => $header{'message-id'},
                                  },
                                 )),'');
-         &appendlog;
-         &finish;
+         appendlog($ref,$msg);
+         finish();
      }
  } else { 
      &filelock('lock/-1'); 
@@@ -334,7 -329,7 +334,7 @@@ if ($codeletter eq 'D' || $codeletter e
      my $generalcc;
      my $set_done;
      if ($codeletter eq 'F') { # Forwarded
-         (&appendlog,&finish) if defined $data->{forwarded} and length($data->{forwarded});
+         (appendlog($ref,$msg),finish()) if defined $data->{forwarded} and length($data->{forwarded});
          $receivedat= "forwarded\@$gEmailDomain";
          $markaswhat= 'forwarded';
          $set_forwarded= $header{'to'};
          if (defined $data->{done} and length($data->{done}) and
                  not defined $pheader{'source-version'} and
                  not defined $pheader{'version'}) {
-             &appendlog;
-             &finish;
+             appendlog($ref,$msg);
+             finish();
          }
          $receivedat= "done\@$gEmailDomain";
          $markaswhat= 'done';
                                   messageid => $header{'message-id'},
                                  },
                                 )),'');
-       &appendlog;
-       &finish;
+       appendlog($ref,$msg);
+       finish();
      }
  
      &checkmaintainers;
        writebug($ref, $data);
  
        my $hash = get_hashname($ref);
-         open(O,"db-h/$hash/$ref.report") || die "read original report: $!";
-         my $orig_report= join('',<O>); close(O);
+       my $orig_report_fh = IO::File->new("db-h/$hash/$ref.report") or
+           die "Unable to read original report: $!";
+       my $orig_report;
+       { local $/; $orig_report = <$orig_report_fh>;}
+       close($orig_report_fh) or
+           die "Unable to close original report filehandle: $!";
          if ($codeletter eq 'F') {
            &htmllog("Reply","sent",$replyto,"You have marked $gBug as forwarded.");
              &sendmessage(create_mime_message(
                                    ),
             [join("\n",@msg),$orig_report]),'',undef,1);
          }
-       &appendlog;
+       appendlog($ref,$msg);
      }
-     &finish;
+     finish();
  }
  
  if ($ref<0) { # new bug report
                                   messageid => $header{'message-id'},
                                  },
                                 )),'');
-       &appendlog;
-       &finish;
+       appendlog($ref,$msg);
+       finish();
      }
  
      $data->{found_versions} = [];
                                  baddress => $baddress,
                                 },
                                ),[join("\n", @msg)]), '',undef,1);
-       &appendlog;
-       &finish;
+       appendlog($ref,$msg);
+       finish();
      }
  
      if (defined $config{default_package}) {
@@@ -948,18 -947,21 +952,21 @@@ if (not exists $header{'x-debbugs-no-ac
                       ],$body,[]), '',undef,1);
  }
  
&appendlog;
&finish;
appendlog($ref,$msg);
finish();
  
  sub appendlog {
-     my $hash = get_hashname($ref);
-     if (!open(AP,">>db-h/$hash/$ref.log")) {
-         print {$debugfh} "failed open log<\n";
-         print {$debugfh} "failed open log err $!<\n";
-         die "opening db-h/$hash/$ref.log (li): $!";
-     }
-     print(AP "\7\n",escape_log($msg),"\n\3\n") || die "writing db-h/$hash/$ref.log (li): $!";
-     close(AP) || die "closing db-h/$hash/$ref.log (li): $!";
+     my ($ref,$msg) = @_;
+     my $log_location = buglog($ref);
+     die "Unable to find .log for $ref"
+       if not defined $log_location;
+     my $logfh = IO::File->new(">>$log_location") or
+       die "Unable to open $log_location for appending: $!";
+     write_log_records(logfh => $logfh,
+                     records => [{type => 'incoming-recv',
+                                  text => $msg,
+                                 }]);
+     close ($logfh) or die "Unable to close $log_location: $!";
  }
  
  sub finish {