Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1624)

Unified Diff: chrome/browser/chromeos/cros/native_network_parser.cc

Issue 23618026: NOT FOR SUBMIT: Remove NetworkLibrary (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/cros/native_network_parser.cc
diff --git a/chrome/browser/chromeos/cros/native_network_parser.cc b/chrome/browser/chromeos/cros/native_network_parser.cc
deleted file mode 100644
index b55ed2c8a35eeb33d77971bb401424b31490228d..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/cros/native_network_parser.cc
+++ /dev/null
@@ -1,1444 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/chromeos/cros/native_network_parser.h"
-
-#include <string>
-
-#include "base/logging.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "base/values.h"
-#include "chrome/browser/chromeos/cros/native_network_constants.h"
-#include "chrome/browser/chromeos/cros/network_library.h"
-#include "chrome/browser/chromeos/login/user_manager.h"
-#include "chromeos/network/onc/onc_utils.h"
-#include "third_party/cros_system_api/dbus/service_constants.h"
-
-namespace chromeos {
-
-// Local constants.
-namespace {
-
-const char kPostMethod[] = "post";
-
-EnumMapper<PropertyIndex>::Pair property_index_table[] = {
- { shill::kActivateOverNonCellularNetworkProperty,
- PROPERTY_INDEX_ACTIVATE_OVER_NON_CELLULAR_NETWORK },
- { flimflam::kActivationStateProperty, PROPERTY_INDEX_ACTIVATION_STATE },
- { flimflam::kActiveProfileProperty, PROPERTY_INDEX_ACTIVE_PROFILE },
- { flimflam::kArpGatewayProperty, PROPERTY_INDEX_ARP_GATEWAY },
- { flimflam::kAutoConnectProperty, PROPERTY_INDEX_AUTO_CONNECT },
- { flimflam::kAvailableTechnologiesProperty,
- PROPERTY_INDEX_AVAILABLE_TECHNOLOGIES },
- { flimflam::kCarrierProperty, PROPERTY_INDEX_CARRIER },
- { flimflam::kCellularAllowRoamingProperty,
- PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING },
- { flimflam::kCellularApnListProperty, PROPERTY_INDEX_CELLULAR_APN_LIST },
- { flimflam::kCellularApnProperty, PROPERTY_INDEX_CELLULAR_APN },
- { flimflam::kCellularLastGoodApnProperty,
- PROPERTY_INDEX_CELLULAR_LAST_GOOD_APN },
- { flimflam::kCheckPortalProperty, PROPERTY_INDEX_CHECK_PORTAL },
- { flimflam::kCheckPortalListProperty, PROPERTY_INDEX_CHECK_PORTAL_LIST },
- { flimflam::kConnectableProperty, PROPERTY_INDEX_CONNECTABLE },
- { flimflam::kConnectedTechnologiesProperty,
- PROPERTY_INDEX_CONNECTED_TECHNOLOGIES },
- { flimflam::kDefaultTechnologyProperty, PROPERTY_INDEX_DEFAULT_TECHNOLOGY },
- { flimflam::kDeviceProperty, PROPERTY_INDEX_DEVICE },
- { flimflam::kDevicesProperty, PROPERTY_INDEX_DEVICES },
- { flimflam::kEapAnonymousIdentityProperty,
- PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY },
- { flimflam::kEapCaCertIdProperty, PROPERTY_INDEX_EAP_CA_CERT_ID },
- { shill::kEapCaCertPemProperty, PROPERTY_INDEX_EAP_CA_CERT_PEM },
- { flimflam::kEapCertIdProperty, PROPERTY_INDEX_EAP_CERT_ID },
- { flimflam::kEapClientCertNssProperty, PROPERTY_INDEX_EAP_CLIENT_CERT_NSS },
- { flimflam::kEapClientCertProperty, PROPERTY_INDEX_EAP_CLIENT_CERT },
- { flimflam::kEapIdentityProperty, PROPERTY_INDEX_EAP_IDENTITY },
- { flimflam::kEapKeyIdProperty, PROPERTY_INDEX_EAP_KEY_ID },
- { flimflam::kEapKeyMgmtProperty, PROPERTY_INDEX_EAP_KEY_MGMT },
- { flimflam::kEapMethodProperty, PROPERTY_INDEX_EAP_METHOD },
- { flimflam::kEapPasswordProperty, PROPERTY_INDEX_EAP_PASSWORD },
- { flimflam::kEapPhase2AuthProperty, PROPERTY_INDEX_EAP_PHASE_2_AUTH },
- { flimflam::kEapPinProperty, PROPERTY_INDEX_EAP_PIN },
- { flimflam::kEapPrivateKeyPasswordProperty,
- PROPERTY_INDEX_EAP_PRIVATE_KEY_PASSWORD },
- { flimflam::kEapPrivateKeyProperty, PROPERTY_INDEX_EAP_PRIVATE_KEY },
- { flimflam::kEapUseSystemCasProperty, PROPERTY_INDEX_EAP_USE_SYSTEM_CAS },
- { flimflam::kEnabledTechnologiesProperty,
- PROPERTY_INDEX_ENABLED_TECHNOLOGIES },
- { flimflam::kErrorProperty, PROPERTY_INDEX_ERROR },
- { flimflam::kEsnProperty, PROPERTY_INDEX_ESN },
- { flimflam::kFavoriteProperty, PROPERTY_INDEX_FAVORITE },
- { flimflam::kFirmwareRevisionProperty, PROPERTY_INDEX_FIRMWARE_REVISION },
- { flimflam::kFoundNetworksProperty, PROPERTY_INDEX_FOUND_NETWORKS },
- { flimflam::kGuidProperty, PROPERTY_INDEX_GUID },
- { flimflam::kHardwareRevisionProperty, PROPERTY_INDEX_HARDWARE_REVISION },
- { flimflam::kHomeProviderProperty, PROPERTY_INDEX_HOME_PROVIDER },
- { flimflam::kHostProperty, PROPERTY_INDEX_HOST },
- { flimflam::kIccidProperty, PROPERTY_INDEX_ICCID },
- { flimflam::kIdentityProperty, PROPERTY_INDEX_IDENTITY },
- { flimflam::kImeiProperty, PROPERTY_INDEX_IMEI },
- { flimflam::kImsiProperty, PROPERTY_INDEX_IMSI },
- { flimflam::kIsActiveProperty, PROPERTY_INDEX_IS_ACTIVE },
- { flimflam::kL2tpIpsecAuthenticationType,
- PROPERTY_INDEX_IPSEC_AUTHENTICATIONTYPE },
- { shill::kL2tpIpsecCaCertPemProperty,
- PROPERTY_INDEX_L2TPIPSEC_CA_CERT_PEM },
- { flimflam::kL2tpIpsecClientCertIdProperty,
- PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID },
- { flimflam::kL2tpIpsecClientCertSlotProp,
- PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_SLOT },
- { flimflam::kL2tpIpsecIkeVersion, PROPERTY_INDEX_IPSEC_IKEVERSION },
- { flimflam::kL2tpIpsecPinProperty, PROPERTY_INDEX_L2TPIPSEC_PIN },
- { flimflam::kL2tpIpsecPskProperty, PROPERTY_INDEX_L2TPIPSEC_PSK },
- { flimflam::kL2tpIpsecPskRequiredProperty,
- PROPERTY_INDEX_L2TPIPSEC_PSK_REQUIRED },
- { flimflam::kL2tpIpsecPasswordProperty, PROPERTY_INDEX_L2TPIPSEC_PASSWORD },
- { flimflam::kL2tpIpsecUserProperty, PROPERTY_INDEX_L2TPIPSEC_USER },
- { shill::kL2tpIpsecTunnelGroupProperty,
- PROPERTY_INDEX_L2TPIPSEC_GROUP_NAME },
- { flimflam::kManufacturerProperty, PROPERTY_INDEX_MANUFACTURER },
- { flimflam::kMdnProperty, PROPERTY_INDEX_MDN },
- { flimflam::kMeidProperty, PROPERTY_INDEX_MEID },
- { flimflam::kMinProperty, PROPERTY_INDEX_MIN },
- { flimflam::kModelIDProperty, PROPERTY_INDEX_MODEL_ID },
- { flimflam::kNameProperty, PROPERTY_INDEX_NAME },
- { flimflam::kNetworkTechnologyProperty, PROPERTY_INDEX_NETWORK_TECHNOLOGY },
- { flimflam::kNetworksProperty, PROPERTY_INDEX_NETWORKS },
- { flimflam::kOfflineModeProperty, PROPERTY_INDEX_OFFLINE_MODE },
- { flimflam::kOperatorCodeProperty, PROPERTY_INDEX_OPERATOR_CODE },
- { flimflam::kOperatorNameProperty, PROPERTY_INDEX_OPERATOR_NAME },
- { shill::kOutOfCreditsProperty, PROPERTY_INDEX_OUT_OF_CREDITS },
- { flimflam::kPRLVersionProperty, PROPERTY_INDEX_PRL_VERSION },
- { flimflam::kPassphraseProperty, PROPERTY_INDEX_PASSPHRASE },
- { flimflam::kPassphraseRequiredProperty, PROPERTY_INDEX_PASSPHRASE_REQUIRED },
- { flimflam::kPortalURLProperty, PROPERTY_INDEX_PORTAL_URL },
- { flimflam::kPoweredProperty, PROPERTY_INDEX_POWERED },
- { flimflam::kPriorityProperty, PROPERTY_INDEX_PRIORITY },
- { flimflam::kProfileProperty, PROPERTY_INDEX_PROFILE },
- { flimflam::kProfilesProperty, PROPERTY_INDEX_PROFILES },
- { flimflam::kProviderHostProperty, PROPERTY_INDEX_PROVIDER_HOST },
- { flimflam::kProviderProperty, PROPERTY_INDEX_PROVIDER },
- { shill::kProviderRequiresRoamingProperty,
- PROPERTY_INDEX_PROVIDER_REQUIRES_ROAMING },
- { flimflam::kProviderTypeProperty, PROPERTY_INDEX_PROVIDER_TYPE },
- { flimflam::kRoamingStateProperty, PROPERTY_INDEX_ROAMING_STATE },
- { flimflam::kSIMLockStatusProperty, PROPERTY_INDEX_SIM_LOCK },
- { shill::kSIMPresentProperty, PROPERTY_INDEX_SIM_PRESENT },
- { flimflam::kSSIDProperty, PROPERTY_INDEX_SSID },
- { flimflam::kSaveCredentialsProperty, PROPERTY_INDEX_SAVE_CREDENTIALS },
- { flimflam::kScanningProperty, PROPERTY_INDEX_SCANNING },
- { flimflam::kSecurityProperty, PROPERTY_INDEX_SECURITY },
- { flimflam::kSelectedNetworkProperty, PROPERTY_INDEX_SELECTED_NETWORK },
- { flimflam::kServiceWatchListProperty, PROPERTY_INDEX_SERVICE_WATCH_LIST },
- { flimflam::kServicesProperty, PROPERTY_INDEX_SERVICES },
- { flimflam::kServingOperatorProperty, PROPERTY_INDEX_SERVING_OPERATOR },
- { flimflam::kSignalStrengthProperty, PROPERTY_INDEX_SIGNAL_STRENGTH },
- { flimflam::kStateProperty, PROPERTY_INDEX_STATE },
- { flimflam::kSupportNetworkScanProperty,
- PROPERTY_INDEX_SUPPORT_NETWORK_SCAN },
- { shill::kSupportedCarriersProperty, PROPERTY_INDEX_SUPPORTED_CARRIERS},
- { flimflam::kTechnologyFamilyProperty, PROPERTY_INDEX_TECHNOLOGY_FAMILY },
- { flimflam::kTypeProperty, PROPERTY_INDEX_TYPE },
- { flimflam::kUIDataProperty, PROPERTY_INDEX_UI_DATA },
- { shill::kUninitializedTechnologiesProperty,
- PROPERTY_INDEX_UNINITIALIZED_TECHNOLOGIES },
- { flimflam::kUsageURLProperty, PROPERTY_INDEX_USAGE_URL },
- { flimflam::kOpenVPNClientCertIdProperty,
- PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID },
- { flimflam::kOpenVPNAuthProperty, PROPERTY_INDEX_OPEN_VPN_AUTH },
- { flimflam::kOpenVPNAuthRetryProperty, PROPERTY_INDEX_OPEN_VPN_AUTHRETRY },
- { flimflam::kOpenVPNAuthNoCacheProperty,
- PROPERTY_INDEX_OPEN_VPN_AUTHNOCACHE },
- { flimflam::kOpenVPNAuthUserPassProperty,
- PROPERTY_INDEX_OPEN_VPN_AUTHUSERPASS },
- { shill::kOpenVPNCaCertPemProperty, PROPERTY_INDEX_OPEN_VPN_CA_CERT_PEM },
- { flimflam::kOpenVPNClientCertSlotProperty,
- PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_SLOT },
- { flimflam::kOpenVPNCipherProperty, PROPERTY_INDEX_OPEN_VPN_CIPHER },
- { flimflam::kOpenVPNCompLZOProperty, PROPERTY_INDEX_OPEN_VPN_COMPLZO },
- { flimflam::kOpenVPNCompNoAdaptProperty,
- PROPERTY_INDEX_OPEN_VPN_COMPNOADAPT },
- { flimflam::kOpenVPNKeyDirectionProperty,
- PROPERTY_INDEX_OPEN_VPN_KEYDIRECTION },
- { flimflam::kOpenVPNMgmtEnableProperty,
- PROPERTY_INDEX_OPEN_VPN_MGMT_ENABLE },
- { flimflam::kOpenVPNNsCertTypeProperty, PROPERTY_INDEX_OPEN_VPN_NSCERTTYPE },
- { flimflam::kOpenVPNOTPProperty, PROPERTY_INDEX_OPEN_VPN_OTP },
- { flimflam::kOpenVPNPasswordProperty, PROPERTY_INDEX_OPEN_VPN_PASSWORD },
- { flimflam::kOpenVPNPinProperty, PROPERTY_INDEX_OPEN_VPN_PIN },
- { flimflam::kOpenVPNPortProperty, PROPERTY_INDEX_OPEN_VPN_PORT },
- { flimflam::kOpenVPNProtoProperty, PROPERTY_INDEX_OPEN_VPN_PROTO },
- { flimflam::kOpenVPNProviderProperty,
- PROPERTY_INDEX_OPEN_VPN_PKCS11_PROVIDER },
- { flimflam::kOpenVPNPushPeerInfoProperty,
- PROPERTY_INDEX_OPEN_VPN_PUSHPEERINFO },
- { flimflam::kOpenVPNRemoteCertEKUProperty,
- PROPERTY_INDEX_OPEN_VPN_REMOTECERTEKU },
- { flimflam::kOpenVPNRemoteCertKUProperty,
- PROPERTY_INDEX_OPEN_VPN_REMOTECERTKU },
- { flimflam::kOpenVPNRemoteCertTLSProperty,
- PROPERTY_INDEX_OPEN_VPN_REMOTECERTTLS },
- { flimflam::kOpenVPNRenegSecProperty, PROPERTY_INDEX_OPEN_VPN_RENEGSEC },
- { flimflam::kOpenVPNServerPollTimeoutProperty,
- PROPERTY_INDEX_OPEN_VPN_SERVERPOLLTIMEOUT },
- { flimflam::kOpenVPNShaperProperty, PROPERTY_INDEX_OPEN_VPN_SHAPER },
- { flimflam::kOpenVPNStaticChallengeProperty,
- PROPERTY_INDEX_OPEN_VPN_STATICCHALLENGE },
- { flimflam::kOpenVPNTLSAuthContentsProperty,
- PROPERTY_INDEX_OPEN_VPN_TLSAUTHCONTENTS },
- { flimflam::kOpenVPNTLSRemoteProperty, PROPERTY_INDEX_OPEN_VPN_TLSREMOTE },
- { flimflam::kOpenVPNUserProperty, PROPERTY_INDEX_OPEN_VPN_USER },
- { flimflam::kPaymentPortalProperty, PROPERTY_INDEX_OLP },
- { flimflam::kPaymentURLProperty, PROPERTY_INDEX_OLP_URL },
- { flimflam::kVPNDomainProperty, PROPERTY_INDEX_VPN_DOMAIN },
- { flimflam::kWifiAuthMode, PROPERTY_INDEX_WIFI_AUTH_MODE },
- { flimflam::kWifiBSsid, PROPERTY_INDEX_WIFI_BSSID },
- { flimflam::kWifiFrequency, PROPERTY_INDEX_WIFI_FREQUENCY },
- { flimflam::kWifiHexSsid, PROPERTY_INDEX_WIFI_HEX_SSID },
- { flimflam::kWifiHiddenSsid, PROPERTY_INDEX_WIFI_HIDDEN_SSID },
- { flimflam::kWifiPhyMode, PROPERTY_INDEX_WIFI_PHY_MODE },
-};
-
-EnumMapper<ConnectionType>::Pair network_type_table[] = {
- { flimflam::kTypeEthernet, TYPE_ETHERNET },
- { flimflam::kTypeWifi, TYPE_WIFI },
- { flimflam::kTypeWimax, TYPE_WIMAX },
- { flimflam::kTypeBluetooth, TYPE_BLUETOOTH },
- { flimflam::kTypeCellular, TYPE_CELLULAR },
- { flimflam::kTypeVPN, TYPE_VPN },
-};
-
-EnumMapper<ConnectionSecurity>::Pair network_security_table[] = {
- { flimflam::kSecurityNone, SECURITY_NONE },
- { flimflam::kSecurityWep, SECURITY_WEP },
- { flimflam::kSecurityWpa, SECURITY_WPA },
- { flimflam::kSecurityRsn, SECURITY_RSN },
- { flimflam::kSecurityPsk, SECURITY_PSK },
- { flimflam::kSecurity8021x, SECURITY_8021X },
-};
-
-EnumMapper<EAPMethod>::Pair network_eap_method_table[] = {
- { flimflam::kEapMethodPEAP, EAP_METHOD_PEAP },
- { flimflam::kEapMethodTLS, EAP_METHOD_TLS },
- { flimflam::kEapMethodTTLS, EAP_METHOD_TTLS },
- { flimflam::kEapMethodLEAP, EAP_METHOD_LEAP },
-};
-
-EnumMapper<EAPPhase2Auth>::Pair network_eap_auth_table[] = {
- { flimflam::kEapPhase2AuthPEAPMD5, EAP_PHASE_2_AUTH_MD5 },
- { flimflam::kEapPhase2AuthPEAPMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
- { flimflam::kEapPhase2AuthTTLSMD5, EAP_PHASE_2_AUTH_MD5 },
- { flimflam::kEapPhase2AuthTTLSMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
- { flimflam::kEapPhase2AuthTTLSMSCHAP, EAP_PHASE_2_AUTH_MSCHAP },
- { flimflam::kEapPhase2AuthTTLSPAP, EAP_PHASE_2_AUTH_PAP },
- { flimflam::kEapPhase2AuthTTLSCHAP, EAP_PHASE_2_AUTH_CHAP },
-};
-
-EnumMapper<ProviderType>::Pair provider_type_table[] = {
- { flimflam::kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK },
- { flimflam::kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN },
-};
-
-// Serve the singleton mapper instance.
-const EnumMapper<PropertyIndex>* get_native_mapper() {
- CR_DEFINE_STATIC_LOCAL(EnumMapper<PropertyIndex>, mapper,
- (property_index_table,
- arraysize(property_index_table),
- PROPERTY_INDEX_UNKNOWN));
- return &mapper;
-}
-
-} // namespace
-
-// -------------------- NativeNetworkDeviceParser --------------------
-
-NativeNetworkDeviceParser::NativeNetworkDeviceParser()
- : NetworkDeviceParser(get_native_mapper()) {
-}
-
-NativeNetworkDeviceParser::~NativeNetworkDeviceParser() {
-}
-
-NetworkDevice* NativeNetworkDeviceParser::CreateNewNetworkDevice(
- const std::string& device_path) {
- NetworkDevice* device =
- NetworkDeviceParser::CreateNewNetworkDevice(device_path);
- device->SetNetworkDeviceParser(new NativeNetworkDeviceParser());
- return device;
-}
-
-bool NativeNetworkDeviceParser::ParseValue(
- PropertyIndex index, const base::Value& value, NetworkDevice* device) {
- switch (index) {
- case PROPERTY_INDEX_TYPE: {
- std::string type_string;
- if (value.GetAsString(&type_string)) {
- device->set_type(ParseType(type_string));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_NAME: {
- std::string name;
- if (!value.GetAsString(&name))
- return false;
- device->set_name(name);
- return true;
- }
- case PROPERTY_INDEX_GUID: {
- std::string unique_id;
- if (!value.GetAsString(&unique_id))
- return false;
- device->set_unique_id(unique_id);
- return true;
- }
- case PROPERTY_INDEX_CARRIER: {
- std::string carrier;
- if (!value.GetAsString(&carrier))
- return false;
- device->set_carrier(carrier);
- return true;
- }
- case PROPERTY_INDEX_SCANNING: {
- bool scanning;
- if (!value.GetAsBoolean(&scanning))
- return false;
- device->set_scanning(scanning);
- return true;
- }
- case PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING: {
- bool data_roaming_allowed;
- if (!value.GetAsBoolean(&data_roaming_allowed))
- return false;
- device->set_data_roaming_allowed(data_roaming_allowed);
- return true;
- }
- case PROPERTY_INDEX_CELLULAR_APN_LIST:
- if (value.IsType(base::Value::TYPE_LIST)) {
- CellularApnList provider_apn_list;
- if (!ParseApnList(static_cast<const ListValue&>(value),
- &provider_apn_list))
- return false;
- device->set_provider_apn_list(provider_apn_list);
- return true;
- }
- break;
- case PROPERTY_INDEX_NETWORKS:
- if (value.IsType(base::Value::TYPE_LIST)) {
- // Ignored.
- return true;
- }
- break;
- case PROPERTY_INDEX_FOUND_NETWORKS:
- if (value.IsType(base::Value::TYPE_LIST)) {
- CellularNetworkList found_cellular_networks;
- if (!ParseFoundNetworksFromList(
- static_cast<const ListValue&>(value),
- &found_cellular_networks))
- return false;
- device->set_found_cellular_networks(found_cellular_networks);
- return true;
- }
- break;
- case PROPERTY_INDEX_HOME_PROVIDER: {
- if (value.IsType(base::Value::TYPE_DICTIONARY)) {
- const DictionaryValue& dict =
- static_cast<const DictionaryValue&>(value);
- std::string home_provider_code;
- std::string home_provider_country;
- std::string home_provider_name;
- dict.GetStringWithoutPathExpansion(flimflam::kOperatorCodeKey,
- &home_provider_code);
- dict.GetStringWithoutPathExpansion(flimflam::kOperatorCountryKey,
- &home_provider_country);
- dict.GetStringWithoutPathExpansion(flimflam::kOperatorNameKey,
- &home_provider_name);
- device->set_home_provider_code(home_provider_code);
- device->set_home_provider_country(home_provider_country);
- device->set_home_provider_name(home_provider_name);
- if (!device->home_provider_name().empty() &&
- !device->home_provider_country().empty()) {
- device->set_home_provider_id(base::StringPrintf(
- kCarrierIdFormat,
- device->home_provider_name().c_str(),
- device->home_provider_country().c_str()));
- } else {
- device->set_home_provider_id(home_provider_code);
- LOG(WARNING) << "Carrier ID not defined, using code instead: "
- << device->home_provider_id();
- }
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_PROVIDER_REQUIRES_ROAMING: {
- bool provider_requires_roaming;
- if (!value.GetAsBoolean(&provider_requires_roaming))
- return false;
- device->set_provider_requires_roaming(provider_requires_roaming);
- return true;
- }
- case PROPERTY_INDEX_MEID:
- case PROPERTY_INDEX_ICCID:
- case PROPERTY_INDEX_IMEI:
- case PROPERTY_INDEX_IMSI:
- case PROPERTY_INDEX_ESN:
- case PROPERTY_INDEX_MDN:
- case PROPERTY_INDEX_MIN:
- case PROPERTY_INDEX_MODEL_ID:
- case PROPERTY_INDEX_MANUFACTURER:
- case PROPERTY_INDEX_FIRMWARE_REVISION:
- case PROPERTY_INDEX_HARDWARE_REVISION:
- case PROPERTY_INDEX_SELECTED_NETWORK: {
- std::string item;
- if (!value.GetAsString(&item))
- return false;
- switch (index) {
- case PROPERTY_INDEX_MEID:
- device->set_meid(item);
- break;
- case PROPERTY_INDEX_ICCID:
- device->set_iccid(item);
- break;
- case PROPERTY_INDEX_IMEI:
- device->set_imei(item);
- break;
- case PROPERTY_INDEX_IMSI:
- device->set_imsi(item);
- break;
- case PROPERTY_INDEX_ESN:
- device->set_esn(item);
- break;
- case PROPERTY_INDEX_MDN:
- device->set_mdn(item);
- break;
- case PROPERTY_INDEX_MIN:
- device->set_min(item);
- break;
- case PROPERTY_INDEX_MODEL_ID:
- device->set_model_id(item);
- break;
- case PROPERTY_INDEX_MANUFACTURER:
- device->set_manufacturer(item);
- break;
- case PROPERTY_INDEX_FIRMWARE_REVISION:
- device->set_firmware_revision(item);
- break;
- case PROPERTY_INDEX_HARDWARE_REVISION:
- device->set_hardware_revision(item);
- break;
- case PROPERTY_INDEX_SELECTED_NETWORK:
- device->set_selected_cellular_network(item);
- break;
- default:
- break;
- }
- return true;
- }
- case PROPERTY_INDEX_SIM_LOCK:
- if (value.IsType(base::Value::TYPE_DICTIONARY)) {
- SimLockState sim_lock_state;
- int sim_retries_left;
- bool sim_lock_enabled;
- if (!ParseSimLockStateFromDictionary(
- static_cast<const DictionaryValue&>(value),
- &sim_lock_state,
- &sim_retries_left,
- &sim_lock_enabled))
- return false;
- device->set_sim_lock_state(sim_lock_state);
- device->set_sim_retries_left(sim_retries_left);
- if (sim_lock_enabled)
- device->set_sim_pin_required(SIM_PIN_REQUIRED);
- else
- device->set_sim_pin_required(SIM_PIN_NOT_REQUIRED);
- return true;
- }
- break;
- case PROPERTY_INDEX_SIM_PRESENT: {
- bool sim_present;
- if (!value.GetAsBoolean(&sim_present))
- return false;
- device->set_sim_present(sim_present);
- return true;
- }
- case PROPERTY_INDEX_POWERED: {
- bool powered;
- if (!value.GetAsBoolean(&powered))
- return false;
- device->set_powered(powered);
- return true;
- }
- case PROPERTY_INDEX_PRL_VERSION: {
- int prl_version;
- if (!value.GetAsInteger(&prl_version))
- return false;
- device->set_prl_version(prl_version);
- return true;
- }
- case PROPERTY_INDEX_SUPPORT_NETWORK_SCAN: {
- bool support_network_scan;
- if (!value.GetAsBoolean(&support_network_scan))
- return false;
- device->set_support_network_scan(support_network_scan);
- return true;
- }
- case PROPERTY_INDEX_SUPPORTED_CARRIERS: {
- if (value.IsType(base::Value::TYPE_LIST)) {
- device->set_supported_carriers(static_cast<const ListValue&>(value));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_TECHNOLOGY_FAMILY: {
- std::string technology_family_string;
- if (value.GetAsString(&technology_family_string)) {
- device->set_technology_family(
- ParseTechnologyFamily(technology_family_string));
- return true;
- }
- break;
- }
- default:
- break;
- }
- return false;
-}
-
-ConnectionType NativeNetworkDeviceParser::ParseType(const std::string& type) {
- return NativeNetworkParser::network_type_mapper()->Get(type);
-}
-
-bool NativeNetworkDeviceParser::ParseApnList(const ListValue& list,
- CellularApnList* apn_list) {
- apn_list->clear();
- apn_list->reserve(list.GetSize());
- for (ListValue::const_iterator it = list.begin(); it != list.end(); ++it) {
- if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) {
- apn_list->resize(apn_list->size() + 1);
- const DictionaryValue* dict = static_cast<const DictionaryValue*>(*it);
- dict->GetStringWithoutPathExpansion(
- flimflam::kApnProperty, &apn_list->back().apn);
- dict->GetStringWithoutPathExpansion(
- flimflam::kApnNetworkIdProperty, &apn_list->back().network_id);
- dict->GetStringWithoutPathExpansion(
- flimflam::kApnUsernameProperty, &apn_list->back().username);
- dict->GetStringWithoutPathExpansion(
- flimflam::kApnPasswordProperty, &apn_list->back().password);
- dict->GetStringWithoutPathExpansion(
- flimflam::kApnNameProperty, &apn_list->back().name);
- dict->GetStringWithoutPathExpansion(
- flimflam::kApnLocalizedNameProperty,
- &apn_list->back().localized_name);
- dict->GetStringWithoutPathExpansion(
- flimflam::kApnLanguageProperty, &apn_list->back().language);
- } else {
- return false;
- }
- }
- return true;
-}
-
-bool NativeNetworkDeviceParser::ParseFoundNetworksFromList(
- const ListValue& list,
- CellularNetworkList* found_networks) {
- found_networks->clear();
- found_networks->reserve(list.GetSize());
- for (ListValue::const_iterator it = list.begin(); it != list.end(); ++it) {
- if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) {
- found_networks->resize(found_networks->size() + 1);
- const DictionaryValue* dict = static_cast<const DictionaryValue*>(*it);
- dict->GetStringWithoutPathExpansion(
- flimflam::kStatusProperty, &found_networks->back().status);
- dict->GetStringWithoutPathExpansion(
- flimflam::kNetworkIdProperty, &found_networks->back().network_id);
- dict->GetStringWithoutPathExpansion(
- flimflam::kShortNameProperty, &found_networks->back().short_name);
- dict->GetStringWithoutPathExpansion(
- flimflam::kLongNameProperty, &found_networks->back().long_name);
- dict->GetStringWithoutPathExpansion(
- flimflam::kTechnologyProperty, &found_networks->back().technology);
- } else {
- return false;
- }
- }
- return true;
-}
-
-SimLockState NativeNetworkDeviceParser::ParseSimLockState(
- const std::string& state) {
- static EnumMapper<SimLockState>::Pair table[] = {
- { "", SIM_UNLOCKED },
- { flimflam::kSIMLockPin, SIM_LOCKED_PIN },
- { flimflam::kSIMLockPuk, SIM_LOCKED_PUK },
- };
- CR_DEFINE_STATIC_LOCAL(EnumMapper<SimLockState>, parser,
- (table, arraysize(table), SIM_UNKNOWN));
- SimLockState parsed_state = parser.Get(state);
- DCHECK(parsed_state != SIM_UNKNOWN) << "Unknown SIMLock state encountered";
- return parsed_state;
-}
-
-bool NativeNetworkDeviceParser::ParseSimLockStateFromDictionary(
- const DictionaryValue& info,
- SimLockState* out_state,
- int* out_retries,
- bool* out_enabled) {
- std::string state_string;
- // Since RetriesLeft is sent as a uint32, which may overflow int32 range, from
- // Shill, it may be stored as an integer or a double in DictionaryValue.
- const base::Value* retries_value = NULL;
- if (!info.GetString(flimflam::kSIMLockTypeProperty, &state_string) ||
- !info.GetBoolean(flimflam::kSIMLockEnabledProperty, out_enabled) ||
- !info.Get(flimflam::kSIMLockRetriesLeftProperty, &retries_value) ||
- (retries_value->GetType() != base::Value::TYPE_INTEGER &&
- retries_value->GetType() != base::Value::TYPE_DOUBLE)) {
- LOG(ERROR) << "Error parsing SIMLock state";
- return false;
- }
- *out_state = ParseSimLockState(state_string);
- if (retries_value->GetType() == base::Value::TYPE_INTEGER) {
- retries_value->GetAsInteger(out_retries);
- } else if (retries_value->GetType() == base::Value::TYPE_DOUBLE) {
- double retries_double = 0;
- retries_value->GetAsDouble(&retries_double);
- *out_retries = retries_double;
- }
- return true;
-}
-
-TechnologyFamily NativeNetworkDeviceParser::ParseTechnologyFamily(
- const std::string& technology_family) {
- static EnumMapper<TechnologyFamily>::Pair table[] = {
- { flimflam::kTechnologyFamilyCdma, TECHNOLOGY_FAMILY_CDMA },
- { flimflam::kTechnologyFamilyGsm, TECHNOLOGY_FAMILY_GSM },
- };
- CR_DEFINE_STATIC_LOCAL(EnumMapper<TechnologyFamily>, parser,
- (table, arraysize(table), TECHNOLOGY_FAMILY_UNKNOWN));
- return parser.Get(technology_family);
-}
-
-// -------------------- NativeNetworkParser --------------------
-
-NativeNetworkParser::NativeNetworkParser()
- : NetworkParser(get_native_mapper()) {
-}
-
-NativeNetworkParser::~NativeNetworkParser() {
-}
-
-// static
-const EnumMapper<PropertyIndex>* NativeNetworkParser::property_mapper() {
- return get_native_mapper();
-}
-
-// static
-const EnumMapper<ConnectionType>* NativeNetworkParser::network_type_mapper() {
- CR_DEFINE_STATIC_LOCAL(
- EnumMapper<ConnectionType>,
- network_type_mapper,
- (network_type_table, arraysize(network_type_table), TYPE_UNKNOWN));
- return &network_type_mapper;
-}
-
-// static
-const EnumMapper<ConnectionSecurity>*
- NativeNetworkParser::network_security_mapper() {
- CR_DEFINE_STATIC_LOCAL(
- EnumMapper<ConnectionSecurity>,
- network_security_mapper,
- (network_security_table, arraysize(network_security_table),
- SECURITY_UNKNOWN));
- return &network_security_mapper;
-}
-
-// static
-const EnumMapper<EAPMethod>* NativeNetworkParser::network_eap_method_mapper() {
- CR_DEFINE_STATIC_LOCAL(
- EnumMapper<EAPMethod>,
- network_eap_method_mapper,
- (network_eap_method_table, arraysize(network_eap_method_table),
- EAP_METHOD_UNKNOWN));
- return &network_eap_method_mapper;
-}
-
-// static
-const EnumMapper<EAPPhase2Auth>*
- NativeNetworkParser::network_eap_auth_mapper() {
- CR_DEFINE_STATIC_LOCAL(
- EnumMapper<EAPPhase2Auth>,
- network_eap_auth_mapper,
- (network_eap_auth_table, arraysize(network_eap_auth_table),
- EAP_PHASE_2_AUTH_AUTO));
- return &network_eap_auth_mapper;
-}
-
-const ConnectionType NativeNetworkParser::ParseConnectionType(
- const std::string& connection_type) {
- return network_type_mapper()->Get(connection_type);
-}
-
-Network* NativeNetworkParser::CreateNewNetwork(
- ConnectionType type, const std::string& service_path) {
- Network* network = NetworkParser::CreateNewNetwork(type, service_path);
- if (network) {
- if (type == TYPE_ETHERNET)
- network->SetNetworkParser(new NativeEthernetNetworkParser());
- else if (type == TYPE_WIFI)
- network->SetNetworkParser(new NativeWifiNetworkParser());
- else if (type == TYPE_WIMAX)
- network->SetNetworkParser(new NativeWimaxNetworkParser());
- else if (type == TYPE_CELLULAR)
- network->SetNetworkParser(new NativeCellularNetworkParser());
- else if (type == TYPE_VPN)
- network->SetNetworkParser(new NativeVirtualNetworkParser());
- }
- return network;
-}
-
-bool NativeNetworkParser::ParseValue(PropertyIndex index,
- const base::Value& value,
- Network* network) {
- switch (index) {
- case PROPERTY_INDEX_TYPE: {
- std::string type_string;
- if (value.GetAsString(&type_string)) {
- ConnectionType type = ParseType(type_string);
- LOG_IF(ERROR, type != network->type())
- << "Network with mismatched type: " << network->service_path()
- << " " << type << " != " << network->type();
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_DEVICE: {
- std::string device_path;
- if (!value.GetAsString(&device_path))
- return false;
- network->set_device_path(device_path);
- return true;
- }
- case PROPERTY_INDEX_PROFILE: {
- // Note: currently this is only provided for non remembered networks.
- std::string profile_path;
- if (!value.GetAsString(&profile_path))
- return false;
- network->set_profile_path(profile_path);
- return true;
- }
- case PROPERTY_INDEX_STATE: {
- std::string state_string;
- if (value.GetAsString(&state_string)) {
- network->SetState(ParseState(state_string));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_ERROR: {
- std::string error_string;
- if (value.GetAsString(&error_string)) {
- network->SetError(ParseError(error_string));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_CONNECTABLE: {
- bool connectable;
- if (!value.GetAsBoolean(&connectable))
- return false;
- network->set_connectable(connectable);
- return true;
- }
- case PROPERTY_INDEX_IS_ACTIVE: {
- bool is_active;
- if (!value.GetAsBoolean(&is_active))
- return false;
- network->set_is_active(is_active);
- return true;
- }
- case PROPERTY_INDEX_FAVORITE:
- // This property is ignored.
- return true;
- case PROPERTY_INDEX_SAVE_CREDENTIALS: {
- bool save_credentials;
- if (!value.GetAsBoolean(&save_credentials))
- return false;
- network->set_save_credentials(save_credentials);
- return true;
- }
- case PROPERTY_INDEX_CHECK_PORTAL:
- // This property is ignored.
- return true;
- default:
- return NetworkParser::ParseValue(index, value, network);
- break;
- }
- return false;
-}
-
-ConnectionType NativeNetworkParser::ParseType(const std::string& type) {
- return network_type_mapper()->Get(type);
-}
-
-ConnectionType NativeNetworkParser::ParseTypeFromDictionary(
- const DictionaryValue& info) {
- std::string type_string;
- info.GetString(flimflam::kTypeProperty, &type_string);
- return ParseType(type_string);
-}
-
-ConnectionState NativeNetworkParser::ParseState(const std::string& state) {
- static EnumMapper<ConnectionState>::Pair table[] = {
- { flimflam::kStateIdle, STATE_IDLE },
- { flimflam::kStateCarrier, STATE_CARRIER },
- { flimflam::kStateAssociation, STATE_ASSOCIATION },
- { flimflam::kStateConfiguration, STATE_CONFIGURATION },
- { flimflam::kStateReady, STATE_READY },
- { flimflam::kStateDisconnect, STATE_DISCONNECT },
- { flimflam::kStateFailure, STATE_FAILURE },
- { flimflam::kStateActivationFailure, STATE_ACTIVATION_FAILURE },
- { flimflam::kStatePortal, STATE_PORTAL },
- { flimflam::kStateOnline, STATE_ONLINE },
- };
- CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionState>, parser,
- (table, arraysize(table), STATE_UNKNOWN));
- return parser.Get(state);
-}
-
-ConnectionError NativeNetworkParser::ParseError(const std::string& error) {
- static EnumMapper<ConnectionError>::Pair table[] = {
- { flimflam::kErrorOutOfRange, ERROR_OUT_OF_RANGE },
- { flimflam::kErrorPinMissing, ERROR_PIN_MISSING },
- { flimflam::kErrorDhcpFailed, ERROR_DHCP_FAILED },
- { flimflam::kErrorConnectFailed, ERROR_CONNECT_FAILED },
- { flimflam::kErrorBadPassphrase, ERROR_BAD_PASSPHRASE },
- { flimflam::kErrorBadWEPKey, ERROR_BAD_WEPKEY },
- { flimflam::kErrorActivationFailed, ERROR_ACTIVATION_FAILED },
- { flimflam::kErrorNeedEvdo, ERROR_NEED_EVDO },
- { flimflam::kErrorNeedHomeNetwork, ERROR_NEED_HOME_NETWORK },
- { flimflam::kErrorOtaspFailed, ERROR_OTASP_FAILED },
- { flimflam::kErrorAaaFailed, ERROR_AAA_FAILED },
- { flimflam::kErrorInternal, ERROR_INTERNAL },
- { flimflam::kErrorDNSLookupFailed, ERROR_DNS_LOOKUP_FAILED },
- { flimflam::kErrorHTTPGetFailed, ERROR_HTTP_GET_FAILED },
- { flimflam::kErrorIpsecPskAuthFailed, ERROR_IPSEC_PSK_AUTH_FAILED },
- { flimflam::kErrorIpsecCertAuthFailed, ERROR_IPSEC_CERT_AUTH_FAILED },
- { flimflam::kErrorPppAuthFailed, ERROR_PPP_AUTH_FAILED },
- { shill::kErrorEapAuthenticationFailed, ERROR_EAP_AUTHENTICATION_FAILED },
- { shill::kErrorEapLocalTlsFailed, ERROR_EAP_LOCAL_TLS_FAILED },
- { shill::kErrorEapRemoteTlsFailed, ERROR_EAP_REMOTE_TLS_FAILED },
- };
- CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionError>, parser,
- (table, arraysize(table), ERROR_NO_ERROR));
- return parser.Get(error);
-}
-
-// -------------------- NativeEthernetNetworkParser --------------------
-
-NativeEthernetNetworkParser::NativeEthernetNetworkParser() {}
-NativeEthernetNetworkParser::~NativeEthernetNetworkParser() {}
-
-// -------------------- NativeWirelessNetworkParser --------------------
-
-NativeWirelessNetworkParser::NativeWirelessNetworkParser() {}
-NativeWirelessNetworkParser::~NativeWirelessNetworkParser() {}
-
-bool NativeWirelessNetworkParser::ParseValue(PropertyIndex index,
- const base::Value& value,
- Network* network) {
- CHECK(network->type() == TYPE_WIFI ||
- network->type() == TYPE_WIMAX ||
- network->type() == TYPE_BLUETOOTH ||
- network->type() == TYPE_CELLULAR);
- WirelessNetwork* wireless_network = static_cast<WirelessNetwork*>(network);
- switch (index) {
- case PROPERTY_INDEX_SIGNAL_STRENGTH: {
- int strength;
- if (!value.GetAsInteger(&strength))
- return false;
- wireless_network->set_strength(strength);
- return true;
- }
- default:
- return NativeNetworkParser::ParseValue(index, value, network);
- break;
- }
- return false;
-}
-
-// -------------------- NativeCellularNetworkParser --------------------
-
-NativeCellularNetworkParser::NativeCellularNetworkParser() {}
-NativeCellularNetworkParser::~NativeCellularNetworkParser() {}
-
-bool NativeCellularNetworkParser::ParseValue(PropertyIndex index,
- const base::Value& value,
- Network* network) {
- CHECK_EQ(TYPE_CELLULAR, network->type());
- CellularNetwork* cellular_network = static_cast<CellularNetwork*>(network);
- switch (index) {
- case PROPERTY_INDEX_ACTIVATE_OVER_NON_CELLULAR_NETWORK: {
- bool activate_over_non_cellular_network;
- if (value.GetAsBoolean(&activate_over_non_cellular_network)) {
- cellular_network->set_activate_over_non_cellular_network(
- activate_over_non_cellular_network);
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_ACTIVATION_STATE: {
- std::string activation_state_string;
- if (value.GetAsString(&activation_state_string)) {
- cellular_network->set_activation_state(
- ParseActivationState(activation_state_string));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_CELLULAR_APN: {
- if (value.IsType(base::Value::TYPE_DICTIONARY)) {
- cellular_network->set_apn(static_cast<const DictionaryValue&>(value));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_CELLULAR_LAST_GOOD_APN: {
- if (value.IsType(base::Value::TYPE_DICTIONARY)) {
- cellular_network->set_last_good_apn(
- static_cast<const DictionaryValue&>(value));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_NETWORK_TECHNOLOGY: {
- std::string network_technology_string;
- if (value.GetAsString(&network_technology_string)) {
- cellular_network->set_network_technology(
- ParseNetworkTechnology(network_technology_string));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_ROAMING_STATE: {
- std::string roaming_state_string;
- if (value.GetAsString(&roaming_state_string)) {
- cellular_network->set_roaming_state(
- ParseRoamingState(roaming_state_string));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_OPERATOR_NAME: {
- std::string value_str;
- if (!value.GetAsString(&value_str))
- break;
- cellular_network->set_operator_name(value_str);
- return true;
- }
- case PROPERTY_INDEX_OPERATOR_CODE: {
- std::string value_str;
- if (!value.GetAsString(&value_str))
- break;
- cellular_network->set_operator_code(value_str);
- return true;
- }
- case PROPERTY_INDEX_OUT_OF_CREDITS: {
- bool out_of_credits;
- if (value.GetAsBoolean(&out_of_credits)) {
- cellular_network->set_out_of_credits(out_of_credits);
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_SERVING_OPERATOR: {
- if (value.IsType(base::Value::TYPE_DICTIONARY)) {
- const DictionaryValue& dict =
- static_cast<const DictionaryValue&>(value);
- std::string value_str;
- dict.GetStringWithoutPathExpansion(
- flimflam::kOperatorNameKey, &value_str);
- cellular_network->set_operator_name(value_str);
- value_str.clear();
- dict.GetStringWithoutPathExpansion(
- flimflam::kOperatorCodeKey, &value_str);
- cellular_network->set_operator_code(value_str);
- value_str.clear();
- dict.GetStringWithoutPathExpansion(
- flimflam::kOperatorCountryKey, &value_str);
- cellular_network->set_operator_country(value_str);
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_USAGE_URL: {
- std::string value_str;
- if (!value.GetAsString(&value_str))
- break;
- cellular_network->set_usage_url(value_str);
- return true;
- }
- case PROPERTY_INDEX_OLP: {
- if (value.IsType(base::Value::TYPE_DICTIONARY)) {
- const DictionaryValue& dict =
- static_cast<const DictionaryValue&>(value);
- std::string portal_url;
- std::string method;
- std::string postdata;
- dict.GetStringWithoutPathExpansion(flimflam::kPaymentPortalURL,
- &portal_url);
- dict.GetStringWithoutPathExpansion(flimflam::kPaymentPortalMethod,
- &method);
- dict.GetStringWithoutPathExpansion(flimflam::kPaymentPortalPostData,
- &postdata);
- cellular_network->set_payment_url(portal_url);
- cellular_network->set_post_data(postdata);
- cellular_network->set_using_post(
- LowerCaseEqualsASCII(method, kPostMethod));
- return true;
- }
- break;
- }
- case PROPERTY_INDEX_OLP_URL:
- // This property is ignored.
- return true;
- case PROPERTY_INDEX_STATE: {
- if (NativeWirelessNetworkParser::ParseValue(index, value, network))
- return true;
- break;
- }
- default:
- return NativeWirelessNetworkParser::ParseValue(index, value, network);
- }
- return false;
-}
-
-ActivationState NativeCellularNetworkParser::ParseActivationState(
- const std::string& state) {
- static EnumMapper<ActivationState>::Pair table[] = {
- { flimflam::kActivationStateActivated, ACTIVATION_STATE_ACTIVATED },
- { flimflam::kActivationStateActivating, ACTIVATION_STATE_ACTIVATING },
- { flimflam::kActivationStateNotActivated, ACTIVATION_STATE_NOT_ACTIVATED },
- { flimflam::kActivationStatePartiallyActivated,
- ACTIVATION_STATE_PARTIALLY_ACTIVATED},
- { flimflam::kActivationStateUnknown, ACTIVATION_STATE_UNKNOWN},
- };
- CR_DEFINE_STATIC_LOCAL(EnumMapper<ActivationState>, parser,
- (table, arraysize(table), ACTIVATION_STATE_UNKNOWN));
- return parser.Get(state);
-}
-
-NetworkTechnology NativeCellularNetworkParser::ParseNetworkTechnology(
- const std::string& technology) {
- static EnumMapper<NetworkTechnology>::Pair table[] = {
- { flimflam::kNetworkTechnology1Xrtt, NETWORK_TECHNOLOGY_1XRTT },
- { flimflam::kNetworkTechnologyEvdo, NETWORK_TECHNOLOGY_EVDO },
- { flimflam::kNetworkTechnologyGprs, NETWORK_TECHNOLOGY_GPRS },
- { flimflam::kNetworkTechnologyEdge, NETWORK_TECHNOLOGY_EDGE },
- { flimflam::kNetworkTechnologyUmts, NETWORK_TECHNOLOGY_UMTS },
- { flimflam::kNetworkTechnologyHspa, NETWORK_TECHNOLOGY_HSPA },
- { flimflam::kNetworkTechnologyHspaPlus, NETWORK_TECHNOLOGY_HSPA_PLUS },
- { flimflam::kNetworkTechnologyLte, NETWORK_TECHNOLOGY_LTE },
- { flimflam::kNetworkTechnologyLteAdvanced,
- NETWORK_TECHNOLOGY_LTE_ADVANCED },
- { flimflam::kNetworkTechnologyGsm, NETWORK_TECHNOLOGY_GSM },
- };
- CR_DEFINE_STATIC_LOCAL(EnumMapper<NetworkTechnology>, parser,
- (table, arraysize(table), NETWORK_TECHNOLOGY_UNKNOWN));
- return parser.Get(technology);
-}
-
-NetworkRoamingState NativeCellularNetworkParser::ParseRoamingState(
- const std::string& roaming_state) {
- static EnumMapper<NetworkRoamingState>::Pair table[] = {
- { flimflam::kRoamingStateHome, ROAMING_STATE_HOME },
- { flimflam::kRoamingStateRoaming, ROAMING_STATE_ROAMING },
- { flimflam::kRoamingStateUnknown, ROAMING_STATE_UNKNOWN },
- };
- CR_DEFINE_STATIC_LOCAL(EnumMapper<NetworkRoamingState>, parser,
- (table, arraysize(table), ROAMING_STATE_UNKNOWN));
- return parser.Get(roaming_state);
-}
-
-// -------------------- NativeWimaxNetworkParser --------------------
-
-NativeWimaxNetworkParser::NativeWimaxNetworkParser() {}
-NativeWimaxNetworkParser::~NativeWimaxNetworkParser() {}
-
-
-bool NativeWimaxNetworkParser::ParseValue(PropertyIndex index,
- const base::Value& value,
- Network* network) {
- CHECK_EQ(TYPE_WIMAX, network->type());
- WimaxNetwork* wimax_network = static_cast<WimaxNetwork*>(network);
- switch (index) {
- case PROPERTY_INDEX_PASSPHRASE_REQUIRED: {
- bool passphrase_required;
- if (!value.GetAsBoolean(&passphrase_required))
- break;
- wimax_network->set_passphrase_required(passphrase_required);
- return true;
- }
- case PROPERTY_INDEX_EAP_IDENTITY: {
- std::string eap_identity;
- if (!value.GetAsString(&eap_identity))
- break;
-
- wimax_network->set_eap_identity(eap_identity);
- }
- case PROPERTY_INDEX_EAP_PASSWORD: {
- std::string passphrase;
- if (!value.GetAsString(&passphrase))
- break;
-
- wimax_network->set_eap_passphrase(passphrase);
- return true;
- }
- default:
- return NativeWirelessNetworkParser::ParseValue(index, value, network);
- }
- return false;
-}
-
-// -------------------- NativeWifiNetworkParser --------------------
-
-NativeWifiNetworkParser::NativeWifiNetworkParser() {}
-NativeWifiNetworkParser::~NativeWifiNetworkParser() {}
-
-bool NativeWifiNetworkParser::ParseValue(PropertyIndex index,
- const base::Value& value,
- Network* network) {
- CHECK_EQ(TYPE_WIFI, network->type());
- WifiNetwork* wifi_network = static_cast<WifiNetwork*>(network);
- switch (index) {
- case PROPERTY_INDEX_WIFI_HEX_SSID: {
- std::string ssid_hex;
- if (!value.GetAsString(&ssid_hex))
- return false;
- wifi_network->SetHexSsid(ssid_hex);
- return true;
- }
- case PROPERTY_INDEX_WIFI_BSSID: {
- std::string bssid;
- if (!value.GetAsString(&bssid))
- return false;
- wifi_network->set_bssid(bssid);
- return true;
- }
- case PROPERTY_INDEX_WIFI_HIDDEN_SSID: {
- bool hidden_ssid;
- if (!value.GetAsBoolean(&hidden_ssid))
- return false;
- wifi_network->set_hidden_ssid(hidden_ssid);
- return true;
- }
- case PROPERTY_INDEX_WIFI_FREQUENCY: {
- int frequency;
- if (!value.GetAsInteger(&frequency))
- return false;
- wifi_network->set_frequency(frequency);
- return true;
- }
- case PROPERTY_INDEX_NAME: {
- // Does not change network name when it was already set by WiFi.HexSSID.
- if (!wifi_network->name().empty())
- return true;
- else
- return NativeWirelessNetworkParser::ParseValue(index, value, network);
- }
- case PROPERTY_INDEX_GUID: {
- std::string unique_id;
- if (!value.GetAsString(&unique_id))
- break;
- wifi_network->set_unique_id(unique_id);
- return true;
- }
- case PROPERTY_INDEX_SECURITY: {
- std::string security_string;
- if (!value.GetAsString(&security_string))
- break;
- wifi_network->set_encryption(ParseSecurity(security_string));
- return true;
- }
- case PROPERTY_INDEX_PASSPHRASE: {
- std::string passphrase;
- if (!value.GetAsString(&passphrase))
- break;
-
- if (chromeos::UserManager::Get()->IsCurrentUserOwner())
- wifi_network->set_passphrase(passphrase);
- return true;
- }
- case PROPERTY_INDEX_PASSPHRASE_REQUIRED: {
- bool passphrase_required;
- if (!value.GetAsBoolean(&passphrase_required))
- break;
- wifi_network->set_passphrase_required(passphrase_required);
- return true;
- }
- case PROPERTY_INDEX_IDENTITY: {
- std::string identity;
- if (!value.GetAsString(&identity))
- break;
- wifi_network->set_identity(identity);
- return true;
- }
- case PROPERTY_INDEX_EAP_IDENTITY: {
- std::string eap_identity;
- if (!value.GetAsString(&eap_identity))
- break;
- wifi_network->set_eap_identity(eap_identity);
- return true;
- }
- case PROPERTY_INDEX_EAP_METHOD: {
- std::string eap_method;
- if (!value.GetAsString(&eap_method))
- break;
- wifi_network->set_eap_method(ParseEAPMethod(eap_method));
- return true;
- }
- case PROPERTY_INDEX_EAP_PHASE_2_AUTH: {
- std::string eap_phase_2_auth;
- if (!value.GetAsString(&eap_phase_2_auth))
- break;
- wifi_network->set_eap_phase_2_auth(ParseEAPPhase2Auth(eap_phase_2_auth));
- return true;
- }
- case PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY: {
- std::string eap_anonymous_identity;
- if (!value.GetAsString(&eap_anonymous_identity))
- break;
- wifi_network->set_eap_anonymous_identity(eap_anonymous_identity);
- return true;
- }
- case PROPERTY_INDEX_EAP_CERT_ID: {
- std::string eap_client_cert_pkcs11_id;
- if (!value.GetAsString(&eap_client_cert_pkcs11_id))
- break;
- wifi_network->set_eap_client_cert_pkcs11_id(eap_client_cert_pkcs11_id);
- return true;
- }
- case PROPERTY_INDEX_EAP_CA_CERT_PEM: {
- const base::ListValue* pems = NULL;
- value.GetAsList(&pems);
- if (!pems)
- break;
- std::string ca_cert_pem;
- if (!pems->empty())
- pems->GetString(0, &ca_cert_pem);
- wifi_network->set_eap_server_ca_cert_pem(ca_cert_pem);
- return true;
- }
- case PROPERTY_INDEX_EAP_USE_SYSTEM_CAS: {
- bool eap_use_system_cas;
- if (!value.GetAsBoolean(&eap_use_system_cas))
- break;
- wifi_network->set_eap_use_system_cas(eap_use_system_cas);
- return true;
- }
- case PROPERTY_INDEX_EAP_PASSWORD: {
- std::string eap_passphrase;
- if (!value.GetAsString(&eap_passphrase))
- break;
- wifi_network->set_eap_passphrase(eap_passphrase);
- return true;
- }
- case PROPERTY_INDEX_WIFI_AUTH_MODE:
- case PROPERTY_INDEX_WIFI_PHY_MODE:
- case PROPERTY_INDEX_EAP_CLIENT_CERT:
- case PROPERTY_INDEX_EAP_CLIENT_CERT_NSS:
- case PROPERTY_INDEX_EAP_PRIVATE_KEY:
- case PROPERTY_INDEX_EAP_PRIVATE_KEY_PASSWORD:
- case PROPERTY_INDEX_EAP_KEY_ID:
- case PROPERTY_INDEX_EAP_CA_CERT_ID:
- case PROPERTY_INDEX_EAP_PIN:
- case PROPERTY_INDEX_EAP_KEY_MGMT:
- // These properties are currently not used in the UI.
- return true;
- default:
- return NativeWirelessNetworkParser::ParseValue(index, value, network);
- }
- return false;
-}
-
-ConnectionSecurity NativeWifiNetworkParser::ParseSecurity(
- const std::string& security) {
- return network_security_mapper()->Get(security);
-}
-
-EAPMethod NativeWifiNetworkParser::ParseEAPMethod(const std::string& method) {
- return network_eap_method_mapper()->Get(method);
-}
-
-EAPPhase2Auth NativeWifiNetworkParser::ParseEAPPhase2Auth(
- const std::string& auth) {
- return network_eap_auth_mapper()->Get(auth);
-}
-
-// -------------------- NativeVirtualNetworkParser --------------------
-
-
-NativeVirtualNetworkParser::NativeVirtualNetworkParser() {}
-NativeVirtualNetworkParser::~NativeVirtualNetworkParser() {}
-
-bool NativeVirtualNetworkParser::UpdateNetworkFromInfo(
- const DictionaryValue& info,
- Network* network) {
- CHECK_EQ(TYPE_VPN, network->type());
- VirtualNetwork* virtual_network = static_cast<VirtualNetwork*>(network);
- if (!NativeNetworkParser::UpdateNetworkFromInfo(info, network))
- return false;
- VLOG(1) << "Updating VPN '" << virtual_network->name()
- << "': Server: " << virtual_network->server_hostname()
- << " Type: "
- << ProviderTypeToString(virtual_network->provider_type());
- if (virtual_network->provider_type() == PROVIDER_TYPE_L2TP_IPSEC_PSK) {
- if (!virtual_network->client_cert_id().empty())
- virtual_network->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_USER_CERT);
- }
- return true;
-}
-
-bool NativeVirtualNetworkParser::ParseValue(PropertyIndex index,
- const base::Value& value,
- Network* network) {
- CHECK_EQ(TYPE_VPN, network->type());
- VirtualNetwork* virtual_network = static_cast<VirtualNetwork*>(network);
- switch (index) {
- case PROPERTY_INDEX_PROVIDER: {
- // TODO(rkc): Figure out why is this ever not true and fix the root
- // cause. 'value' comes to us all the way from the cros dbus call, the
- // issue is likely on the cros side of things.
- if (value.GetType() != Value::TYPE_DICTIONARY)
- return false;
-
- const DictionaryValue& dict = static_cast<const DictionaryValue&>(value);
- for (DictionaryValue::Iterator iter(dict);
- !iter.IsAtEnd();
- iter.Advance()) {
- PropertyIndex index = mapper().Get(iter.key());
- if (!ParseProviderValue(index, iter.value(), virtual_network)) {
- VLOG(1) << network->name() << ": Provider unhandled key: "
- << iter.key() << " Type: " << iter.value().GetType();
- }
- }
- return true;
- }
- default:
- return NativeNetworkParser::ParseValue(index, value, network);
- break;
- }
- return false;
-}
-
-bool NativeVirtualNetworkParser::ParseProviderValue(PropertyIndex index,
- const base::Value& value,
- VirtualNetwork* network) {
- switch (index) {
- case PROPERTY_INDEX_HOST: {
- std::string server_hostname;
- if (!value.GetAsString(&server_hostname))
- break;
- network->set_server_hostname(server_hostname);
- return true;
- }
- case PROPERTY_INDEX_NAME: {
- std::string name;
- if (!value.GetAsString(&name))
- break;
- network->set_name(name);
- return true;
- }
- case PROPERTY_INDEX_TYPE: {
- std::string provider_type_string;
- if (!value.GetAsString(&provider_type_string))
- break;
- network->set_provider_type(ParseProviderType(provider_type_string));
- return true;
- }
- case PROPERTY_INDEX_L2TPIPSEC_CA_CERT_PEM:
- case PROPERTY_INDEX_OPEN_VPN_CA_CERT_PEM: {
- const base::ListValue* pems = NULL;
- value.GetAsList(&pems);
- if (!pems)
- break;
- std::string ca_cert_pem;
- if (!pems->empty())
- pems->GetString(0, &ca_cert_pem);
- network->set_ca_cert_pem(ca_cert_pem);
- return true;
- }
- case PROPERTY_INDEX_L2TPIPSEC_PSK: {
- std::string psk_passphrase;
- if (!value.GetAsString(&psk_passphrase))
- break;
- network->set_psk_passphrase(psk_passphrase);
- return true;
- }
- case PROPERTY_INDEX_L2TPIPSEC_PSK_REQUIRED: {
- bool psk_passphrase_required;
- if (!value.GetAsBoolean(&psk_passphrase_required))
- break;
- network->set_psk_passphrase_required(psk_passphrase_required);
- return true;
- }
- case PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID:
- case PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID: {
- std::string client_cert_id;
- if (!value.GetAsString(&client_cert_id))
- break;
- network->set_client_cert_id(client_cert_id);
- return true;
- }
- case PROPERTY_INDEX_L2TPIPSEC_USER:
- case PROPERTY_INDEX_OPEN_VPN_USER: {
- std::string username;
- if (!value.GetAsString(&username))
- break;
- network->set_username(username);
- return true;
- }
- case PROPERTY_INDEX_L2TPIPSEC_PASSWORD:
- case PROPERTY_INDEX_OPEN_VPN_PASSWORD: {
- std::string user_passphrase;
- if (!value.GetAsString(&user_passphrase))
- break;
- network->set_user_passphrase(user_passphrase);
- return true;
- }
- case PROPERTY_INDEX_PASSPHRASE_REQUIRED: {
- bool user_passphrase_required;
- if (!value.GetAsBoolean(&user_passphrase_required))
- break;
- network->set_user_passphrase_required(user_passphrase_required);
- return true;
- }
- case PROPERTY_INDEX_L2TPIPSEC_GROUP_NAME: {
- std::string group_name;
- if (!value.GetAsString(&group_name))
- break;
- network->set_group_name(group_name);
- return true;
- }
- default:
- break;
- }
- return false;
-}
-
-// static
-const EnumMapper<ProviderType>*
- NativeVirtualNetworkParser::provider_type_mapper() {
- CR_DEFINE_STATIC_LOCAL(EnumMapper<ProviderType>, parser,
- (provider_type_table, arraysize(provider_type_table),
- PROVIDER_TYPE_MAX));
- return &parser;
-}
-
-ProviderType NativeVirtualNetworkParser::ParseProviderType(
- const std::string& type) {
- return provider_type_mapper()->Get(type);
-}
-
-} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/cros/native_network_parser.h ('k') | chrome/browser/chromeos/cros/network_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698