3 use strict qw(refs vars);
15 my ($ts,$col,$how) = @_;
18 foreach (my $i=0; $i<@col2num; $i++) {
19 if (defined $col2num[$i]) {
21 $o .= $col==$i ? " $how" : " |";
26 printf "%s %3d %s\n", $ts, $n, $o or die $!;
31 my ($ts, $num, $how, $openclose) = @_;
32 my $col= $num2col{$num};
35 for ($col=0; defined $col2num[$col]; $col++) { }
38 report($ts, $col, $how);
40 event($ts, $num, '?', +1);
42 report($ts, $col, $how);
45 report($ts, $col, $how);
48 delete $num2col{$num};
49 $col2num[$col]= undef;
53 my $in= new IO::File '<& STDIN';
54 my $slp= Parse::Syslog->new($in);
55 while (my $sl= $slp->next) {
56 next unless $sl->{program} eq 'innd';
58 s/^([^ :]+)// or next;
59 #print STDERR ">$1<\n";
60 next unless $1 eq $site;
62 my $timestamp= strftime "%Y-%m-%d %H:%M:%S", localtime $sl->{timestamp};
64 #print STDERR "eventing\n";
65 if (m/^\:(\d+) inactive\b/) {
66 event($timestamp, $1, ':', 0);
67 } elsif (m/^\:(\d+) checkpoint\b/) {
68 event($timestamp, $1, 'I', 0);
69 } elsif (m/^\:(\d+) NCmode\b/) {
70 event($timestamp, $1, '#', 0);
71 } elsif (m/^\:(\d+) closed\b/) {
72 event($timestamp, $1, '^', -1);
73 } elsif (m/^ connected (\d+)\b/) {
74 event($timestamp, $1, 'v', +1);
76 #print STDERR "evented\n";