diff --git a/fhem/CHANGED b/fhem/CHANGED index 83c11011c..1cee5bcb1 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -10,6 +10,7 @@ - bugfix: FHEM2FHEM should work with CUL again, after syntax change - feature: CUL directio mode (No Device::SerialPort needed) - feature: FritzBox 7270 ZIP file + - buxgfix: prevent fhem from stalling if telnet times out in 66_ECMD.pm - 2011-07-08 (5.1) - feature: smallscreen optimizations for iPhone diff --git a/fhem/FHEM/66_ECMD.pm b/fhem/FHEM/66_ECMD.pm index d38f1b795..cee3004ab 100644 --- a/fhem/FHEM/66_ECMD.pm +++ b/fhem/FHEM/66_ECMD.pm @@ -149,7 +149,16 @@ ECMD_OpenDev($$) return; } - my $conn = IO::Socket::INET->new(PeerAddr => $devicename); + my $conn; + eval { + local $SIG{ALRM} = sub { die 'Timed Out'; }; + alarm 10; + $conn = IO::Socket::INET->new(PeerAddr => $devicename, timeout => 5); + }; + alarm 0; + $conn= undef if $@; +# return "Error: timeout." if ( $@ && $@ =~ /Timed Out/ ); +# return "Error: Eval corrupted: $@" if $@; if($conn) { delete($hash->{NEXT_OPEN})