]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
index.cgi: Update wireless functions to use iw instead of iwconfig
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Sep 2024 11:42:05 +0000 (13:42 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Sep 2024 11:42:05 +0000 (13:42 +0200)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/cfgroot/network-functions.pl
html/cgi-bin/index.cgi

index 5b35114aa0a40728cee255a9b5840e820a2000de..37eaf69cc9d69cc0b651d29af33e4bd9885e2366 100644 (file)
@@ -438,7 +438,7 @@ sub _get_wireless_status($) {
        my $intf = shift;
 
        if (!$wireless_status{$intf}) {
-               $wireless_status{$intf} = join('\n', &General::system_output("iwconfig", "$intf"));
+               $wireless_status{$intf} = join(/\n/, &General::system_output("iw", "dev", "$intf", "link"));
        }
 
        return $wireless_status{$intf};
@@ -447,7 +447,7 @@ sub _get_wireless_status($) {
 sub wifi_get_essid($) {
        my $status = &_get_wireless_status(shift);
 
-       my ($essid) = $status =~ /ESSID:\"(.*)\"/;
+       my ($essid) = $status =~ /^\s+SSID: (.*)$/m;
 
        return $essid;
 }
@@ -455,15 +455,15 @@ sub wifi_get_essid($) {
 sub wifi_get_frequency($) {
        my $status = &_get_wireless_status(shift);
 
-       my ($frequency) = $status =~ /Frequency:(\d+\.\d+ GHz)/;
+       my ($frequency) = $status =~ /^\s+freq: (\d+\.\d+)/m;
 
-       return $frequency;
+       return $frequency / 1000 . " GHz";
 }
 
 sub wifi_get_access_point($) {
        my $status = &_get_wireless_status(shift);
 
-       my ($access_point) = $status =~ /Access Point: ([0-9A-F:]+)/;
+       my ($access_point) = $status =~ /^Connected to ([0-9a-f:]+)/;
 
        return $access_point;
 }
@@ -471,27 +471,15 @@ sub wifi_get_access_point($) {
 sub wifi_get_bit_rate($) {
        my $status = &_get_wireless_status(shift);
 
-       my ($bit_rate) = $status =~ /Bit Rate=(\d+ [GM]b\/s)/;
+       my ($bit_rate) = $status =~ /^\s+rx bitrate: (\d+(?:\.\d+) MBit\/s)/m;
 
        return $bit_rate;
 }
 
-sub wifi_get_link_quality($) {
-       my $status = &_get_wireless_status(shift);
-
-       my ($cur, $max) = $status =~ /Link Quality=(\d+)\/(\d+)/;
-
-       if($max > 0) {
-               return sprintf('%.0f', ($cur * 100) / $max);
-       }
-
-       return 0;
-}
-
 sub wifi_get_signal_level($) {
        my $status = &_get_wireless_status(shift);
 
-       my ($signal_level) = $status =~ /Signal level=(\-\d+ dBm)/;
+       my ($signal_level) = $status =~ /^\s+signal: (\-\d+ dBm)/m;
 
        return $signal_level;
 }
index a3b1589aa90965e79ad84909ab526c3dea7cbb25..d9c74ce7f87a278ae25dd5ba2951273770f24eb3 100644 (file)
@@ -199,7 +199,6 @@ END
                my $frequency    = &Network::wifi_get_frequency($iface);
                my $access_point = &Network::wifi_get_access_point($iface);
                my $bit_rate     = &Network::wifi_get_bit_rate($iface);
-               my $link_quality = &Network::wifi_get_link_quality($iface);
                my $signal_level = &Network::wifi_get_signal_level($iface);
 
                print <<END;
@@ -224,7 +223,7 @@ END
                                        $bit_rate
                                </td>
                                <td style="text-align: center">
-                                       $link_quality% @ $signal_level
+                                       $signal_level
                                </td>
                        </tr>
 END