> 
> eval {
>                 $sftp = Net::SFTP->new($FTPHOST, user=>$FTPUSER, 
> password=>$FTPPASS);
>                 local $SIG{ALRM} = sub { die "alarm\n" };
>                 alarm 60;
> };
> 
> if ($@) {
>         &sendSNMP unless $@ eq "alarm\n"; 
> }
> 
> When I run the test code with the endless while loop, the 
> script never 
> times out.  Can someone explain how I miswrote my script?
> 
> Unfortunately the hung SFTP connection is hard to reproduce 
> consistently, so I want to be sure my code *should* work if such a 
> situation occurs.  Please note that the SFTP connection must 
> exist in an 
> eval() so when it dies, it does not exit my script.  
> 

maybe try taking alarm out of the eval

local $SIG{ALRM} = sub { die "alarm\n" };
alarm 60;
eval {
        $sftp = Net::SFTP->new($FTPHOST, user=>$FTPUSER,
password=>$FTPPASS);
             
};
alarm 0; #cancel the alarm if does not hang

if ($@ =~ /alarm/) {
          print "must be hung"; 
        &sendSNMP; 
}
 



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to