2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-25 15:59:21 +00:00

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:
justme-1968 2016-10-27 12:53:15 +00:00
parent 187b9587d6
commit e846e8e85b
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";
}
}