Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/cros/native_network_parser.h" | 5 #include "chrome/browser/chromeos/cros/native_network_parser.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 132 { flimflam::kOpenVPNClientCertIdProperty, | 132 { flimflam::kOpenVPNClientCertIdProperty, |
| 133 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID }, | 133 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID }, |
| 134 { flimflam::kPaymentPortalProperty, PROPERTY_INDEX_OLP }, | 134 { flimflam::kPaymentPortalProperty, PROPERTY_INDEX_OLP }, |
| 135 { flimflam::kWifiAuthMode, PROPERTY_INDEX_WIFI_AUTH_MODE }, | 135 { flimflam::kWifiAuthMode, PROPERTY_INDEX_WIFI_AUTH_MODE }, |
| 136 { flimflam::kWifiFrequency, PROPERTY_INDEX_WIFI_FREQUENCY }, | 136 { flimflam::kWifiFrequency, PROPERTY_INDEX_WIFI_FREQUENCY }, |
| 137 { flimflam::kWifiHexSsid, PROPERTY_INDEX_WIFI_HEX_SSID }, | 137 { flimflam::kWifiHexSsid, PROPERTY_INDEX_WIFI_HEX_SSID }, |
| 138 { flimflam::kWifiHiddenSsid, PROPERTY_INDEX_WIFI_HIDDEN_SSID }, | 138 { flimflam::kWifiHiddenSsid, PROPERTY_INDEX_WIFI_HIDDEN_SSID }, |
| 139 { flimflam::kWifiPhyMode, PROPERTY_INDEX_WIFI_PHY_MODE }, | 139 { flimflam::kWifiPhyMode, PROPERTY_INDEX_WIFI_PHY_MODE }, |
| 140 }; | 140 }; |
| 141 | 141 |
| 142 EnumMapper<ConnectionType>::Pair type_table[] = { | |
| 143 { flimflam::kTypeEthernet, TYPE_ETHERNET }, | |
| 144 { flimflam::kTypeWifi, TYPE_WIFI }, | |
| 145 { flimflam::kTypeWimax, TYPE_WIMAX }, | |
| 146 { flimflam::kTypeBluetooth, TYPE_BLUETOOTH }, | |
| 147 { flimflam::kTypeCellular, TYPE_CELLULAR }, | |
| 148 { flimflam::kTypeVPN, TYPE_VPN }, | |
| 149 }; | |
| 150 | |
| 151 EnumMapper<ConnectionSecurity>::Pair security_table[] = { | |
| 152 { flimflam::kSecurityNone, SECURITY_NONE }, | |
| 153 { flimflam::kSecurityWep, SECURITY_WEP }, | |
| 154 { flimflam::kSecurityWpa, SECURITY_WPA }, | |
| 155 { flimflam::kSecurityRsn, SECURITY_RSN }, | |
| 156 { flimflam::kSecurityPsk, SECURITY_PSK }, | |
| 157 { flimflam::kSecurity8021x, SECURITY_8021X }, | |
| 158 }; | |
| 159 | |
| 160 EnumMapper<EAPMethod>::Pair eap_method_table[] = { | |
| 161 { flimflam::kEapMethodPEAP, EAP_METHOD_PEAP }, | |
| 162 { flimflam::kEapMethodTLS, EAP_METHOD_TLS }, | |
| 163 { flimflam::kEapMethodTTLS, EAP_METHOD_TTLS }, | |
| 164 { flimflam::kEapMethodLEAP, EAP_METHOD_LEAP }, | |
| 165 }; | |
| 166 | |
| 167 EnumMapper<EAPPhase2Auth>::Pair eap_auth_table[] = { | |
| 168 { flimflam::kEapPhase2AuthPEAPMD5, EAP_PHASE_2_AUTH_MD5 }, | |
| 169 { flimflam::kEapPhase2AuthPEAPMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 }, | |
| 170 { flimflam::kEapPhase2AuthTTLSMD5, EAP_PHASE_2_AUTH_MD5 }, | |
| 171 { flimflam::kEapPhase2AuthTTLSMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 }, | |
| 172 { flimflam::kEapPhase2AuthTTLSMSCHAP, EAP_PHASE_2_AUTH_MSCHAP }, | |
| 173 { flimflam::kEapPhase2AuthTTLSPAP, EAP_PHASE_2_AUTH_PAP }, | |
| 174 { flimflam::kEapPhase2AuthTTLSCHAP, EAP_PHASE_2_AUTH_CHAP }, | |
| 175 }; | |
| 176 | |
| 142 // Serve the singleton mapper instance. | 177 // Serve the singleton mapper instance. |
| 143 const EnumMapper<PropertyIndex>* get_native_mapper() { | 178 const EnumMapper<PropertyIndex>* get_native_mapper() { |
| 144 CR_DEFINE_STATIC_LOCAL(EnumMapper<PropertyIndex>, mapper, | 179 CR_DEFINE_STATIC_LOCAL(EnumMapper<PropertyIndex>, mapper, |
| 145 (property_index_table, | 180 (property_index_table, |
| 146 arraysize(property_index_table), | 181 arraysize(property_index_table), |
| 147 PROPERTY_INDEX_UNKNOWN)); | 182 PROPERTY_INDEX_UNKNOWN)); |
| 148 return &mapper; | 183 return &mapper; |
| 149 } | 184 } |
| 150 | 185 |
| 151 ConnectionType ParseNetworkType(const std::string& type) { | |
| 152 static EnumMapper<ConnectionType>::Pair table[] = { | |
| 153 { flimflam::kTypeEthernet, TYPE_ETHERNET }, | |
| 154 { flimflam::kTypeWifi, TYPE_WIFI }, | |
| 155 { flimflam::kTypeWimax, TYPE_WIMAX }, | |
| 156 { flimflam::kTypeBluetooth, TYPE_BLUETOOTH }, | |
| 157 { flimflam::kTypeCellular, TYPE_CELLULAR }, | |
| 158 { flimflam::kTypeVPN, TYPE_VPN }, | |
| 159 }; | |
| 160 CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionType>, parser, | |
| 161 (table, arraysize(table), TYPE_UNKNOWN)); | |
| 162 return parser.Get(type); | |
| 163 } | |
| 164 | |
| 165 } // namespace | 186 } // namespace |
| 166 | 187 |
| 167 // -------------------- NativeNetworkDeviceParser -------------------- | 188 // -------------------- NativeNetworkDeviceParser -------------------- |
| 168 | 189 |
| 169 NativeNetworkDeviceParser::NativeNetworkDeviceParser() | 190 NativeNetworkDeviceParser::NativeNetworkDeviceParser() |
| 170 : NetworkDeviceParser(get_native_mapper()) { | 191 : NetworkDeviceParser(get_native_mapper()) { |
| 171 } | 192 } |
| 172 | 193 |
| 173 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() { | 194 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() { |
| 174 } | 195 } |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 384 } | 405 } |
| 385 break; | 406 break; |
| 386 } | 407 } |
| 387 default: | 408 default: |
| 388 break; | 409 break; |
| 389 } | 410 } |
| 390 return false; | 411 return false; |
| 391 } | 412 } |
| 392 | 413 |
| 393 ConnectionType NativeNetworkDeviceParser::ParseType(const std::string& type) { | 414 ConnectionType NativeNetworkDeviceParser::ParseType(const std::string& type) { |
| 394 return ParseNetworkType(type); | 415 return NativeNetworkParser::type_mapper()->Get(type); |
| 395 } | 416 } |
| 396 | 417 |
| 397 bool NativeNetworkDeviceParser::ParseApnList(const ListValue& list, | 418 bool NativeNetworkDeviceParser::ParseApnList(const ListValue& list, |
| 398 CellularApnList* apn_list) { | 419 CellularApnList* apn_list) { |
| 399 apn_list->clear(); | 420 apn_list->clear(); |
| 400 apn_list->reserve(list.GetSize()); | 421 apn_list->reserve(list.GetSize()); |
| 401 for (ListValue::const_iterator it = list.begin(); it != list.end(); ++it) { | 422 for (ListValue::const_iterator it = list.begin(); it != list.end(); ++it) { |
| 402 if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) { | 423 if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) { |
| 403 apn_list->resize(apn_list->size() + 1); | 424 apn_list->resize(apn_list->size() + 1); |
| 404 const DictionaryValue* dict = static_cast<const DictionaryValue*>(*it); | 425 const DictionaryValue* dict = static_cast<const DictionaryValue*>(*it); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 498 } | 519 } |
| 499 | 520 |
| 500 NativeNetworkParser::~NativeNetworkParser() { | 521 NativeNetworkParser::~NativeNetworkParser() { |
| 501 } | 522 } |
| 502 | 523 |
| 503 // static | 524 // static |
| 504 const EnumMapper<PropertyIndex>* NativeNetworkParser::property_mapper() { | 525 const EnumMapper<PropertyIndex>* NativeNetworkParser::property_mapper() { |
| 505 return get_native_mapper(); | 526 return get_native_mapper(); |
| 506 } | 527 } |
| 507 | 528 |
| 529 // static | |
| 530 const EnumMapper<ConnectionType>* NativeNetworkParser::type_mapper() { | |
| 531 CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionType>, type_mapper, | |
| 532 (type_table, arraysize(type_table), TYPE_UNKNOWN)); | |
| 533 return &type_mapper; | |
|
stevenjb
2011/11/30 17:36:20
nit: "type_mapper" and "type_table" sound like gen
Charlie Lee
2011/11/30 18:01:21
Done.
| |
| 534 } | |
| 535 | |
| 536 // static | |
| 537 const EnumMapper<ConnectionSecurity>* NativeNetworkParser::security_mapper() { | |
| 538 CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionSecurity>, security_mapper, | |
| 539 (security_table, arraysize(security_table), SECURITY_UNKNOWN)); | |
| 540 return &security_mapper; | |
| 541 } | |
| 542 | |
| 543 // static | |
| 544 const EnumMapper<EAPMethod>* NativeNetworkParser::eap_method_mapper() { | |
| 545 CR_DEFINE_STATIC_LOCAL(EnumMapper<EAPMethod>, eap_method_mapper, | |
| 546 (eap_method_table, arraysize(eap_method_table), EAP_METHOD_UNKNOWN)); | |
| 547 return &eap_method_mapper; | |
| 548 } | |
| 549 | |
| 550 // static | |
| 551 const EnumMapper<EAPPhase2Auth>* NativeNetworkParser::eap_auth_mapper() { | |
| 552 CR_DEFINE_STATIC_LOCAL(EnumMapper<EAPPhase2Auth>, eap_auth_mapper, | |
| 553 (eap_auth_table, arraysize(eap_auth_table), EAP_PHASE_2_AUTH_AUTO)); | |
| 554 return &eap_auth_mapper; | |
| 555 } | |
| 556 | |
| 508 const ConnectionType NativeNetworkParser::ParseConnectionType( | 557 const ConnectionType NativeNetworkParser::ParseConnectionType( |
| 509 const std::string& connection_type) { | 558 const std::string& connection_type) { |
| 510 return ParseNetworkType(connection_type); | 559 return type_mapper()->Get(connection_type); |
| 511 } | 560 } |
| 512 | 561 |
| 513 Network* NativeNetworkParser::CreateNewNetwork( | 562 Network* NativeNetworkParser::CreateNewNetwork( |
| 514 ConnectionType type, const std::string& service_path) { | 563 ConnectionType type, const std::string& service_path) { |
| 515 Network* network = NetworkParser::CreateNewNetwork(type, service_path); | 564 Network* network = NetworkParser::CreateNewNetwork(type, service_path); |
| 516 if (network) { | 565 if (network) { |
| 517 if (type == TYPE_ETHERNET) | 566 if (type == TYPE_ETHERNET) |
| 518 network->SetNetworkParser(new NativeEthernetNetworkParser()); | 567 network->SetNetworkParser(new NativeEthernetNetworkParser()); |
| 519 else if (type == TYPE_WIFI) | 568 else if (type == TYPE_WIFI) |
| 520 network->SetNetworkParser(new NativeWifiNetworkParser()); | 569 network->SetNetworkParser(new NativeWifiNetworkParser()); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 605 return true; | 654 return true; |
| 606 } | 655 } |
| 607 default: | 656 default: |
| 608 return NetworkParser::ParseValue(index, value, network); | 657 return NetworkParser::ParseValue(index, value, network); |
| 609 break; | 658 break; |
| 610 } | 659 } |
| 611 return false; | 660 return false; |
| 612 } | 661 } |
| 613 | 662 |
| 614 ConnectionType NativeNetworkParser::ParseType(const std::string& type) { | 663 ConnectionType NativeNetworkParser::ParseType(const std::string& type) { |
| 615 return ParseNetworkType(type); | 664 return type_mapper()->Get(type); |
| 616 } | 665 } |
| 617 | 666 |
| 618 ConnectionType NativeNetworkParser::ParseTypeFromDictionary( | 667 ConnectionType NativeNetworkParser::ParseTypeFromDictionary( |
| 619 const DictionaryValue& info) { | 668 const DictionaryValue& info) { |
| 620 std::string type_string; | 669 std::string type_string; |
| 621 info.GetString(flimflam::kTypeProperty, &type_string); | 670 info.GetString(flimflam::kTypeProperty, &type_string); |
| 622 return ParseType(type_string); | 671 return ParseType(type_string); |
| 623 } | 672 } |
| 624 | 673 |
| 625 ConnectionMode NativeNetworkParser::ParseMode(const std::string& mode) { | 674 ConnectionMode NativeNetworkParser::ParseMode(const std::string& mode) { |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1027 // These properties are currently not used in the UI. | 1076 // These properties are currently not used in the UI. |
| 1028 return true; | 1077 return true; |
| 1029 default: | 1078 default: |
| 1030 return NativeWirelessNetworkParser::ParseValue(index, value, network); | 1079 return NativeWirelessNetworkParser::ParseValue(index, value, network); |
| 1031 } | 1080 } |
| 1032 return false; | 1081 return false; |
| 1033 } | 1082 } |
| 1034 | 1083 |
| 1035 ConnectionSecurity NativeWifiNetworkParser::ParseSecurity( | 1084 ConnectionSecurity NativeWifiNetworkParser::ParseSecurity( |
| 1036 const std::string& security) { | 1085 const std::string& security) { |
| 1037 static EnumMapper<ConnectionSecurity>::Pair table[] = { | 1086 return security_mapper()->Get(security); |
| 1038 { flimflam::kSecurityNone, SECURITY_NONE }, | |
| 1039 { flimflam::kSecurityWep, SECURITY_WEP }, | |
| 1040 { flimflam::kSecurityWpa, SECURITY_WPA }, | |
| 1041 { flimflam::kSecurityRsn, SECURITY_RSN }, | |
| 1042 { flimflam::kSecurityPsk, SECURITY_PSK }, | |
| 1043 { flimflam::kSecurity8021x, SECURITY_8021X }, | |
| 1044 }; | |
| 1045 CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionSecurity>, parser, | |
| 1046 (table, arraysize(table), SECURITY_UNKNOWN)); | |
| 1047 return parser.Get(security); | |
| 1048 } | 1087 } |
| 1049 | 1088 |
| 1050 EAPMethod NativeWifiNetworkParser::ParseEAPMethod(const std::string& method) { | 1089 EAPMethod NativeWifiNetworkParser::ParseEAPMethod(const std::string& method) { |
| 1051 static EnumMapper<EAPMethod>::Pair table[] = { | 1090 return eap_method_mapper()->Get(method); |
| 1052 { flimflam::kEapMethodPEAP, EAP_METHOD_PEAP }, | |
| 1053 { flimflam::kEapMethodTLS, EAP_METHOD_TLS }, | |
| 1054 { flimflam::kEapMethodTTLS, EAP_METHOD_TTLS }, | |
| 1055 { flimflam::kEapMethodLEAP, EAP_METHOD_LEAP }, | |
| 1056 }; | |
| 1057 CR_DEFINE_STATIC_LOCAL(EnumMapper<EAPMethod>, parser, | |
| 1058 (table, arraysize(table), EAP_METHOD_UNKNOWN)); | |
| 1059 return parser.Get(method); | |
| 1060 } | 1091 } |
| 1061 | 1092 |
| 1062 EAPPhase2Auth NativeWifiNetworkParser::ParseEAPPhase2Auth( | 1093 EAPPhase2Auth NativeWifiNetworkParser::ParseEAPPhase2Auth( |
| 1063 const std::string& auth) { | 1094 const std::string& auth) { |
| 1064 static EnumMapper<EAPPhase2Auth>::Pair table[] = { | 1095 return eap_auth_mapper()->Get(auth); |
| 1065 { flimflam::kEapPhase2AuthPEAPMD5, EAP_PHASE_2_AUTH_MD5 }, | |
| 1066 { flimflam::kEapPhase2AuthPEAPMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 }, | |
| 1067 { flimflam::kEapPhase2AuthTTLSMD5, EAP_PHASE_2_AUTH_MD5 }, | |
| 1068 { flimflam::kEapPhase2AuthTTLSMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 }, | |
| 1069 { flimflam::kEapPhase2AuthTTLSMSCHAP, EAP_PHASE_2_AUTH_MSCHAP }, | |
| 1070 { flimflam::kEapPhase2AuthTTLSPAP, EAP_PHASE_2_AUTH_PAP }, | |
| 1071 { flimflam::kEapPhase2AuthTTLSCHAP, EAP_PHASE_2_AUTH_CHAP }, | |
| 1072 }; | |
| 1073 CR_DEFINE_STATIC_LOCAL(EnumMapper<EAPPhase2Auth>, parser, | |
| 1074 (table, arraysize(table), EAP_PHASE_2_AUTH_AUTO)); | |
| 1075 return parser.Get(auth); | |
| 1076 } | 1096 } |
| 1077 | 1097 |
| 1078 // -------------------- NativeVirtualNetworkParser -------------------- | 1098 // -------------------- NativeVirtualNetworkParser -------------------- |
| 1079 | 1099 |
| 1080 | 1100 |
| 1081 NativeVirtualNetworkParser::NativeVirtualNetworkParser() {} | 1101 NativeVirtualNetworkParser::NativeVirtualNetworkParser() {} |
| 1082 NativeVirtualNetworkParser::~NativeVirtualNetworkParser() {} | 1102 NativeVirtualNetworkParser::~NativeVirtualNetworkParser() {} |
| 1083 | 1103 |
| 1084 bool NativeVirtualNetworkParser::UpdateNetworkFromInfo( | 1104 bool NativeVirtualNetworkParser::UpdateNetworkFromInfo( |
| 1085 const DictionaryValue& info, | 1105 const DictionaryValue& info, |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1211 static EnumMapper<ProviderType>::Pair table[] = { | 1231 static EnumMapper<ProviderType>::Pair table[] = { |
| 1212 { flimflam::kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK }, | 1232 { flimflam::kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK }, |
| 1213 { flimflam::kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN }, | 1233 { flimflam::kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN }, |
| 1214 }; | 1234 }; |
| 1215 CR_DEFINE_STATIC_LOCAL(EnumMapper<ProviderType>, parser, | 1235 CR_DEFINE_STATIC_LOCAL(EnumMapper<ProviderType>, parser, |
| 1216 (table, arraysize(table), PROVIDER_TYPE_MAX)); | 1236 (table, arraysize(table), PROVIDER_TYPE_MAX)); |
| 1217 return parser.Get(type); | 1237 return parser.Get(type); |
| 1218 } | 1238 } |
| 1219 | 1239 |
| 1220 } // namespace chromeos | 1240 } // namespace chromeos |
| OLD | NEW |