http://qs321.pair.com?node_id=1155189


in reply to IO::Socket reconnect

Hi nikita.af,

Try catching the SIGPIPE signal. Something like:

my $b_err = 0; $SIG{'PIPE'} = sub { $b_err = 1 }; print $agent_socket $monitoring_node . ".lmonitor." . $monitoring_ +name . ".rtt.value=" . $latency . "\n"; if ($b_err) { # .... Handle the SIGPIPE error }

will likely work. If a SIGPIPE error happens while printing to the socket, the flag "$b_err" gets set, and you can then handle the error appropriately.

Oh, one other note -- isn't:

print $agent_socket "$monitoring_node.lmonitor.$monitoring_name.rtt.v +alue=. $latency .\n";

a lot easier to read than the original? ;-)

say  substr+lc crypt(qw $i3 SI$),4,5