fix a couple of sillies
[spider.git] / cmd / stat / msg.pl
1 #
2 # show all the values on a message header
3 #
4 # $Id$
5 #
6
7 my ($self, $line) = @_;
8 my @list = split /\s+/, $line;                # generate a list of msg nos
9 my @out;
10
11 return (1, $self->msg('e5')) if $self->priv < 1;
12
13 if (@list == 0) {
14         my $ref;
15         push @out, "Work Queue Keys";
16         push @out, map { " $_" } sort keys %DXMsg::work;
17         push @out, "Busy Queue Data";
18         foreach $ref (sort {$a->to cmp $b->to} DXMsg::get_all_busy) {
19                 my $msgno = $ref->msgno;
20                 my $stream = $ref->stream;
21                 my $lref = $ref->lines;
22                 my $lines = 0;
23                 $lines = @$lref if $lref;
24                 my $count = $ref->count;
25                 my $to = $ref->to;
26                 my $from = $ref->from;
27                 my $lastt = $ref->lastt ? " Last Processed: " . cldatetime($ref->lastt) : "";
28                 my $waitt = $ref->waitt ? " Waiting since: " . cldatetime($ref->waitt) : "";
29                 
30                 push @out, "$from -> $to msg: $msgno stream: $stream Count: $count Lines: $lines$lastt$waitt";
31         }
32 } else {
33         foreach my $msgno (@list) {
34                 my $ref = DXMsg::get($msgno);
35                 if ($ref) {
36                         @out = print_all_fields($self, $ref, "Msg Parameters $msgno");
37                 } else {
38                         push @out, $self->msg('m4', $msgno);
39                 }
40                 push @out, "" if @list > 1;
41         }
42 }
43
44 return (1, @out);