Lines Matching refs:config

123  *          removeNetwork(). For these calls, the config is not persisted
126 * These calls persist the supplicant config to disk.
151 * map supplicant config to IP configuration. */
363 // How long a disconnected config remain considered as the last user selection
596 if (DBG) log("Loading config and enabling all networks ");
607 for(WifiConfiguration config : mConfiguredNetworks.values()) {
608 WifiConfiguration newConfig = new WifiConfiguration(config);
611 if (config.autoJoinStatus == WifiConfiguration.AUTO_JOIN_DELETED || config.ephemeral) {
619 if (pskMap != null && config.allowedKeyManagement != null
620 && config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK)
621 && pskMap.containsKey(config.SSID)) {
622 newConfig.preSharedKey = pskMap.get(config.SSID);
668 for (WifiConfiguration config : mConfiguredNetworks.values()) {
669 if (config.autoJoinStatus == WifiConfiguration.AUTO_JOIN_DELETED || config.ephemeral) {
677 config.setVisibility(milli);
678 if (config.visibility == null) {
681 if (config.visibility.rssi5 == WifiConfiguration.INVALID_RSSI &&
682 config.visibility.rssi24 == WifiConfiguration.INVALID_RSSI) {
686 networks.add(new WifiConfiguration(config));
688 networks.add(config);
698 WifiConfiguration config = getWifiConfiguration(info.getNetworkId());
699 if (config != null && config.scanResultCache != null) {
700 ScanResult result = config.scanResultCache.get(info.getBSSID());
716 + " " + config.configKey());
751 * Enable all networks and save config. This will be a no-op if the list
758 for(WifiConfiguration config : mConfiguredNetworks.values()) {
760 if(config != null && config.status == Status.DISABLED && !config.ephemeral
761 && (config.autoJoinStatus
764 // Wait for 5 minutes before reenabling config that have known, repeated connection
766 if (config.disableReason == WifiConfiguration.DISABLED_DHCP_FAILURE
767 || config.disableReason == WifiConfiguration.DISABLED_ASSOCIATION_REJECT
768 || config.disableReason == WifiConfiguration.DISABLED_AUTH_FAILURE) {
769 if (config.blackListTimestamp != 0
770 && now > config.blackListTimestamp
771 && (now - config.blackListTimestamp) < wifiConfigBlacklistMinTimeMilli) {
776 if(mWifiNative.enableNetwork(config.networkId, false)) {
778 config.status = Status.ENABLED;
781 config.numConnectionFailures = 0;
782 config.numIpConfigFailures = 0;
783 config.numAuthFailures = 0;
786 config.setAutoJoinStatus(WifiConfiguration.AUTO_JOIN_ENABLED);
788 loge("Enable network failed on " + config.networkId);
818 for(WifiConfiguration config : mConfiguredNetworks.values()) {
819 if (config.networkId != INVALID_NETWORK_ID) {
820 config.priority = 0;
821 addOrUpdateNetworkNative(config, -1);
828 WifiConfiguration config = new WifiConfiguration();
829 config.networkId = netId;
830 config.priority = ++mLastPriority;
832 addOrUpdateNetworkNative(config, -1);
838 /* Avoid saving the config & sending a broadcast to prevent settings
844 * Add/update the specified configuration and save config
846 * @param config WifiConfiguration to be saved
849 NetworkUpdateResult saveNetwork(WifiConfiguration config, int uid) {
853 if (config == null || (config.networkId == INVALID_NETWORK_ID &&
854 config.SSID == null)) {
857 if (VDBG) localLog("WifiConfigStore: saveNetwork netId", config.networkId);
860 + " SSID=" + config.SSID
861 + " Uid=" + Integer.toString(config.creatorUid)
862 + "/" + Integer.toString(config.lastUpdateUid));
865 if (mDeletedEphemeralSSIDs.remove(config.SSID)) {
867 loge("WifiConfigStore: removed from ephemeral blacklist: " + config.SSID);
870 // below, since we're creating/modifying a config.
873 boolean newNetwork = (config.networkId == INVALID_NETWORK_ID);
874 NetworkUpdateResult result = addOrUpdateNetworkNative(config, uid);
899 loge("WifiConfigStore: saveNetwork got config back netId="
901 + " uid=" + Integer.toString(config.creatorUid));
926 WifiConfiguration config = getWifiConfiguration(info.getNetworkId());
927 if (config != null) {
928 if (config.scanResultCache != null) {
929 ScanResult result = config.scanResultCache.get(info.getBSSID());
938 void noteRoamingFailure(WifiConfiguration config, int reason) {
939 if (config == null) return;
940 config.lastRoamingFailure = System.currentTimeMillis();
941 config.roamingFailureBlackListTimeMilli
942 = 2 * (config.roamingFailureBlackListTimeMilli + 1000);
943 if (config.roamingFailureBlackListTimeMilli
945 config.roamingFailureBlackListTimeMilli =
948 config.lastRoamingFailureReason = reason;
951 void saveWifiConfigBSSID(WifiConfiguration config) {
952 // Sanity check the config is valid
953 if (config == null || (config.networkId == INVALID_NETWORK_ID &&
954 config.SSID == null)) {
959 if (config.BSSID != null && config.BSSID != "any") {
964 if (config.autoJoinBSSID != null) {
965 loge("saveWifiConfigBSSID Setting BSSID for " + config.configKey()
966 + " to " + config.autoJoinBSSID);
968 config.networkId,
970 config.autoJoinBSSID)) {
971 loge("failed to set BSSID: " + config.autoJoinBSSID);
972 } else if (config.autoJoinBSSID.equals("any")) {
973 // Paranoia, we just want to make sure that we restore the config to normal
982 WifiConfiguration config = mConfiguredNetworks.get(netId);
983 if (config == null) return;
986 config.status = Status.CURRENT;
988 config.setAutoJoinStatus(WifiConfiguration.AUTO_JOIN_ENABLED);
992 if (config.status == Status.CURRENT) {
993 config.status = Status.ENABLED;
1025 for (WifiConfiguration config : mConfiguredNetworks.values()) {
1026 if (SSID.equals(config.SSID) && config.ephemeral) {
1027 loge("Found ephemeral config in disableEphemeralNetwork: " + config.networkId);
1028 foundConfig = config;
1040 * Forget the specified network and save config
1068 * @param config wifi configuration to add/update
1071 int addOrUpdateNetwork(WifiConfiguration config, int uid) {
1072 if (showNetworks) localLog("addOrUpdateNetwork id=", config.networkId);
1074 Log.e(TAG, " key=" + config.configKey() + " netId=" + Integer.toString(config.networkId)
1075 + " uid=" + Integer.toString(config.creatorUid)
1076 + "/" + Integer.toString(config.lastUpdateUid));
1077 NetworkUpdateResult result = addOrUpdateNetworkNative(config, uid);
1108 WifiConfiguration config = mConfiguredNetworks.get(netId);
1109 if (config != null) {
1112 config.configKey() + " config.id=" + Integer.toString(config.networkId));
1116 if (config.configKey().equals(lastSelectedConfiguration)) {
1121 if (config.enterpriseConfig != null) {
1122 removeKeys(config.enterpriseConfig);
1125 if (config.selfAdded || config.linkedConfigurations != null
1126 || config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
1127 if (!TextUtils.isEmpty(config.SSID)) {
1130 if (config.SSID != null) {
1131 csum.update(config.SSID.getBytes(), 0, config.SSID.getBytes().length);
1135 + " key=" + config.configKey()
1136 + " config.id=" + Integer.toString(config.networkId)
1142 mNetworkIds.remove(configKey(config));
1145 sendConfiguredNetworksChangedBroadcast(config, WifiManager.CHANGE_REASON_REMOVED);
1183 WifiConfiguration config = mConfiguredNetworks.get(netId);
1184 if (config != null) config.status = Status.ENABLED;
1195 for(WifiConfiguration config : mConfiguredNetworks.values()) {
1196 if(config != null && config.status != Status.DISABLED) {
1197 if(mWifiNative.disableNetwork(config.networkId)) {
1199 config.status = Status.DISABLED;
1201 loge("Disable network failed on " + config.networkId);
1229 WifiConfiguration config = mConfiguredNetworks.get(netId);
1232 if (config != null) {
1234 + " SSID=" + config.SSID
1235 + " disabled=" + (config.status == Status.DISABLED)
1236 + " reason=" + Integer.toString(config.disableReason));
1242 if (config != null) {
1243 if (config.status != Status.DISABLED
1244 && config.disableReason != WifiConfiguration.DISABLED_BY_WIFI_MANAGER) {
1245 config.status = Status.DISABLED;
1246 config.disableReason = reason;
1247 network = config;
1252 config.status = Status.DISABLED;
1253 config.autoJoinStatus = WifiConfiguration.AUTO_JOIN_DISABLED_USER_ACTION;
1274 * @param config WPS configuration
1277 WpsResult startWpsWithPinFromAccessPoint(WpsInfo config) {
1279 if (mWifiNative.startWpsRegistrar(config.BSSID, config.pin)) {
1295 WpsResult startWpsWithPinFromDevice(WpsInfo config) {
1297 result.pin = mWifiNative.startWpsPinDisplay(config.BSSID);
1311 * @param config WPS configuration
1314 WpsResult startWpsPbc(WpsInfo config) {
1316 if (mWifiNative.startWpsPbc(config.BSSID)) {
1331 WifiConfiguration config = mConfiguredNetworks.get(netId);
1332 if (config != null) {
1333 return config.getStaticIpConfiguration();
1342 WifiConfiguration config = mConfiguredNetworks.get(netId);
1343 if (config != null) {
1344 config.setStaticIpConfiguration(staticIpConfiguration);
1352 WifiConfiguration config = mConfiguredNetworks.get(netId);
1353 if (config != null) {
1355 config.defaultGwMacAddress = macAddress;
1366 WifiConfiguration config = mConfiguredNetworks.get(netId);
1367 if (config != null) {
1368 return config.getHttpProxy();
1379 WifiConfiguration config = mConfiguredNetworks.get(netId);
1380 if (config != null && config.getIpAssignment() == IpAssignment.STATIC) {
1440 WifiConfiguration config = new WifiConfiguration();
1442 config.networkId = Integer.parseInt(result[0]);
1443 last_id = config.networkId;
1450 config.status = WifiConfiguration.Status.CURRENT;
1452 config.status = WifiConfiguration.Status.DISABLED;
1454 config.status = WifiConfiguration.Status.ENABLED;
1456 config.status = WifiConfiguration.Status.ENABLED;
1459 readNetworkVariables(config);
1462 if (config.SSID != null) {
1463 csum.update(config.SSID.getBytes(), 0, config.SSID.getBytes().length);
1466 loge(" got CRC for SSID " + config.SSID + " -> " + d + ", was deleted");
1470 if (config.priority > mLastPriority) {
1471 mLastPriority = config.priority;
1474 config.setIpAssignment(IpAssignment.DHCP);
1475 config.setProxySettings(ProxySettings.NONE);
1477 if (mNetworkIds.containsKey(configKey(config))) {
1479 if (showNetworks) localLog("discarded duplicate network ", config.networkId);
1480 } else if(config.isValid()){
1481 mConfiguredNetworks.put(config.networkId, config);
1482 mNetworkIds.put(configKey(config), config.networkId);
1483 if (showNetworks) localLog("loaded configured network", config.networkId);
1485 if (showNetworks) log("Ignoring loaded configured for network " + config.networkId
1486 + " because config are not valid");
1596 for(WifiConfiguration config : mConfiguredNetworks.values()) {
1597 if(config != null && config.networkId != netId) {
1598 if (config.status != Status.DISABLED) {
1599 config.status = Status.DISABLED;
1600 config.disableReason = WifiConfiguration.DISABLED_UNKNOWN_REASON;
1616 for(WifiConfiguration config : mConfiguredNetworks.values()) {
1618 if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP)
1619 && config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
1621 if (needsSoftwareBackedKeyStore(config.enterpriseConfig)) {
1635 for (WifiConfiguration config : mConfiguredNetworks.values()) {
1636 networks.add(new WifiConfiguration(config));
1637 if (config.dirty == true) {
1638 loge(" rewrite network history for " + config.configKey());
1639 config.dirty = false;
1652 for (WifiConfiguration config : networks) {
1653 //loge("onWriteCalled write SSID: " + config.SSID);
1654 /* if (config.getLinkProperties() != null)
1655 loge(" lp " + config.getLinkProperties().toString());
1657 loge("attempt config w/o lp");
1663 if (config.connectChoices != null) {
1664 num = config.connectChoices.size();
1666 if (config.linkedConfigurations != null) {
1667 numlink = config.linkedConfigurations.size();
1669 loge("saving network history: " + config.configKey() + " gw: " +
1670 config.defaultGwMacAddress + " autojoin-status: " +
1671 config.autoJoinStatus + " ephemeral=" + config.ephemeral
1674 + " status:" + Integer.toString(config.status)
1675 + " nid:" + Integer.toString(config.networkId));
1678 if (config.isValid() == false)
1681 if (config.SSID == null) {
1683 loge("writeKnownNetworkHistory trying to write config with null SSID");
1688 loge("writeKnownNetworkHistory write config " + config.configKey());
1690 out.writeUTF(CONFIG_KEY + config.configKey() + SEPARATOR_KEY);
1692 out.writeUTF(SSID_KEY + config.SSID + SEPARATOR_KEY);
1693 out.writeUTF(FQDN_KEY + config.FQDN + SEPARATOR_KEY);
1695 out.writeUTF(PRIORITY_KEY + Integer.toString(config.priority) + SEPARATOR_KEY);
1696 out.writeUTF(STATUS_KEY + Integer.toString(config.autoJoinStatus)
1698 out.writeUTF(SUPPLICANT_STATUS_KEY + Integer.toString(config.status)
1701 + Integer.toString(config.disableReason)
1703 out.writeUTF(NETWORK_ID_KEY + Integer.toString(config.networkId)
1705 out.writeUTF(SELF_ADDED_KEY + Boolean.toString(config.selfAdded)
1707 out.writeUTF(DID_SELF_ADD_KEY + Boolean.toString(config.didSelfAdd)
1710 + Integer.toString(config.numNoInternetAccessReports)
1713 + Boolean.toString(config.validatedInternetAccess)
1716 + Boolean.toString(config.ephemeral)
1718 if (config.peerWifiConfiguration != null) {
1719 out.writeUTF(PEER_CONFIGURATION_KEY + config.peerWifiConfiguration
1723 + Integer.toString(config.numConnectionFailures)
1726 + Integer.toString(config.numAuthFailures)
1729 + Integer.toString(config.numIpConfigFailures)
1731 out.writeUTF(SCORER_OVERRIDE_KEY + Integer.toString(config.numScorerOverride)
1734 + Integer.toString(config.numScorerOverrideAndSwitchedNetwork)
1737 + Integer.toString(config.numAssociation)
1740 + Integer.toString(config.autoJoinUseAggressiveJoinAttemptThreshold)
1742 //out.writeUTF(BLACKLIST_MILLI_KEY + Long.toString(config.blackListTimestamp)
1744 out.writeUTF(CREATOR_UID_KEY + Integer.toString(config.creatorUid)
1746 out.writeUTF(CONNECT_UID_KEY + Integer.toString(config.lastConnectUid)
1748 out.writeUTF(UPDATE_UID_KEY + Integer.toString(config.lastUpdateUid)
1751 makeString(config.allowedKeyManagement,
1755 if (config.connectChoices != null) {
1756 for (String key : config.connectChoices.keySet()) {
1757 Integer choice = config.connectChoices.get(key);
1762 if (config.linkedConfigurations != null) {
1764 + config.linkedConfigurations.size());
1766 for (String key : config.linkedConfigurations.keySet()) {
1771 String macAddress = config.defaultGwMacAddress;
1776 if (config.scanResultCache != null) {
1777 for (ScanResult result : config.scanResultCache.values()) {
1797 if (config.lastFailure != null) {
1798 out.writeUTF(FAILURE_KEY + config.lastFailure + SEPARATOR_KEY);
1850 public boolean isLastSelectedConfiguration(WifiConfiguration config) {
1852 && config != null
1853 && lastSelectedConfiguration.equals(config.configKey()));
1864 WifiConfiguration config = null;
1878 if (config != null) {
1879 config = null;
1883 // get the networkId for that config Key
1893 config = mConfiguredNetworks.get(n);
1894 if (config == null) {
1895 localLog("readNetworkHistory didnt find config for netid="
1907 } else if (config != null) {
1911 if (config.SSID != null && !config.SSID.equals(ssid)) {
1913 config = null; //error
1916 config.SSID = ssid;
1923 config.FQDN = fqdn;
1929 config.defaultGwMacAddress = gateway;
1935 config.autoJoinStatus = Integer.parseInt(st);
1941 config.disableReason = Integer.parseInt(reason);
1947 config.selfAdded = Boolean.parseBoolean(selfAdded);
1953 config.didSelfAdd = Boolean.parseBoolean(didSelfAdd);
1959 config.numNoInternetAccessReports = Integer.parseInt(access);
1965 config.validatedInternetAccess = Boolean.parseBoolean(access);
1971 config.ephemeral = Boolean.parseBoolean(access);
1977 config.creatorUid = Integer.parseInt(uid);
1983 config.blackListTimestamp = Long.parseLong(milli);
1989 config.numConnectionFailures = Integer.parseInt(num);
1995 config.numIpConfigFailures = Integer.parseInt(num);
2001 config.numIpConfigFailures = Integer.parseInt(num);
2007 config.numScorerOverride = Integer.parseInt(num);
2013 config.numScorerOverrideAndSwitchedNetwork = Integer.parseInt(num);
2019 config.numAssociation = Integer.parseInt(num);
2025 config.autoJoinUseAggressiveJoinAttemptThreshold = Integer.parseInt(num);
2031 config.lastConnectUid = Integer.parseInt(uid);
2037 config.lastUpdateUid = Integer.parseInt(uid);
2041 config.lastFailure = key.replace(FAILURE_KEY, "");
2042 config.lastFailure = config.lastFailure.replace(SEPARATOR_KEY, "");
2046 config.peerWifiConfiguration = key.replace(PEER_CONFIGURATION_KEY, "");
2047 config.peerWifiConfiguration =
2048 config.peerWifiConfiguration.replace(SEPARATOR_KEY, "");
2068 if (config.connectChoices == null) {
2069 config.connectChoices = new HashMap<String, Integer>();
2071 config.connectChoices.put(configKey, choice);
2079 if (config.linkedConfigurations == null) {
2080 config.linkedConfigurations = new HashMap<String, Integer>();
2082 if (config.linkedConfigurations != null) {
2083 config.linkedConfigurations.put(configKey, -1);
2131 if (config.scanResultCache == null) {
2132 config.scanResultCache = new HashMap<String, ScanResult>();
2138 config.scanResultCache.put(bssid, result);
2167 loge("readNetworkHistory: No config file, revert to default" + e);
2579 for(WifiConfiguration config : mConfiguredNetworks.values()) {
2580 if (!config.ephemeral && config.autoJoinStatus != WifiConfiguration.AUTO_JOIN_DELETED) {
2581 networks.put(configKey(config), config.getIpConfiguration());
2598 WifiConfiguration config = mConfiguredNetworks.get(mNetworkIds.get(id));
2601 if (config == null || config.autoJoinStatus == WifiConfiguration.AUTO_JOIN_DELETED ||
2602 config.ephemeral) {
2606 config.setIpConfiguration(networks.valueAt(i));
2623 private NetworkUpdateResult addOrUpdateNetworkNative(WifiConfiguration config, int uid) {
2630 if (VDBG) localLog("addOrUpdateNetworkNative " + config.getPrintableSsid());
2632 int netId = config.networkId;
2636 Integer savedNetId = mNetworkIds.get(configKey(config));
2641 if (test.configKey().equals(config.configKey())) {
2643 loge("addOrUpdateNetworkNative " + config.configKey()
2667 if (config.SSID != null &&
2671 encodeSSID(config.SSID))) {
2672 loge("failed to set SSID: "+config.SSID);
2676 if (config.BSSID != null) {
2677 loge("Setting BSSID for " + config.configKey() + " to " + config.BSSID);
2681 config.BSSID)) {
2682 loge("failed to set BSSID: " + config.BSSID);
2688 makeString(config.allowedKeyManagement, WifiConfiguration.KeyMgmt.strings);
2689 if (config.allowedKeyManagement.cardinality() != 0 &&
2700 makeString(config.allowedProtocols, WifiConfiguration.Protocol.strings);
2701 if (config.allowedProtocols.cardinality() != 0 &&
2712 makeString(config.allowedAuthAlgorithms, WifiConfiguration.AuthAlgorithm.strings);
2713 if (config.allowedAuthAlgorithms.cardinality() != 0 &&
2724 makeString(config.allowedPairwiseCiphers,
2726 if (config.allowedPairwiseCiphers.cardinality() != 0 &&
2737 makeString(config.allowedGroupCiphers, WifiConfiguration.GroupCipher.strings);
2738 if (config.allowedGroupCiphers.cardinality() != 0 &&
2750 if (config.preSharedKey != null && !config.preSharedKey.equals("*") &&
2754 config.preSharedKey)) {
2760 if (config.wepKeys != null) {
2761 for (int i = 0; i < config.wepKeys.length; i++) {
2764 if (config.wepKeys[i] != null && !config.wepKeys[i].equals("*")) {
2768 config.wepKeys[i])) {
2769 loge("failed to set wep_key" + i + ": " + config.wepKeys[i]);
2781 Integer.toString(config.wepTxKeyIndex))) {
2782 loge("failed to set wep_tx_keyidx: " + config.wepTxKeyIndex);
2790 Integer.toString(config.priority))) {
2791 loge(config.SSID + ": failed to set priority: "
2792 +config.priority);
2796 if (config.hiddenSSID && !mWifiNative.setNetworkVariable(
2799 Integer.toString(config.hiddenSSID ? 1 : 0))) {
2800 loge(config.SSID + ": failed to set hiddenSSID: "+
2801 config.hiddenSSID);
2805 if (config.requirePMF && !mWifiNative.setNetworkVariable(
2809 loge(config.SSID + ": failed to set requirePMF: "+
2810 config.requirePMF);
2814 if (config.updateIdentifier != null && !mWifiNative.setNetworkVariable(
2817 config.updateIdentifier)) {
2818 loge(config.SSID + ": failed to set updateIdentifier: "+
2819 config.updateIdentifier);
2823 if (config.enterpriseConfig != null &&
2824 config.enterpriseConfig.getEapMethod() != WifiEnterpriseConfig.Eap.NONE) {
2826 WifiEnterpriseConfig enterpriseConfig = config.enterpriseConfig;
2836 loge(config.SSID + ": key store is locked");
2841 /* config passed may include only fields being updated.
2846 String keyId = config.getKeyIdForCredentials(currentConfig);
2849 loge(config.SSID + ": failed to install keys");
2853 loge(config.SSID + " invalid config for key installation");
2870 loge(config.SSID + ": failed to set " + key +
2900 if (config != null) {
2902 currentConfig.selfAdded = config.selfAdded;
2903 currentConfig.didSelfAdd = config.didSelfAdd;
2904 currentConfig.ephemeral = config.ephemeral;
2906 = config.autoJoinUseAggressiveJoinAttemptThreshold;
2907 currentConfig.lastConnectUid = config.lastConnectUid;
2908 currentConfig.lastUpdateUid = config.lastUpdateUid;
2909 currentConfig.creatorUid = config.creatorUid;
2910 currentConfig.peerWifiConfiguration = config.peerWifiConfiguration;
2913 loge("created new config netId=" + Integer.toString(netId)
2949 // Make the config non-ephemeral since the user just explicitly clicked it.
2962 NetworkUpdateResult result = writeIpAndProxyConfigurationsOnChange(currentConfig, config);
2974 * @param config
2976 public void linkConfiguration(WifiConfiguration config) {
2978 if (config.scanResultCache != null && config.scanResultCache.size() > 6) {
2982 if (!config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
2983 // Only link WPA_PSK config
2989 if (link.configKey().equals(config.configKey())) {
2999 if (!link.allowedKeyManagement.equals(config.allowedKeyManagement)) {
3008 if (config.defaultGwMacAddress != null && link.defaultGwMacAddress != null) {
3010 if (config.defaultGwMacAddress.equals(link.defaultGwMacAddress)) {
3013 " and " + config.SSID + " GW " + config.defaultGwMacAddress);
3022 if ((config.scanResultCache != null) && (config.scanResultCache.size() <= 6)
3024 for (String abssid : config.scanResultCache.keySet()) {
3029 " and " + config.SSID + " bssida " + abssid
3044 String bpsk = readNetworkVariableFromSupplicantFile(config.SSID, "psk");
3056 + " and " + config.configKey());
3061 if (config.linkedConfigurations == null) {
3062 config.linkedConfigurations = new HashMap<String, Integer>();
3064 if (link.linkedConfigurations.get(config.configKey()) == null) {
3065 link.linkedConfigurations.put(config.configKey(), Integer.valueOf(1));
3068 if (config.linkedConfigurations.get(link.configKey()) == null) {
3069 config.linkedConfigurations.put(link.configKey(), Integer.valueOf(1));
3070 config.dirty = true;
3074 && (link.linkedConfigurations.get(config.configKey()) != null)) {
3076 loge("linkConfiguration: un-link " + config.configKey()
3080 link.linkedConfigurations.remove(config.configKey());
3082 if (config.linkedConfigurations != null
3083 && (config.linkedConfigurations.get(link.configKey()) != null)) {
3086 + " from " + config.configKey());
3088 config.dirty = true;
3089 config.linkedConfigurations.remove(link.configKey());
3112 if (DBG) loge("associateWithConfiguration(): no config key " );
3129 WifiConfiguration config = null;
3136 // Make sure we dont associate the scan result to a deleted config
3142 // Make sure we dont associate the scan result to a non-PSK config
3176 config = wifiConfigurationFromScanResult(result);
3177 if (config != null) {
3178 config.selfAdded = true;
3179 config.didSelfAdd = true;
3180 config.dirty = true;
3181 config.peerWifiConfiguration = link.configKey();
3182 if (config.allowedKeyManagement.equals(link.allowedKeyManagement) &&
3183 config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
3184 if (VDBG && config != null) {
3185 loge("associateWithConfiguration: got a config from beacon"
3186 + config.SSID + " key " + config.configKey());
3191 config.preSharedKey = psk;
3193 if (config.preSharedKey != null)
3194 loge(" transfer PSK : " + config.preSharedKey);
3201 if (config.linkedConfigurations == null) {
3202 config.linkedConfigurations = new HashMap<String, Integer>();
3204 link.linkedConfigurations.put(config.configKey(), Integer.valueOf(1));
3205 config.linkedConfigurations.put(link.configKey(), Integer.valueOf(1));
3209 config.setIpConfiguration(link.getIpConfiguration());
3212 config = null;
3215 config = null;
3217 if (config != null) break;
3219 if (VDBG && config != null) {
3220 loge("associateWithConfiguration: success, created: " + config.SSID
3221 + " key " + config.configKey());
3225 return config;
3228 public HashSet<Integer> makeChannelList(WifiConfiguration config, int age, boolean restrict) {
3229 if (config == null)
3236 if (config.scanResultCache == null && config.linkedConfigurations == null) {
3243 + " for " + config.configKey()
3245 if (config.scanResultCache != null) {
3246 dbg.append(" bssids=" + config.scanResultCache.size());
3248 if (config.linkedConfigurations != null) {
3249 dbg.append(" linked=" + config.linkedConfigurations.size());
3255 if (config.scanResultCache != null && config.scanResultCache.size() > 0) {
3256 for (ScanResult result : config.scanResultCache.values()) {
3274 if (config.linkedConfigurations != null) {
3275 for (String key : config.linkedConfigurations.keySet()) {
3310 for (WifiConfiguration config : mConfiguredNetworks.values()) {
3313 if (config.SSID == null || !config.SSID.equals(SSID)) {
3316 loge("updateSavedNetworkHistory(): SSID mismatch " + config.configKey()
3317 + " SSID=" + config.SSID + " " + SSID);
3322 loge("updateSavedNetworkHistory(): try " + config.configKey()
3323 + " SSID=" + config.SSID + " " + scanResult.SSID
3325 + " ajst=" + config.autoJoinStatus);
3328 && config.configKey().contains("WEP")) {
3331 && config.configKey().contains("PSK")) {
3334 && config.configKey().contains("EAP")) {
3339 && !config.configKey().contains("WEP")
3340 && !config.configKey().contains("PSK")
3341 && !config.configKey().contains("EAP")) {
3348 if (config.autoJoinStatus >= WifiConfiguration.AUTO_JOIN_DELETED) {
3351 + config.configKey());
3353 // The scan result belongs to a deleted config:
3354 // - increment numConfigFound to remember that we found a config
3356 // - dont do anything since the config was deleted, just skip...
3360 if (config.scanResultCache == null) {
3361 config.scanResultCache = new HashMap<String, ScanResult>();
3365 ScanResult result = config.scanResultCache.get(scanResult.BSSID);
3367 config.dirty = true;
3377 if (config.ephemeral) {
3378 // For an ephemeral Wi-Fi config, the ScanResult should be considered
3383 if (config.scanResultCache.size() > (maxNumScanCacheEntries + 64)) {
3386 loge(" Will trim config " + config.configKey()
3387 + " size " + config.scanResultCache.size());
3389 for (ScanResult r : config.scanResultCache.values()) {
3397 config.trimScanResultsCache(maxNumScanCacheEntries);
3400 loge(" Finished trimming config, time(ns) " + diff);
3401 for (ScanResult r : config.scanResultCache.values()) {
3408 config.scanResultCache.put(scanResult.BSSID, scanResult);
3410 linkConfiguration(config);
3420 + config.configKey() + " num: " +
3421 Integer.toString(config.scanResultCache.size())
3494 log("IP config changed SSID = " + currentConfig.SSID);
3518 /** Returns true if a particular config key needs to be quoted when passed to the supplicant. */
3533 * @param config the {@link WifiConfiguration} object to be filled in.
3535 private void readNetworkVariables(WifiConfiguration config) {
3537 int netId = config.networkId;
3551 config.SSID = "\"" + WifiSsid.createFromHex(value).toString() + "\"";
3555 config.SSID = value;
3558 config.SSID = null;
3563 config.BSSID = value;
3565 config.BSSID = null;
3569 config.priority = -1;
3572 config.priority = Integer.parseInt(value);
3578 config.hiddenSSID = false;
3581 config.hiddenSSID = Integer.parseInt(value) != 0;
3587 config.wepTxKeyIndex = -1;
3590 config.wepTxKeyIndex = Integer.parseInt(value);
3599 config.wepKeys[i] = value;
3601 config.wepKeys[i] = null;
3607 config.preSharedKey = value;
3609 config.preSharedKey = null;
3612 value = mWifiNative.getNetworkVariable(config.networkId,
3620 config.allowedProtocols.set(index);
3625 value = mWifiNative.getNetworkVariable(config.networkId,
3633 config.allowedKeyManagement.set(index);
3638 value = mWifiNative.getNetworkVariable(config.networkId,
3646 config.allowedAuthAlgorithms.set(index);
3651 value = mWifiNative.getNetworkVariable(config.networkId,
3659 config.allowedPairwiseCiphers.set(index);
3664 value = mWifiNative.getNetworkVariable(config.networkId,
3672 config.allowedGroupCiphers.set(index);
3677 if (config.enterpriseConfig == null) {
3678 config.enterpriseConfig = new WifiEnterpriseConfig();
3680 HashMap<String, String> enterpriseFields = config.enterpriseConfig.getFields();
3693 if (migrateOldEapTlsNative(config.enterpriseConfig, netId)) {
3697 migrateCerts(config.enterpriseConfig);
3698 // initializeSoftwareKeystoreFlag(config.enterpriseConfig, mKeyStore);
3750 WifiConfiguration config = new WifiConfiguration();
3752 config.SSID = "\"" + result.SSID + "\"";
3756 config.SSID + " cap " + result.capabilities);
3759 config.allowedKeyManagement.set(KeyMgmt.NONE);
3760 config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); //?
3761 config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
3765 config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
3769 //this is probably wrong, as we don't have a way to enter the enterprise config
3770 config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
3771 config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
3774 config.scanResultCache = new HashMap<String, ScanResult>();
3775 if (config.scanResultCache == null)
3777 config.scanResultCache.put(result.BSSID, result);
3779 return config;
3784 private static int configKey(WifiConfiguration config) {
3785 String key = config.configKey();
3844 WifiConfiguration config;
3846 config = mConfiguredNetworks.get(netId);
3849 if (config != null) {
3850 mLocalLog.log(s + " " + config.getPrintableSsid() + " " + netId
3851 + " status=" + config.status
3852 + " key=" + config.configKey());
3859 static boolean needsKeyStore(WifiEnterpriseConfig config) {
3861 if (config.getClientCertificate() == null && config.getCaCertificate() == null)
3874 static boolean needsSoftwareBackedKeyStore(WifiEnterpriseConfig config) {
3875 String client = config.getClientCertificateAlias();
3936 WifiConfiguration config = mConfiguredNetworks.get(netId);
3937 if (config != null) {
3942 config.setAutoJoinStatus(WifiConfiguration.AUTO_JOIN_TEMPORARY_DISABLED
3948 config.setAutoJoinStatus(WifiConfiguration.AUTO_JOIN_TEMPORARY_DISABLED
3963 // Look for the BSSID in our config store
3964 for (WifiConfiguration config : mConfiguredNetworks.values()) {
3965 if (config.scanResultCache != null) {
3966 for (ScanResult result: config.scanResultCache.values()) {
3991 WifiConfiguration config = mConfiguredNetworks.get(netId);
3992 if (config != null) {
3994 loge("SSID re-enabled for " + config.configKey() +
3995 " had autoJoinStatus=" + Integer.toString(config.autoJoinStatus)
3996 + " self added " + config.selfAdded + " ephemeral " + config.ephemeral);
4001 if (config.autoJoinStatus == WifiConfiguration.AUTO_JOIN_DISABLED_ON_AUTH_FAILURE) {
4002 config.setAutoJoinStatus(WifiConfiguration.AUTO_JOIN_ENABLED);
4005 loge("SSID temp disabled for " + config.configKey() +
4006 " had autoJoinStatus=" + Integer.toString(config.autoJoinStatus)
4007 + " self added " + config.selfAdded + " ephemeral " + config.ephemeral);
4011 if (config.selfAdded && config.lastConnected == 0) {
4015 removeConfigAndSendBroadcastIfNeeded(config.networkId);
4019 config.setAutoJoinStatus(
4022 loge("no identity blacklisted " + config.configKey() + " to "
4023 + Integer.toString(config.autoJoinStatus));
4031 config.numAuthFailures++;
4032 if (config.numAuthFailures > maxAuthErrorsToBlacklist) {
4033 config.setAutoJoinStatus
4037 loge("Authentication failure, blacklist " + config.configKey() + " "
4038 + Integer.toString(config.networkId)
4039 + " num failures " + config.numAuthFailures);
4042 config.numIpConfigFailures++;
4043 config.lastConnectionFailure = System.currentTimeMillis();
4046 if (maxRetries > 0 && config.numIpConfigFailures > maxRetries) {
4051 config.setAutoJoinStatus
4054 loge("DHCP failure, blacklist " + config.configKey() + " "
4055 + Integer.toString(config.networkId)
4056 + " num failures " + config.numIpConfigFailures);
4062 if (config.scanResultCache != null && BSSID != null) {
4063 result = config.scanResultCache.get(BSSID);
4076 loge("blacklisted " + config.configKey() + " to "
4077 + config.autoJoinStatus
4078 + " due to IP config failures, count="
4079 + config.numIpConfigFailures
4080 + " disableReason=" + config.disableReason
4084 config.numConnectionFailures++;
4085 if (config.numConnectionFailures > maxConnectionErrorsToBlacklist) {
4086 config.setAutoJoinStatus
4090 loge("Connection failure, blacklist " + config.configKey() + " "
4091 + config.networkId
4092 + " num failures " + config.numConnectionFailures);
4097 config.lastFailure = message;
4104 boolean installKeys(WifiEnterpriseConfig config, String name) {
4109 if (config.getClientCertificate() != null) {
4110 byte[] privKeyData = config.getClientPrivateKey().getEncoded();
4111 if (isHardwareBackedKey(config.getClientPrivateKey())) {
4130 ret = putCertInKeyStore(userCertName, config.getClientCertificate());
4138 if (config.getCaCertificate() != null) {
4139 ret = putCertInKeyStore(caCertName, config.getCaCertificate());
4141 if (config.getClientCertificate() != null) {
4151 if (config.getClientCertificate() != null) {
4152 config.setClientCertificateAlias(name);
4153 config.resetClientKeyEntry();
4156 if (config.getCaCertificate() != null) {
4157 config.setCaCertificateAlias(name);
4158 config.resetCaCertificate();
4177 void removeKeys(WifiEnterpriseConfig config) {
4178 String client = config.getClientCertificateAlias();
4186 String ca = config.getCaCertificateAlias();
4195 /** Migrates the old style TLS config to the new config style. This should only be used
4198 * @return true if the config was updated
4201 boolean migrateOldEapTlsNative(WifiEnterpriseConfig config, int netId) {
4217 config.setFieldValue(WifiEnterpriseConfig.ENGINE_KEY, WifiEnterpriseConfig.ENGINE_ENABLE);
4218 config.setFieldValue(WifiEnterpriseConfig.ENGINE_ID_KEY,
4232 config.setFieldValue(WifiEnterpriseConfig.PRIVATE_KEY_ID_KEY, keyName);
4235 config.getFieldValue(WifiEnterpriseConfig.ENGINE_KEY, ""));
4238 config.getFieldValue(WifiEnterpriseConfig.ENGINE_ID_KEY, ""));
4241 config.getFieldValue(WifiEnterpriseConfig.PRIVATE_KEY_ID_KEY, ""));
4250 void migrateCerts(WifiEnterpriseConfig config) {
4251 String client = config.getClientCertificateAlias();
4262 String ca = config.getCaCertificateAlias();