2007-12-24 Dan Williams <dcbw@redhat.com>

* src/nm-device-802-11-wireless.c
		- (nm_device_802_11_wireless_get_frequency): handle drivers that return
			a channel # instead of a frequency



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3189 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams 2007-12-25 00:09:22 +00:00
parent 9d87ae887a
commit da7b9ae009
2 changed files with 19 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2007-12-24 Dan Williams <dcbw@redhat.com>
* src/nm-device-802-11-wireless.c
- (nm_device_802_11_wireless_get_frequency): handle drivers that return
a channel # instead of a frequency
2007-12-24 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerAP.c

View file

@ -1051,9 +1051,19 @@ nm_device_802_11_wireless_get_frequency (NMDevice80211Wireless *self)
nm_ioctl_info ("%s: About to GET IWFREQ.", iface);
err = iw_get_ext (nm_dev_sock_get_fd (sk), iface, SIOCGIWFREQ, &wrq);
if (err >= 0)
freq = iw_freq2float (&wrq.u.freq);
else if (err == -1)
if (err >= 0) {
if (wrq.u.freq.e == 0) {
/* Some drivers report channel not frequency. Convert to a
* frequency; but this assumes that the device is in b/g mode.
*/
if ((wrq.u.freq.m >= 1) && (wrq.u.freq.m <= 13))
freq = 2407 + (5 * wrq.u.freq.m);
else if (wrq.u.freq.m == 14)
freq = 2484;
} else {
freq = iw_freq2float (&wrq.u.freq);
}
} else if (err == -1)
nm_warning ("(%s) error getting frequency: %s", iface, strerror (errno));
nm_dev_sock_close (sk);