dash_dhcp, fakeRoku: changed state handling

git-svn-id: https://svn.fhem.de/fhem/trunk@12443 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme1968
2016-10-27 12:53:15 +00:00
parent 3bac7fad93
commit 9c5a8771a0
2 changed files with 12 additions and 8 deletions

View File

@@ -42,7 +42,7 @@ dash_dhcp_Define($$)
if( $init_done ) {
dash_dhcp_startListener($hash);
} elsif( $hash->{STATE} ne "???" ) {
} else {
readingsSingleUpdate($hash, 'state', 'initialized', 1 );
}
@@ -77,9 +77,9 @@ dash_dhcp_startListener($)
$hash->{PORT} = AttrVal($name, 'port', $hash->{PORT});
Log3 $name, 4, "$name: using port $hash->{PORT}";
my $socket = IO::Socket::INET->new(LocalPort=>$hash->{PORT}, Proto=>'udp', Broadcast=>1, ReuseAddr=>1, ReusePort=>defined(&ReusePort)?1:0);
if($socket) {
if( my $socket = IO::Socket::INET->new(LocalPort=>$hash->{PORT}, Proto=>'udp', Broadcast=>1, ReuseAddr=>1, ReusePort=>defined(&ReusePort)?1:0) ) {
readingsSingleUpdate($hash, 'state', 'listening', 1 );
Log3 $name, 3, "$name: listening";
$hash->{LAST_CONNECT} = FmtDateTime( gettimeofday() );
$hash->{FD} = $socket->fileno();
@@ -109,8 +109,8 @@ dash_dhcp_stopListener($)
delete($hash->{FD});
delete($hash->{CD});
delete($selectlist{$name});
readingsSingleUpdate($hash, 'state', 'disconnected', 1 );
Log3 $name, 3, "$name: Disconnected";
readingsSingleUpdate($hash, 'state', 'stopped', 1 );
Log3 $name, 3, "$name: stopped";
$hash->{LAST_DISCONNECT} = FmtDateTime( gettimeofday() );
}

View File

@@ -100,8 +100,8 @@ fakeRoku_Define($$)
fakeRoku_startDiscovery($hash);
fakeRoku_startListener($hash);
} elsif( $hash->{STATE} ne "???" ) {
$hash->{STATE} = "Initialized";
} else {
readingsSingleUpdate($hash, 'state', 'initialized', 1 );
}
@@ -230,6 +230,8 @@ fakeRoku_startListener($)
my $port = AttrVal($name, 'httpPort', 0);
if( my $socket = IO::Socket::INET->new(LocalPort=>$port, Listen=>10, Blocking=>0, ReuseAddr=>1, ReusePort=>defined(&ReusePort)?1:0) ) {
readingsSingleUpdate($hash, 'state', 'listening', 1 );
my $chash = fakeRoku_newChash( $hash, $socket, {NAME=>"$name:listener", STATE=>'accepting'} );
@@ -240,7 +242,8 @@ fakeRoku_startListener($)
Log3 $name, 3, "$name: listener started";
} else {
Log3 $name, 3, "$name: failed to start listener: $@";
Log3 $name, 3, "$name: failed to start listener on port $port: $@";
readingsSingleUpdate($hash, 'state', 'disconnected', 1 );
InternalTimer(gettimeofday()+10, "fakeRoku_startListener", $hash, 0);
}
@@ -271,6 +274,7 @@ fakeRoku_stopListener($)
delete($defs{$cname});
delete $hash->{helper}{listener};
readingsSingleUpdate($hash, 'state', 'stopped', 1 );
Log3 $name, 3, "$name: listener stoped";
}
}