#!/usr/local/bin/perl # mailq_search.cgi # Display some messages from the mail queue require './postfix-lib.pl'; ## no critic use strict; use warnings; our ($neg, %access, %in, @qfiles, %text); require './boxes-lib.pl'; ## no critic &ReadParse(); $access{'mailq'} || &error($text{'mailq_ecannot'}); &ui_print_header(undef, $text{'searchq_title'}, ""); # Get all of the queued messages that this user can see @qfiles = &list_queue(); # Do the search $neg = ($in{'field'} =~ s/^!//); @qfiles = grep { my $r = &compare_field($_); $neg ? !$r : $r } @qfiles; print "
",&text($in{'field'} =~ /^\!/ ? 'search_results3' : 'search_results2', scalar(@qfiles), "".&html_escape($in{'match'}).""),"
\n"; if (@qfiles) { # Show matching messages &mailq_table(\@qfiles); } else { print "$text{'searchq_none'}
\n"; } &ui_print_footer("mailq.cgi", $text{'mailq_return'}, "", $text{'index_return'}); sub compare_field { if ($in{'field'} eq 'size') { return $_[0]->{$in{'field'}} > $in{'match'}; } else { return $_[0]->{$in{'field'}} =~ /\Q$in{'match'}\E/i; } }