mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-02 19:15:31 +00:00
42_AptToDate: fix Can't call method readFromChild on an undefined value
git-svn-id: https://svn.fhem.de/fhem/trunk@19024 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
fb8d4a15fd
commit
65105fe5ff
@ -1,5 +1,7 @@
|
||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||
# Do not insert empty lines here, update check depends on it.
|
||||
- bugfix: 42_AptToDate: fix Can't call method readFromChild
|
||||
on an undefined value
|
||||
- feature: 93_Log2Syslog: new attribute "exclErrCond" to exclude events from
|
||||
rating as "Error"
|
||||
- changed: 70_BRAVIA: optimized command queue,
|
||||
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# Developed with Kate
|
||||
#
|
||||
# (c) 2017-2018 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
|
||||
# (c) 2017-2019 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
|
||||
# All rights reserved
|
||||
#
|
||||
# Special thanks goes to:
|
||||
@ -35,7 +35,7 @@ package main;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $version = "1.4.2";
|
||||
my $version = "1.4.3";
|
||||
|
||||
sub AptToDate_Initialize($) {
|
||||
|
||||
@ -499,24 +499,27 @@ sub PollChild($) {
|
||||
my $hash = shift;
|
||||
|
||||
my $name = $hash->{NAME};
|
||||
my $subprocess = $hash->{".fhem"}{subprocess};
|
||||
my $json = $subprocess->readFromChild();
|
||||
|
||||
if ( defined($hash->{".fhem"}{subprocess}) ) {
|
||||
my $subprocess = $hash->{".fhem"}{subprocess};
|
||||
my $json = $subprocess->readFromChild();
|
||||
|
||||
if ( !defined($json) ) {
|
||||
Log3 $name, 5, "AptToDate ($name) - still waiting ("
|
||||
. $subprocess->{lasterror} . ").";
|
||||
InternalTimer( gettimeofday() + POLLINTERVAL,
|
||||
"AptToDate::PollChild", $hash, 0 );
|
||||
return;
|
||||
}
|
||||
else {
|
||||
Log3 $name, 4,
|
||||
"AptToDate ($name) - got result from asynchronous parsing.";
|
||||
$subprocess->wait();
|
||||
Log3 $name, 4, "AptToDate ($name) - asynchronous finished.";
|
||||
if ( !defined($json) ) {
|
||||
Log3 $name, 5, "AptToDate ($name) - still waiting ("
|
||||
. $subprocess->{lasterror} . ").";
|
||||
InternalTimer( gettimeofday() + POLLINTERVAL,
|
||||
"AptToDate::PollChild", $hash, 0 );
|
||||
return;
|
||||
}
|
||||
else {
|
||||
Log3 $name, 4,
|
||||
"AptToDate ($name) - got result from asynchronous parsing.";
|
||||
$subprocess->wait();
|
||||
Log3 $name, 4, "AptToDate ($name) - asynchronous finished.";
|
||||
|
||||
CleanSubprocess($hash);
|
||||
PreProcessing( $hash, $json );
|
||||
CleanSubprocess($hash);
|
||||
PreProcessing( $hash, $json );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -843,9 +846,16 @@ sub WriteReadings($$) {
|
||||
readingsBulkUpdateIfChanged( $hash, 'updatesAvailable',
|
||||
scalar keys %{ $decode_json->{packages} } )
|
||||
if ( $hash->{".fhem"}{aptget}{cmd} eq 'getUpdateList' );
|
||||
readingsBulkUpdateIfChanged( $hash, 'upgradeListAsJSON',
|
||||
eval { encode_json( $hash->{".fhem"}{aptget}{packages} ) } )
|
||||
if ( AttrVal( $name, 'upgradeListReading', 'none' ) ne 'none' );
|
||||
|
||||
if ( scalar keys%{ $hash->{".fhem"}{aptget}{packages} } > 0 ) {
|
||||
readingsBulkUpdateIfChanged( $hash, 'upgradeListAsJSON',
|
||||
eval { encode_json( $hash->{".fhem"}{aptget}{packages} ) } )
|
||||
if ( AttrVal( $name, 'upgradeListReading', 'none' ) ne 'none' );
|
||||
}
|
||||
else { readingsBulkUpdateIfChanged( $hash, 'upgradeListAsJSON', '' )
|
||||
if ( AttrVal( $name, 'upgradeListReading', 'none' ) ne 'none' );
|
||||
}
|
||||
|
||||
readingsBulkUpdate( $hash, 'toUpgrade', 'successful' )
|
||||
if ( $hash->{".fhem"}{aptget}{cmd} eq 'toUpgrade'
|
||||
and not defined( $hash->{".fhem"}{aptget}{'errors'} )
|
||||
|
Loading…
x
Reference in New Issue
Block a user