- print $q->header(-status => "404 No such bug",
- -type => "text/html",
- -charset => 'utf-8',
- );
- 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;
+ no_such_bug($q,$ref);
+}
+
+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}:();