From 8b76a4f66cb6a939ed3cc2c0a65dcbdecd461f1d Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 21 Jun 2019 15:29:47 +0000 Subject: [PATCH] fhem.pl: Delete only TEMPORARY devs on writebuffer write error (Forum #101615) git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@19681 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem.pl | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fhem.pl b/fhem.pl index 58c5bd8a6..beb871021 100755 --- a/fhem.pl +++ b/fhem.pl @@ -762,9 +762,11 @@ while (1) { my $ret; eval { $ret = syswrite($hash->{CD}, $wb); }; if($@) { - Log 4, "Syswrite: $@, deleting $hash->{NAME}"; - TcpServer_Close($hash); - CommandDelete(undef, $hash->{NAME}); + Log 4, "$hash->{NAME} syswrite: $@"; + if($hash->{TEMPORARY}) { + TcpServer_Close($hash); + CommandDelete(undef, $hash->{NAME}); + } next; } @@ -776,9 +778,11 @@ while (1) { if(TcpServer_WantRead($hash)); } elsif(!$ret) { # zero=EOF, undef=error - Log 4, "Write error to $p, deleting $hash->{NAME}"; - TcpServer_Close($hash); - CommandDelete(undef, $hash->{NAME}); + Log 4, "$hash->{NAME} write error to $p"; + if($hash->{TEMPORARY}) { + TcpServer_Close($hash); + CommandDelete(undef, $hash->{NAME}) + } } else { if($ret >= length($wb)) { # for the > see Forum #29963