-# 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));
+## Identify the users required
+for my $user (map {split /[\s*,\s*]+/} make_list($param{users}||[])) {
+ next unless length($user);
+ push @dependent_files,Debbugs::User::usertag_file_from_email($user);
+}
+if (defined $param{usertag}) {
+ for my $usertag (make_list($param{usertag})) {
+ my ($user, $tag) = split /:/, $usertag, 2;
+ push @dependent_files,Debbugs::User::usertag_file_from_email($user);
+ }
+}
+$etag =
+ etag_does_not_match(cgi => $q,
+ additional_data => [grep {defined $_ ? $_ :()}
+ values %param
+ ],
+ files => [@dependent_files,
+ ],
+ );
+if (not $etag) {
+ print $q->header(-status => 304,
+ -cache_control => 'public, max-age=600',
+ -etag => $etag,
+ -charset => 'utf-8',
+ -content_type => 'text/html',
+ );
+ print "304: Not modified\n";
+ exit 0;
+}