From 554bdd6947f1cc254178022fccacec2854fe83e2 Mon Sep 17 00:00:00 2001 From: justme-1968 Date: Sun, 1 Jan 2017 13:07:33 +0000 Subject: [PATCH] dash_dhcp, fake_roku, plex: real ReusePort fix git-svn-id: https://svn.fhem.de/fhem/trunk@12926 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/37_dash_dhcp.pm | 2 +- fhem/FHEM/37_fakeRoku.pm | 8 ++++---- fhem/FHEM/37_plex.pm | 19 +++++++++---------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/fhem/FHEM/37_dash_dhcp.pm b/fhem/FHEM/37_dash_dhcp.pm index 186e8d6cd..8949d9bca 100644 --- a/fhem/FHEM/37_dash_dhcp.pm +++ b/fhem/FHEM/37_dash_dhcp.pm @@ -77,7 +77,7 @@ dash_dhcp_startListener($) $hash->{PORT} = AttrVal($name, 'port', $hash->{PORT}); Log3 $name, 4, "$name: using port $hash->{PORT}"; - if( my $socket = IO::Socket::INET->new(LocalPort=>$hash->{PORT}, Proto=>'udp', Broadcast=>1, ReuseAddr=>1, ReusePort=>defined(&SO_REUSEPORT)?1:0) ) { + if( my $socket = IO::Socket::INET->new(LocalPort=>$hash->{PORT}, Proto=>'udp', Broadcast=>1, ReuseAddr=>1) ) { readingsSingleUpdate($hash, 'state', 'listening', 1 ); Log3 $name, 3, "$name: listening"; $hash->{LAST_CONNECT} = FmtDateTime( gettimeofday() ); diff --git a/fhem/FHEM/37_fakeRoku.pm b/fhem/FHEM/37_fakeRoku.pm index 6ff306ce5..b31511611 100644 --- a/fhem/FHEM/37_fakeRoku.pm +++ b/fhem/FHEM/37_fakeRoku.pm @@ -229,7 +229,7 @@ fakeRoku_startListener($) return undef if( AttrVal($name, "disable", 0 ) == 1 ); my $port = AttrVal($name, 'httpPort', 0); - if( my $socket = IO::Socket::INET->new(LocalPort=>$port, Listen=>10, Blocking=>0, ReuseAddr=>1, ReusePort=>defined(&SO_REUSEPORT)?1:0) ) { + if( my $socket = IO::Socket::INET->new(LocalPort=>$port, Listen=>10, Blocking=>0, ReuseAddr=>1) ) { readingsSingleUpdate($hash, 'state', 'listening', 1 ); @@ -363,13 +363,13 @@ fakeRoku_Attr($$$) } elsif( $attrName eq 'fhemIP' ) { if( $cmd eq "set" && $attrVal ) { $hash->{fhemIP} = $attrVal; - } else { + } else { $hash->{fhemIP} = fakeRoku_getLocalIP(); - } + } fakeRoku_startDiscovery($hash); fakeRoku_startListener($hash); - } + } if( $cmd eq "set" ) { diff --git a/fhem/FHEM/37_plex.pm b/fhem/FHEM/37_plex.pm index 014998e41..81f2ff8ce 100644 --- a/fhem/FHEM/37_plex.pm +++ b/fhem/FHEM/37_plex.pm @@ -394,7 +394,7 @@ plex_startDiscovery($) } # respond to broadcast client discovery messages - #if( my $socket = new IO::Socket::INET ( Proto => 'udp', Broadcast => 1, LocalAddr => '0.0.0.0', LocalPort => 32412, ReuseAddr=>1, ReusePort=>defined(&SO_REUSEPORT)?1:0) ) { + #if( my $socket = new IO::Socket::INET ( Proto => 'udp', Broadcast => 1, LocalAddr => '0.0.0.0', LocalPort => 32412, ReuseAddr=>1) ) { # my $chash = plex_newChash( $hash, $socket, # {NAME=>"$name:clientDiscoveryResponderBcast", STATE=>'listening', broadcast => 1} ); @@ -605,7 +605,7 @@ plex_sendTimelines($$) if( $hash->{helper}{subscriptionsFrom}{$key} ) { $chash = $hash->{helper}{subscriptionsFrom}{$key}; - } elsif( my $socket = IO::Socket::INET->new(PeerAddr=>$addr, Timeout=>2, Blocking=>1, ReuseAddr=>1, ReusePort=>defined(&SO_REUSEPORT)?1:0) ) { + } elsif( my $socket = IO::Socket::INET->new(PeerAddr=>$addr, Timeout=>2, Blocking=>1, ReuseAddr=>1) ) { $chash = plex_newChash( $hash, $socket, {NAME=>"$name:timelineSubscription:$addr", STATE=>'opened', timeline=>1} ); @@ -743,7 +743,7 @@ plex_startTimelineListener($) return undef if( AttrVal($name, "disable", 0 ) == 1 ); my $port = AttrVal($name, 'httpPort', 0); - if( my $socket = IO::Socket::INET->new(LocalPort=>$port, Listen=>10, Blocking=>0, ReuseAddr=>1, ReusePort=>defined(&SO_REUSEPORT)?1:0) ) { + if( my $socket = IO::Socket::INET->new(LocalPort=>$port, Listen=>10, Blocking=>0, ReuseAddr=>1) ) { my $chash = plex_newChash( $hash, $socket, {NAME=>"$name:timelineListener", STATE=>'accepting'} ); @@ -1334,12 +1334,11 @@ plex_mediaList($$$) my $token = $server->{accessToken}; $token = $hash->{token} if( !$token ); - $xml->{librarySectionTitle} = encode('UTF-8', $xml->{librarySectionTitle}) if( $xml->{librarySectionTitle} ); - $xml->{title} = encode('UTF-8', $xml->{title}) if( $xml->{title} ); - $xml->{title1} = encode('UTF-8', $xml->{title1}) if( $xml->{title1} ); - $xml->{title2} = encode('UTF-8', $xml->{title2}) if( $xml->{title2} ); - $xml->{title3} = encode('UTF-8', $xml->{title3}) if( $xml->{title3} ); - + $xml->{librarySectionTitle} = encode('UTF-8', $xml->{librarySectionTitle}) if( $xml->{librarySectionTitle} ); + $xml->{title} = encode('UTF-8', $xml->{title}) if( $xml->{title} ); + $xml->{title1} = encode('UTF-8', $xml->{title1}) if( $xml->{title1} ); + $xml->{title2} = encode('UTF-8', $xml->{title2}) if( $xml->{title2} ); + $xml->{title3} = encode('UTF-8', $xml->{title3}) if( $xml->{title3} ); my $ret = ''; $ret .= plex_makeImage($hash, $server, $xml->{thumb}, 100); @@ -2469,7 +2468,7 @@ plex_requestNotifications($$) return if( $hash->{helper}{websockets}{$server->{machineIdentifier}} ); - if( my $socket = IO::Socket::INET->new(PeerAddr=>"$server->{address}:$server->{port}", Timeout=>2, Blocking=>1, ReuseAddr=>1, ReusePort=>defined(&SO_REUSEPORT)?1:0) ) { + if( my $socket = IO::Socket::INET->new(PeerAddr=>"$server->{address}:$server->{port}", Timeout=>2, Blocking=>1, ReuseAddr=>1) ) { my $chash = plex_newChash( $hash, $socket, {NAME=>"$name:websocket:$server->{machineIdentifier}", STATE=>'listening', websocket=>0} );