From: Michael Tremer Date: Fri, 20 Sep 2024 11:42:05 +0000 (+0200) Subject: index.cgi: Update wireless functions to use iw instead of iwconfig X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=65ec7b9d8363838ef4a9d31adb83d1ebae35fbc5;p=people%2Fms%2Fipfire-2.x.git index.cgi: Update wireless functions to use iw instead of iwconfig Signed-off-by: Michael Tremer --- diff --git a/config/cfgroot/network-functions.pl b/config/cfgroot/network-functions.pl index 5b35114aa..37eaf69cc 100644 --- a/config/cfgroot/network-functions.pl +++ b/config/cfgroot/network-functions.pl @@ -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; } diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index a3b1589aa..d9c74ce7f 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -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 < - $link_quality% @ $signal_level + $signal_level END