From 1e602e595f68194b9698f66b24d3de9ba3aee301 Mon Sep 17 00:00:00 2001 From: vsauer <> Date: Tue, 15 Nov 2016 19:14:18 +0000 Subject: [PATCH] 24_TPLinkHS110: Added checks for increased stability git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@12588 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/24_TPLinkHS110.pm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/FHEM/24_TPLinkHS110.pm b/FHEM/24_TPLinkHS110.pm index 0629c5d7b..a3713b160 100644 --- a/FHEM/24_TPLinkHS110.pm +++ b/FHEM/24_TPLinkHS110.pm @@ -101,8 +101,9 @@ sub TPLinkHS110_Get($$) or return "Couldn't connect to $remote_host:$remote_port: $@\n"; $socket->send($c); my $data; - $socket->recv($data,1024); + my $retval = $socket->recv($data,8192); $socket->close(); + unless( defined $retval) { return undef; } $data = decrypt(substr($data,4)); my $json = decode_json($data); @@ -129,8 +130,9 @@ sub TPLinkHS110_Get($$) or return "Couldn't connect to $remote_host:$remote_port: $@\n"; $socket->send($rc); my $rdata; - $socket->recv($rdata,1024); + $retval = $socket->recv($rdata,8192); $socket->close(); + unless( defined $retval) { return undef; } $rdata = decrypt(substr($rdata,4)); my $realtimejson = decode_json($rdata); foreach my $key2 (sort keys %{$realtimejson->{'emeter'}->{'get_realtime'}}) { @@ -148,8 +150,9 @@ sub TPLinkHS110_Get($$) or return "Couldn't connect to $remote_host:$remote_port: $@\n"; $socket->send($c); my $data; - $socket->recv($data,8192); + $retval = $socket->recv($data,8192); $socket->close(); + unless( defined $retval) { return undef; } $data = decrypt(substr($data,4)); eval { my $json = decode_json($data); @@ -200,8 +203,9 @@ sub TPLinkHS110_Set($$) or return "Couldn't connect to $remote_host:$remote_port: $@\n"; $socket->send($c); my $data; - $socket->recv($data,1024); + my $retval = $socket->recv($data,8192); $socket->close(); + unless( defined $retval) { return undef; } $data = decrypt(substr($data,4)); my $json = decode_json($data); if ($json->{'system'}->{'set_relay_state'}->{'err_code'} eq "0") { @@ -281,8 +285,9 @@ sub TPLinkHS110_Attr { or return "Couldn't connect to $remote_host:$remote_port: $@\n"; $socket->send($c); my $data; - $socket->recv($data,1024); + my $retval = $socket->recv($data,8192); $socket->close(); + unless( defined $retval) { return undef; } $data = decrypt(substr($data,4)); my $json = decode_json($data); }