mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-08 07:24:21 +00:00
00_FBAHAHTTP.pm: implement HTTPS for connection (Forum #85286)
git-svn-id: https://svn.fhem.de/fhem/trunk@16344 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
64ea5a6abe
commit
b4f252ceec
@ -128,9 +128,10 @@ FBAHAHTTP_Poll($)
|
|||||||
return $ret if($ret);
|
return $ret if($ret);
|
||||||
}
|
}
|
||||||
my $sid = $hash->{".SID"};
|
my $sid = $hash->{".SID"};
|
||||||
|
my $host = ($hash->{DEF} =~ m/^http/i ? $hash->{DEF} : "http://$hash->{DEF}");
|
||||||
|
|
||||||
HttpUtils_NonblockingGet({
|
HttpUtils_NonblockingGet({
|
||||||
url=>"http://$hash->{DEF}/webservices/homeautoswitch.lua?sid=$sid".
|
url=>"$host/webservices/homeautoswitch.lua?sid=$sid".
|
||||||
"&switchcmd=getdevicelistinfos",
|
"&switchcmd=getdevicelistinfos",
|
||||||
loglevel => AttrVal($name, "verbose", 4),
|
loglevel => AttrVal($name, "verbose", 4),
|
||||||
timeout => AttrVal($name, "fbTimeout", 4),
|
timeout => AttrVal($name, "fbTimeout", 4),
|
||||||
@ -221,8 +222,9 @@ FBAHAHTTP_ProcessStack($)
|
|||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
my $msg = $hash->{CmdStack}->[0];
|
my $msg = $hash->{CmdStack}->[0];
|
||||||
|
my $host = ($hash->{DEF} =~ m/^http/i ? $hash->{DEF} : "http://$hash->{DEF}");
|
||||||
HttpUtils_NonblockingGet({
|
HttpUtils_NonblockingGet({
|
||||||
url=>"http://$hash->{DEF}/webservices/homeautoswitch.lua?$msg",
|
url=>"$host/webservices/homeautoswitch.lua?$msg",
|
||||||
loglevel => AttrVal($name, "verbose", 4),
|
loglevel => AttrVal($name, "verbose", 4),
|
||||||
timeout => AttrVal($name, "fbTimeout", 4),
|
timeout => AttrVal($name, "fbTimeout", 4),
|
||||||
callback => sub {
|
callback => sub {
|
||||||
@ -311,6 +313,9 @@ FBAHAHTTP_Write($$$)
|
|||||||
<ul>
|
<ul>
|
||||||
<code>define fb1 FBAHAHTTP fritz.box</code><br>
|
<code>define fb1 FBAHAHTTP fritz.box</code><br>
|
||||||
</ul>
|
</ul>
|
||||||
|
Note: to specify HTTPS for the connection use https://fritz.box as
|
||||||
|
hostname. To explicitly specify the port, postfix the hostname with :port,
|
||||||
|
as in https://fritz.box:443
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
@ -11,11 +11,19 @@ my ($lastOkPw, $lastOkUser, $lastOkHost, $lastOkTime) =("", "", 0);
|
|||||||
|
|
||||||
sub FB_checkPw(@);
|
sub FB_checkPw(@);
|
||||||
|
|
||||||
|
sub
|
||||||
|
FB_host2URL($)
|
||||||
|
{
|
||||||
|
my ($h) = @_;
|
||||||
|
return "$h/" if($h =~ m/^http/i);
|
||||||
|
return "http://$h/";
|
||||||
|
}
|
||||||
|
|
||||||
sub
|
sub
|
||||||
FB_doCheckPW($$$)
|
FB_doCheckPW($$$)
|
||||||
{
|
{
|
||||||
my ($host, $user, $pw) = @_;
|
my ($host, $user, $pw) = @_;
|
||||||
my $data = GetFileFromURL("http://$host/login_sid.lua", undef, undef, 1);
|
my $data = GetFileFromURL(FB_host2URL($host)."login_sid.lua",undef,undef,1);
|
||||||
return undef if(!$data);
|
return undef if(!$data);
|
||||||
|
|
||||||
my $chl="";
|
my $chl="";
|
||||||
@ -28,14 +36,14 @@ FB_doCheckPW($$$)
|
|||||||
my @d = ( "login:command/response=$chlAnsw",
|
my @d = ( "login:command/response=$chlAnsw",
|
||||||
"getpage=../html/de/internet/connect_status.txt" );
|
"getpage=../html/de/internet/connect_status.txt" );
|
||||||
$data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
|
$data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
|
||||||
$data = GetFileFromURL("http://$host/cgi-bin/webcm", undef, $data, 1);
|
$data = GetFileFromURL(FB_host2URL($host)."cgi-bin/webcm", undef, $data, 1);
|
||||||
my $isOk = ($data =~ m/checkStatus/);
|
my $isOk = ($data =~ m/checkStatus/);
|
||||||
return $isOk;
|
return $isOk;
|
||||||
|
|
||||||
} else { # FritzOS >= 5.50
|
} else { # FritzOS >= 5.50
|
||||||
my @d = ( "response=$chlAnsw", "page=/login_sid.lua" );
|
my @d = ( "response=$chlAnsw", "page=/login_sid.lua" );
|
||||||
$data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
|
$data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
|
||||||
my $url = "http://$host/login_sid.lua";
|
my $url = FB_host2URL($host)."login_sid.lua";
|
||||||
$url .= "?username=$user" if($user);
|
$url .= "?username=$user" if($user);
|
||||||
|
|
||||||
$data = GetFileFromURL($url, undef, $data, 1);
|
$data = GetFileFromURL($url, undef, $data, 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user