From b33260d9695b8fd781188854f4fe26272edd0f8c Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Wed, 14 May 2008 13:23:14 +0000 Subject: try to normalize signal level reported by wpa_supplicant only if some values are greater than 100 --- lib/network/monitor.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib/network/monitor.pm') diff --git a/lib/network/monitor.pm b/lib/network/monitor.pm index 31bc8cc..f6828db 100644 --- a/lib/network/monitor.pm +++ b/lib/network/monitor.pm @@ -37,14 +37,18 @@ sub list_wireless { $networks{$ap}{ap} ||= $ap; #- wpa_supplicant may list the network two times, use ||= $networks{$ap}{frequency} ||= $frequency; - #- signal level is really too high in wpa_supplicant - #- this should be standardized at some point - $networks{$ap}{signal_strength} ||= int($signal_strength/3.5); + $networks{$ap}{signal_strength} ||= $signal_strength; my $adhoc = $flags =~ s/\[ibss\]//i; $networks{$ap}{mode} ||= $adhoc ? "Ad-Hoc" : "Managed"; $networks{$ap}{flags} ||= $flags; $networks{$ap}{essid} ||= $essid; } + if (any { $_->{signal_strength} > 100 } %networks) { + #- signal level is really too high in wpa_supplicant + #- this should be standardized at some point + $_->{signal_strength} = int($_->{signal_strength}/3.5); + } + #- network id / ssid / bssid / flags while ($list =~ /^(\d+)\t(.*?)\t(.*?)\t(.*)$/mg) { foreach my $net (uniq(if_($networks{$3}, $networks{$3}), grep { $_->{essid} eq $2 } values(%networks))) { -- cgit v1.2.1