-# the log should almost always be newer, but just in case
-my $log_mtime = +(stat $buglog)[9] || time;
-my $status_mtime = +(stat $bug_status)[9] || time;
-my $mtime = strftime '%a, %d %b %Y %T GMT', gmtime(max($status_mtime,$log_mtime));
+sub no_such_bug {
+ my ($q,$ref) = @_;
+ print $q->header(-status => 404,
+ -content_type => "text/html",
+ -charset => 'utf-8',
+ -cache_control => 'public, max-age=600',
+ );
+ print fill_in_template(template=>'cgi/no_such_bug',
+ variables => {modify_time => strftime('%a, %e %b %Y %T UTC', gmtime),
+ bug_num => $ref,
+ },
+ );
+ exit 0;
+}
+
+## calculate etag for this bugreport.cgi call
+my $etag;
+## identify the files that we need to look at; if someone just wants the mbox,
+## they don't need to see anything but the buglog; otherwise, track what is
+## necessary for the usertags and things to calculate status.
+
+my @dependent_files = ($buglog);
+my $need_status = 0;
+if (not (($mbox and not $mbox_status_message) or
+ (defined $att and defined $msg))) {
+ $need_status = 1;
+ push @dependent_files,
+ $bug_status,
+ defined $config{version_index} ? $config{version_index}:(),
+ defined $config{binary_source_map} ? $config{binary_source_map}:();
+}