diff options
author | Lorn Potter <lorn.potter@gmail.com> | 2014-10-26 10:03:48 +1000 |
---|---|---|
committer | Lorn Potter <lorn.potter@gmail.com> | 2014-10-28 20:26:57 +0100 |
commit | b1d3f1fec0d5c9f4f950f1d16ba25791fdcc8951 (patch) | |
tree | 4f9cece9de407813606fecef75da007ddacac952 | |
parent | a8ed001f36d1635bef3eb6a1bf5adcfae65dafd5 (diff) |
QtBearer corewlan add list of remembered networks
These should be at least Defined by the system even with wifi power off
Change-Id: I0964ba82fe3fab98585ea7771687cef4d1b70cf9
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
-rw-r--r-- | src/plugins/bearer/corewlan/qcorewlanengine.mm | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm index 6f9ea91799..55847a04a4 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.mm +++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm @@ -288,8 +288,6 @@ void QScanThread::getUserConfigurations() for (NSString *ifName in wifiInterfaces) { CWInterface *wifiInterface = [CWInterface interfaceWithName: ifName]; - if (!wifiInterface.powerOn) - continue; NSString *nsInterfaceName = wifiInterface.ssid; // add user configured system networks @@ -311,6 +309,21 @@ void QScanThread::getUserConfigurations() CFRelease(airportPlist); } + // remembered networks + CWConfiguration *userConfig = [wifiInterface configuration]; + NSOrderedSet *networkProfiles = [userConfig networkProfiles]; + NSEnumerator *enumerator = [networkProfiles objectEnumerator]; + CWNetworkProfile *wProfile; + while ((wProfile = [enumerator nextObject])) { + QString networkName = QCFString::toQString([wProfile ssid]); + + if (!userProfiles.contains(networkName)) { + QMap<QString,QString> map; + map.insert(networkName, QCFString::toQString(nsInterfaceName)); + userProfiles.insert(networkName, map); + } + } + // 802.1X user profiles QString userProfilePath = QDir::homePath() + "/Library/Preferences/com.apple.eap.profiles.plist"; NSDictionary* eapDict = [[[NSDictionary alloc] initWithContentsOfFile: QCFString::toNSString(userProfilePath)] autorelease]; @@ -330,14 +343,14 @@ void QScanThread::getUserConfigurations() [itemKey getObjects:objects andKeys:keys]; QString networkName; QString ssid; - for(int i = 0; i < dictSize; i++) { + for (int i = 0; i < dictSize; i++) { if([nameStr isEqualToString:keys[i]]) { networkName = QCFString::toQString(objects[i]); } - if([networkSsidStr isEqualToString:keys[i]]) { + if ([networkSsidStr isEqualToString:keys[i]]) { ssid = QCFString::toQString(objects[i]); } - if(!userProfiles.contains(networkName) + if (!userProfiles.contains(networkName) && !ssid.isEmpty()) { QMap<QString,QString> map; map.insert(ssid, QCFString::toQString(nsInterfaceName)); |