svn commit: r218093 - head/sbin/ifconfig
Bernhard Schmidt
bschmidt at FreeBSD.org
Sun Jan 30 14:22:46 UTC 2011
Author: bschmidt
Date: Sun Jan 30 14:22:45 2011
New Revision: 218093
URL: http://svn.freebsd.org/changeset/base/218093
Log:
Fix the 'scan hang' issue.
When requesting a scan and one is already in progess, e.g. while in scan
state, we happily wait for a scan done notification. Though, this
notification might never be sent, e.g. if we are trying to find a network
to associate to and there is none. Instead of always waiting for a
notification just do so if a new scan has been started. For both cases the
scan cache is used to report available networks even if the content might
not be fresh.
MFC after: 1 month
Modified:
head/sbin/ifconfig/ifieee80211.c
Modified: head/sbin/ifconfig/ifieee80211.c
==============================================================================
--- head/sbin/ifconfig/ifieee80211.c Sun Jan 30 14:05:21 2011 (r218092)
+++ head/sbin/ifconfig/ifieee80211.c Sun Jan 30 14:22:45 2011 (r218093)
@@ -3230,8 +3230,12 @@ scan_and_wait(int s)
ireq.i_data = &sr;
ireq.i_len = sizeof(sr);
- /* NB: only root can trigger a scan so ignore errors */
- if (ioctl(s, SIOCS80211, &ireq) >= 0) {
+ /*
+ * NB: only root can trigger a scan so ignore errors. Also ignore
+ * possible errors from net80211, even if no new scan could be
+ * started there might still be a valid scan cache.
+ */
+ if (ioctl(s, SIOCS80211, &ireq) == 0) {
char buf[2048];
struct if_announcemsghdr *ifan;
struct rt_msghdr *rtm;
More information about the svn-src-head
mailing list