sub gotOK
{
#Return 1 if $sock, the argument, contains a OK, else false
if(@_ != 1)
{
warn "Calling function gotOK without right parameter count, aborting\n";
return 0;
}
my $READ_TIMEOUT = 10;
my $sock = $_[0];
my $getline;
eval
{
local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
alarm $READ_TIMEOUT;
$getline = <$sock>;
alarm 0;
};
if ($@) #timed out during connecting to server...
{
die unless $@ eq "alarm\n";
warn "Timeout during read from server...\n";
return 0;
}
warn "this should not happen!\n" unless($getline);
if($getline =~ /^OK\s*$/)
{
return 1;
}
return 0;
}