rendler has asked for the wisdom of the Perl Monks concerning the following question:
I went to test the timeout by specifying the ip address of 10.0.0.1 and port of 275001, on my machine it does as intended and sends the timeout message to the channel but once ran from another machine the irc bot just freezes and the process has to be killed and restarted again, but I've had it working successfully once on the other machine and the other 9 times I've tried just resulted in it being frozen. Any explanations as to what could be causing this?sub send_rcon { my ($server, $port, $password, $command, %message_info) = @_; my $incoming; use IO::Socket; my $socket = IO::Socket::INET->new(PeerAddr => $server, PeerPort => $port, Proto => 'udp') or return "rcon: socket error [ +$!]."; if ($socket) { $socket->send(chr(255)x4 . "rcon $password $command") or return "r +con: send error [$!]."; $SIG{ALRM} = sub { scm($message_info{'irc_chan'}, "rcon: timed out +.", $message_info{'kernel'}); }; eval { alarm (5); sysread($socket, $incoming, 1024) or return "rcon: return erro +r [$1]."; alarm (0); close $socket; }; } return $incoming; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Alarm not working across systems
by clintp (Curate) on Mar 07, 2002 at 00:05 UTC | |
Re: Alarm not working across systems
by BeernuT (Pilgrim) on Mar 07, 2002 at 00:06 UTC | |
by rendler (Pilgrim) on Mar 07, 2002 at 00:36 UTC | |
Re: Alarm not working across systems
by particle (Vicar) on Mar 07, 2002 at 14:51 UTC |