]> dxcluster.net Git - spider.git/blob - cmd/stat/msg.pl
improve speed of sh/c/n (a bit)[probably].
[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 (DXMsg::get_all_fwq());
17         push @out, "Busy Queue Data";
18         foreach my $key (sort (DXMsg::get_all_busy())) {
19                 $ref = DXMsg::get_busy($key);
20                 if ($ref) {
21                         my $msgno = $ref->msgno;
22                         my $stream = $ref->stream;
23                         my $lref = $ref->lines;
24                         my $lines = 0;
25                         $lines = @$lref if $lref;
26                         my $count = $ref->count;
27                         my $to = $ref->to;
28                         my $from = $ref->from;
29                         my $tonode = $ref->tonode;
30                         my $lastt = $ref->lastt ? " Last Processed: " . cldatetime($ref->lastt) : "";
31                         my $waitt = $ref->waitt ? " Waiting since: " . cldatetime($ref->waitt) : "";
32                         push @out, " $key/$tonode: $from -> $to msg: $msgno stream: $stream Count: $count Lines: $lines$lastt$waitt"
33                 } else {
34                         push @out, " dangling ref for $key";
35                 }
36         }
37 } else {
38         foreach my $msgno (@list) {
39                 my $ref = DXMsg::get($msgno);
40                 if ($ref) {
41                         @out = print_all_fields($self, $ref, "Msg Parameters $msgno");
42                 } else {
43                         push @out, $self->msg('m4', $msgno);
44                 }
45                 push @out, "" if @list > 1;
46         }
47 }
48
49 return (1, @out);