From b8401076d8e0e360b212104bb35eb3d8baa4dd4e Mon Sep 17 00:00:00 2001 From: bergware Date: Sat, 15 Jan 2022 12:49:32 +0100 Subject: [PATCH] Expand ipaddr() with protocol; selection protocol defaults to ipv4 in case of ipv4 + ipv6 --- plugins/dynamix.docker.manager/include/DockerClient.php | 1 - plugins/dynamix.my.servers/include/myservers2.php | 2 +- plugins/dynamix/ManagementAccess.page | 6 +++--- plugins/dynamix/SyslogSettings.page | 2 +- plugins/dynamix/WG0.page | 1 - plugins/dynamix/include/ProvisionCert.php | 2 +- plugins/dynamix/include/UpdateDNS.php | 9 ++++++--- plugins/dynamix/include/Wrappers.php | 7 +++++-- 8 files changed, 17 insertions(+), 13 deletions(-) diff --git a/plugins/dynamix.docker.manager/include/DockerClient.php b/plugins/dynamix.docker.manager/include/DockerClient.php index 1c0cf30f0..460c2ae86 100644 --- a/plugins/dynamix.docker.manager/include/DockerClient.php +++ b/plugins/dynamix.docker.manager/include/DockerClient.php @@ -42,7 +42,6 @@ $dockerManPaths = [ $ethX = 'eth0'; if (!isset($$ethX)) extract(parse_ini_file("$docroot/state/network.ini",true)); $host = ipaddr($ethX); -$host = is_array($host) ? $host[0] : $host; // get network drivers $driver = DockerUtil::driver(); diff --git a/plugins/dynamix.my.servers/include/myservers2.php b/plugins/dynamix.my.servers/include/myservers2.php index 1ae624357..74d47088b 100644 --- a/plugins/dynamix.my.servers/include/myservers2.php +++ b/plugins/dynamix.my.servers/include/myservers2.php @@ -471,7 +471,7 @@ "flashvendor" => $var['flashVendor'], "guid" => $var['flashGUID'], "regGuid" => $var['regGUID'], - "internalip" => is_array(ipaddr()) ? ipaddr()[0] : ipaddr(), + "internalip" => ipaddr(), "internalport" => $_SERVER['SERVER_PORT'], "keyfile" => str_replace(['+','/','='], ['-','_',''], trim(base64_encode(@file_get_contents($var['regFILE'])))), "osVersion" => $var['version'], diff --git a/plugins/dynamix/ManagementAccess.page b/plugins/dynamix/ManagementAccess.page index cb293b6cf..77d71ee59 100644 --- a/plugins/dynamix/ManagementAccess.page +++ b/plugins/dynamix/ManagementAccess.page @@ -67,7 +67,7 @@ if ($certPresent) { $dnsRebindingProtection = ($rebindtest_ip != $rebindip); if (!$dnsRebindingProtection) { $certtest_ip = exec("host $protocol $subjectURL 2>/dev/null|awk '{print \$4}'"); - $dnsValid = is_array($addr) ? in_array($certtest_ip, $addr) : $certtest_ip==$addr; + $dnsValid = $certtest_ip==$addr; } // more: similar test for "www.$certSubject" dns valid goes here } @@ -86,7 +86,7 @@ $portsInUse = []; exec("lsof -Pni|awk '/LISTEN/ && \$9!~/127.0.0.1/ && \$9!~/\\[::1\\]/{print \$9}'|sort -u", $output); $bind = $var['BIND_MGT']=='yes'; -$list = is_array($addr) ? array_merge(['*'],$addr) : ['*',$addr]; +$list = ['*',$addr]; foreach ($output as $line) { [$ip, $port] = my_explode(':', $line); @@ -119,7 +119,7 @@ function updateDNS(button) { var success = function(data) { $(button).prop("disabled", false).html("_(Update DNS)_"); - swal({title:"",text:"",type:"success",html:true,confirmButtonText:"_(Ok)_"}); + swal({title:"",text:"",type:"success",html:true,confirmButtonText:"_(Ok)_"}); }; $.post("/webGui/include/UpdateDNS.php",success).fail(failure); } diff --git a/plugins/dynamix/SyslogSettings.page b/plugins/dynamix/SyslogSettings.page index 20286f762..855930144 100644 --- a/plugins/dynamix/SyslogSettings.page +++ b/plugins/dynamix/SyslogSettings.page @@ -28,7 +28,7 @@ exec("lsof -Pni|awk '/LISTEN/ && \$9!~/127.0.0.1/ && \$9!~/\\[::1\\]/{print \$9} $ethX = 'eth0'; $addr = ipaddr($ethX); $bind = $var['BIND_MGT']=='yes'; -$list = is_array($addr) ? array_merge(['*'],$addr) : ['*',$addr]; +$list = ['*',$addr]; foreach ($output as $line) { [$ip, $port] = my_explode(':', $line); diff --git a/plugins/dynamix/WG0.page b/plugins/dynamix/WG0.page index 789785985..4b925979c 100644 --- a/plugins/dynamix/WG0.page +++ b/plugins/dynamix/WG0.page @@ -131,7 +131,6 @@ $template = "$docroot/webGui/WGX.page"; $tower = $var['NAME']; $ethX = 'eth0'; $server = ipaddr($ethX); -$server = is_array($server) ? $server[0] : $server; $dnsserver = $$ethX['DNS_SERVER1']; $link = iflink($ethX); diff --git a/plugins/dynamix/include/ProvisionCert.php b/plugins/dynamix/include/ProvisionCert.php index 6130266cc..b63c40d53 100644 --- a/plugins/dynamix/include/ProvisionCert.php +++ b/plugins/dynamix/include/ProvisionCert.php @@ -77,7 +77,7 @@ $ch = curl_init("https://keys.lime-technology.com/account/ssl/$endpoint"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, [ - 'internalip' => is_array($internalip) ? $internalip[0] : $internalip, + 'internalip' => $internalip, 'internalport' => $internalport, 'keyfile' => $keyfile ]); diff --git a/plugins/dynamix/include/UpdateDNS.php b/plugins/dynamix/include/UpdateDNS.php index c03d92414..b44285c54 100644 --- a/plugins/dynamix/include/UpdateDNS.php +++ b/plugins/dynamix/include/UpdateDNS.php @@ -19,7 +19,7 @@ require_once "$docroot/webGui/include/Helpers.php"; // add 'ipaddr' function for 6.9 backwards compatibility if (!function_exists('ipaddr')) { - function ipaddr($ethX='eth0') { + function ipaddr($ethX='eth0', $prot=4) { global $$ethX; switch ($$ethX['PROTOCOL:0']) { case 'ipv4': @@ -27,7 +27,10 @@ if (!function_exists('ipaddr')) { case 'ipv6': return $$ethX['IPADDR6:0']; case 'ipv4+ipv6': - return [$$ethX['IPADDR:0'],$$ethX['IPADDR6:0']]; + switch ($prot) { + case 4: return $$ethX['IPADDR:0']; + case 6: return $$ethX['IPADDR6:0']; + default:return [$$ethX['IPADDR:0'],$$ethX['IPADDR6:0']];} default: return $$ethX['IPADDR:0']; } @@ -283,7 +286,7 @@ $post = [ ]; if ($isCertUnraidNet) { // if there is an unraid.net cert, enable local ddns regardless of use_ssl value - $post['internalip'] = is_array($internalip) ? $internalip[0] : $internalip; + $post['internalip'] = $internalip; // if DNS Rebind Protection is disabled and host.unraid.net does not resolve to the internalip, disable caching if ($rebindDisabled && host_lookup_ip(generate_internal_host($certhostname, $post['internalip'])) != $post['internalip']) $dnserr = true; } diff --git a/plugins/dynamix/include/Wrappers.php b/plugins/dynamix/include/Wrappers.php index 553542d1b..01d603719 100644 --- a/plugins/dynamix/include/Wrappers.php +++ b/plugins/dynamix/include/Wrappers.php @@ -67,7 +67,7 @@ function port_name($port) { function exceed($value, $limit, $top=100) { return ($value>$limit && $limit>0 && $value<=$top); } -function ipaddr($ethX='eth0') { +function ipaddr($ethX='eth0', $prot=4) { global $$ethX; switch ($$ethX['PROTOCOL:0']) { case 'ipv4': @@ -75,7 +75,10 @@ function ipaddr($ethX='eth0') { case 'ipv6': return $$ethX['IPADDR6:0']; case 'ipv4+ipv6': - return [$$ethX['IPADDR:0'],$$ethX['IPADDR6:0']]; + switch ($prot) { + case 4: return $$ethX['IPADDR:0']; + case 6: return $$ethX['IPADDR6:0']; + default:return [$$ethX['IPADDR:0'],$$ethX['IPADDR6:0']];} default: return $$ethX['IPADDR:0']; }