my $buffer = "";
my @lines = ();
my $rdin = ""; vec($rdin, (fileno $sk_log), 1) = 1;
+ my $loss;
WATCH: for (;;) {
for my $line (@lines) {
}
}
- last WATCH unless $sk_log;
+ if (!$sk_log) { $loss = "EOF from server"; last WATCH; }
select my $rdout = $rdin, undef, undef, undef;
READ: for (;;) {
my ($b, $n);
eval { $n = sysread $sk_log, $b, 4096; };
if ($@ && $@->errno == EAGAIN) { last READ; }
- elsif ($@) { die $@; }
+ elsif ($@) { $loss = "error from read: " . $@->errno; last WATCH; }
elsif (!$n) { close $sk_log; $sk_log = undef; }
else { $buffer .= $b; }
}
$buffer = pop @lines;
}
- notify "$TITLE state", "Lost connection";
+ notify "$TITLE state", "Lost connection: $loss";
close $sk;
close $sk_log if defined $sk_log;