DevIo.pm: Fix reconnect for websocket (Forum #109910)

git-svn-id: https://svn.fhem.de/fhem/trunk@22235 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig
2020-06-23 08:30:14 +00:00
parent f512937e76
commit e36d88593d

View File

@@ -456,7 +456,7 @@ DevIo_OpenDev($$$;$)
} elsif($dev =~ m,^(ws:|wss:)?([^/:]+):([0-9]+)(.*?)$,) {# TCP or websocket } elsif($dev =~ m,^(ws:|wss:)?([^/:]+):([0-9]+)(.*?)$,) {# TCP or websocket
my ($proto, $host, $port, $path) = ($1 ? $1 : "", $2, $3, $4); my ($proto, $host, $port, $path) = ($1 ? $1 : "", $2, $3, $4);
$dev = "$host:$port"; my $hp = "$host:$port";
if($proto eq "wss:") { if($proto eq "wss:") {
$hash->{SSL} = 1; $hash->{SSL} = 1;
$proto = "ws:"; $proto = "ws:";
@@ -521,7 +521,7 @@ DevIo_OpenDev($$$;$)
my $err = HttpUtils_Connect({ # Nonblocking my $err = HttpUtils_Connect({ # Nonblocking
timeout => $timeout, timeout => $timeout,
url => $hash->{SSL} ? "https://$dev$path" : "http://$dev$path", url => $hash->{SSL} ? "https://$hp$path" : "http://$hp$path",
NAME => $hash->{NAME}, NAME => $hash->{NAME},
sslargs => $hash->{sslargs} ? $hash->{sslargs} : {}, sslargs => $hash->{sslargs} ? $hash->{sslargs} : {},
noConn2 => $proto eq "ws:" ? 0 : 1, noConn2 => $proto eq "ws:" ? 0 : 1,
@@ -542,8 +542,8 @@ DevIo_OpenDev($$$;$)
} else { # blocking connect } else { # blocking connect
my $conn = $haveInet6 ? my $conn = $haveInet6 ?
IO::Socket::INET6->new(PeerAddr => $dev, Timeout => $timeout) : IO::Socket::INET6->new(PeerAddr => $hp, Timeout => $timeout) :
IO::Socket::INET ->new(PeerAddr => $dev, Timeout => $timeout); IO::Socket::INET ->new(PeerAddr => $hp, Timeout => $timeout);
return "" if(!&$doTcpTail($conn)); # no callback: no doCb return "" if(!&$doTcpTail($conn)); # no callback: no doCb
} }