diff --git a/fhem/FHEM/Blocking.pm b/fhem/FHEM/Blocking.pm index 3fe9fd9aa..b7db83120 100644 --- a/fhem/FHEM/Blocking.pm +++ b/fhem/FHEM/Blocking.pm @@ -52,18 +52,16 @@ BlockingCall($$@) # If not suitable telnet device found, create a temporary one if(!$telnetDevice) { - if(!CommandDefine(undef, "$tName telnet 0")) { - CommandAttr(undef, "$tName room hidden"); - $telnetDevice = $tName; - $defs{$tName}{TEMPORARY} = 1; - $attr{$tName}{allowfrom} = "127.0.0.1"; + my $ret = CommandDefine(undef, "$tName telnet 0"); + if($ret) { + $ret = "CallBlockingFn: No telnet port found and cannot create one: $ret"; + Log 1, $ret; + return $ret; } - } - - if(!$telnetDevice) { - my $msg = "CallBlockingFn: No telnet port found and cannot create one."; - Log 1, $msg; - return $msg; + CommandAttr(undef, "$tName room hidden"); + $telnetDevice = $tName; + $defs{$tName}{TEMPORARY} = 1; + $attr{$tName}{allowfrom} = "127.0.0.1"; } # do fork diff --git a/fhem/fhem.pl b/fhem/fhem.pl index e7cf9ef6f..e5b59f154 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -1680,7 +1680,7 @@ CommandDefine($$) my $ret = CallFn($name, "DefFn", \%hash, $def); if($ret) { - Log 1, "define $name $def: $ret"; + Log 1, "define $def: $ret"; delete $defs{$name}; # Veto delete $attr{$name}; @@ -2670,7 +2670,7 @@ HandleTimeout() # Check the internal list. foreach my $i (sort { $intAt{$a}{TRIGGERTIME} <=> $intAt{$b}{TRIGGERTIME} } keys %intAt) { - next if(!$intAt{$i}); # deleted in the loop + next if(!defined($i) || !$intAt{$i}); # deleted in the loop my $tim = $intAt{$i}{TRIGGERTIME}; my $fn = $intAt{$i}{FN}; if(!defined($tim) || !defined($fn)) {