| 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 "base/stringprintf.h" | 7 #include "base/stringprintf.h" |
| 8 #include "chrome/browser/chromeos/cros/native_network_constants.h" | 8 #include "chrome/browser/chromeos/cros/native_network_constants.h" |
| 9 #include "chrome/browser/chromeos/cros/network_library.h" | 9 #include "chrome/browser/chromeos/cros/network_library.h" |
| 10 #include "chrome/browser/chromeos/login/user_manager.h" | 10 #include "chrome/browser/chromeos/login/user_manager.h" |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 | 140 |
| 141 // -------------------- NativeNetworkDeviceParser -------------------- | 141 // -------------------- NativeNetworkDeviceParser -------------------- |
| 142 | 142 |
| 143 NativeNetworkDeviceParser::NativeNetworkDeviceParser() | 143 NativeNetworkDeviceParser::NativeNetworkDeviceParser() |
| 144 : NetworkDeviceParser(get_native_mapper()) { | 144 : NetworkDeviceParser(get_native_mapper()) { |
| 145 } | 145 } |
| 146 | 146 |
| 147 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() { | 147 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() { |
| 148 } | 148 } |
| 149 | 149 |
| 150 bool NativeNetworkDeviceParser::ParseValue( | 150 bool NativeNetworkDeviceParser::ParseValue(PropertyIndex index, |
| 151 PropertyIndex index, const Value& value, NetworkDevice* device) { | 151 Value* value, |
| 152 NetworkDevice* device) { |
| 152 switch (index) { | 153 switch (index) { |
| 153 case PROPERTY_INDEX_TYPE: { | 154 case PROPERTY_INDEX_TYPE: { |
| 154 std::string type_string; | 155 std::string type_string; |
| 155 if (value.GetAsString(&type_string)) { | 156 if (value->GetAsString(&type_string)) { |
| 156 device->set_type(ParseType(type_string)); | 157 device->set_type(ParseType(type_string)); |
| 157 return true; | 158 return true; |
| 158 } | 159 } |
| 159 break; | 160 break; |
| 160 } | 161 } |
| 161 case PROPERTY_INDEX_NAME: { | 162 case PROPERTY_INDEX_NAME: { |
| 162 std::string name; | 163 std::string name; |
| 163 if (!value.GetAsString(&name)) | 164 if (!value->GetAsString(&name)) |
| 164 return false; | 165 return false; |
| 165 device->set_name(name); | 166 device->set_name(name); |
| 166 return true; | 167 return true; |
| 167 } | 168 } |
| 168 case PROPERTY_INDEX_GUID: { | 169 case PROPERTY_INDEX_GUID: { |
| 169 std::string unique_id; | 170 std::string unique_id; |
| 170 if (!value.GetAsString(&unique_id)) | 171 if (!value->GetAsString(&unique_id)) |
| 171 return false; | 172 return false; |
| 172 device->set_unique_id(unique_id); | 173 device->set_unique_id(unique_id); |
| 173 return true; | 174 return true; |
| 174 } | 175 } |
| 175 case PROPERTY_INDEX_CARRIER: { | 176 case PROPERTY_INDEX_CARRIER: { |
| 176 std::string carrier; | 177 std::string carrier; |
| 177 if (!value.GetAsString(&carrier)) | 178 if (!value->GetAsString(&carrier)) |
| 178 return false; | 179 return false; |
| 179 device->set_carrier(carrier); | 180 device->set_carrier(carrier); |
| 180 return true; | 181 return true; |
| 181 } | 182 } |
| 182 case PROPERTY_INDEX_SCANNING: { | 183 case PROPERTY_INDEX_SCANNING: { |
| 183 bool scanning; | 184 bool scanning; |
| 184 if (!value.GetAsBoolean(&scanning)) | 185 if (!value->GetAsBoolean(&scanning)) |
| 185 return false; | 186 return false; |
| 186 device->set_scanning(scanning); | 187 device->set_scanning(scanning); |
| 187 return true; | 188 return true; |
| 188 } | 189 } |
| 189 case PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING: { | 190 case PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING: { |
| 190 bool data_roaming_allowed; | 191 bool data_roaming_allowed; |
| 191 if (!value.GetAsBoolean(&data_roaming_allowed)) | 192 if (!value->GetAsBoolean(&data_roaming_allowed)) |
| 192 return false; | 193 return false; |
| 193 device->set_data_roaming_allowed(data_roaming_allowed); | 194 device->set_data_roaming_allowed(data_roaming_allowed); |
| 194 return true; | 195 return true; |
| 195 } | 196 } |
| 196 case PROPERTY_INDEX_CELLULAR_APN_LIST: | 197 case PROPERTY_INDEX_CELLULAR_APN_LIST: |
| 197 if (value.IsType(Value::TYPE_LIST)) { | 198 if (ListValue* list = value->AsList()) { |
| 198 CellularApnList provider_apn_list; | 199 CellularApnList provider_apn_list; |
| 199 if (!ParseApnList(static_cast<const ListValue&>(value), | 200 if (!ParseApnList(*list, &provider_apn_list)) |
| 200 &provider_apn_list)) | |
| 201 return false; | 201 return false; |
| 202 device->set_provider_apn_list(provider_apn_list); | 202 device->set_provider_apn_list(provider_apn_list); |
| 203 return true; | 203 return true; |
| 204 } | 204 } |
| 205 break; | 205 break; |
| 206 case PROPERTY_INDEX_NETWORKS: | 206 case PROPERTY_INDEX_NETWORKS: |
| 207 if (value.IsType(Value::TYPE_LIST)) { | 207 if (value->AsList()) { |
| 208 // Ignored. | 208 // Ignored. |
| 209 return true; | 209 return true; |
| 210 } | 210 } |
| 211 break; | 211 break; |
| 212 case PROPERTY_INDEX_FOUND_NETWORKS: | 212 case PROPERTY_INDEX_FOUND_NETWORKS: |
| 213 if (value.IsType(Value::TYPE_LIST)) { | 213 if (ListValue* list = value->AsList()) { |
| 214 CellularNetworkList found_cellular_networks; | 214 CellularNetworkList found_cellular_networks; |
| 215 if (!ParseFoundNetworksFromList( | 215 if (!ParseFoundNetworksFromList(*list, &found_cellular_networks)) |
| 216 static_cast<const ListValue&>(value), | |
| 217 &found_cellular_networks)) | |
| 218 return false; | 216 return false; |
| 219 device->set_found_cellular_networks(found_cellular_networks); | 217 device->set_found_cellular_networks(found_cellular_networks); |
| 220 return true; | 218 return true; |
| 221 } | 219 } |
| 222 break; | 220 break; |
| 223 case PROPERTY_INDEX_HOME_PROVIDER: { | 221 case PROPERTY_INDEX_HOME_PROVIDER: { |
| 224 if (value.IsType(Value::TYPE_DICTIONARY)) { | 222 if (value->IsType(Value::TYPE_DICTIONARY)) { |
| 225 const DictionaryValue& dict = | 223 DictionaryValue* dict = static_cast<DictionaryValue*>(value); |
| 226 static_cast<const DictionaryValue&>(value); | |
| 227 std::string home_provider_code; | 224 std::string home_provider_code; |
| 228 std::string home_provider_country; | 225 std::string home_provider_country; |
| 229 std::string home_provider_name; | 226 std::string home_provider_name; |
| 230 dict.GetStringWithoutPathExpansion(kOperatorCodeKey, | 227 dict->GetStringWithoutPathExpansion(kOperatorCodeKey, |
| 231 &home_provider_code); | 228 &home_provider_code); |
| 232 dict.GetStringWithoutPathExpansion(kOperatorCountryKey, | 229 dict->GetStringWithoutPathExpansion(kOperatorCountryKey, |
| 233 &home_provider_country); | 230 &home_provider_country); |
| 234 dict.GetStringWithoutPathExpansion(kOperatorNameKey, | 231 dict->GetStringWithoutPathExpansion(kOperatorNameKey, |
| 235 &home_provider_name); | 232 &home_provider_name); |
| 236 device->set_home_provider_code(home_provider_code); | 233 device->set_home_provider_code(home_provider_code); |
| 237 device->set_home_provider_country(home_provider_country); | 234 device->set_home_provider_country(home_provider_country); |
| 238 device->set_home_provider_name(home_provider_name); | 235 device->set_home_provider_name(home_provider_name); |
| 239 if (!device->home_provider_name().empty() && | 236 if (!device->home_provider_name().empty() && |
| 240 !device->home_provider_country().empty()) { | 237 !device->home_provider_country().empty()) { |
| 241 device->set_home_provider_id(base::StringPrintf( | 238 device->set_home_provider_id(base::StringPrintf( |
| 242 kCarrierIdFormat, | 239 kCarrierIdFormat, |
| 243 device->home_provider_name().c_str(), | 240 device->home_provider_name().c_str(), |
| 244 device->home_provider_country().c_str())); | 241 device->home_provider_country().c_str())); |
| 245 } else { | 242 } else { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 256 case PROPERTY_INDEX_IMSI: | 253 case PROPERTY_INDEX_IMSI: |
| 257 case PROPERTY_INDEX_ESN: | 254 case PROPERTY_INDEX_ESN: |
| 258 case PROPERTY_INDEX_MDN: | 255 case PROPERTY_INDEX_MDN: |
| 259 case PROPERTY_INDEX_MIN: | 256 case PROPERTY_INDEX_MIN: |
| 260 case PROPERTY_INDEX_MODEL_ID: | 257 case PROPERTY_INDEX_MODEL_ID: |
| 261 case PROPERTY_INDEX_MANUFACTURER: | 258 case PROPERTY_INDEX_MANUFACTURER: |
| 262 case PROPERTY_INDEX_FIRMWARE_REVISION: | 259 case PROPERTY_INDEX_FIRMWARE_REVISION: |
| 263 case PROPERTY_INDEX_HARDWARE_REVISION: | 260 case PROPERTY_INDEX_HARDWARE_REVISION: |
| 264 case PROPERTY_INDEX_SELECTED_NETWORK: { | 261 case PROPERTY_INDEX_SELECTED_NETWORK: { |
| 265 std::string item; | 262 std::string item; |
| 266 if (!value.GetAsString(&item)) | 263 if (!value->GetAsString(&item)) |
| 267 return false; | 264 return false; |
| 268 switch (index) { | 265 switch (index) { |
| 269 case PROPERTY_INDEX_MEID: | 266 case PROPERTY_INDEX_MEID: |
| 270 device->set_meid(item); | 267 device->set_meid(item); |
| 271 break; | 268 break; |
| 272 case PROPERTY_INDEX_IMEI: | 269 case PROPERTY_INDEX_IMEI: |
| 273 device->set_imei(item); | 270 device->set_imei(item); |
| 274 break; | 271 break; |
| 275 case PROPERTY_INDEX_IMSI: | 272 case PROPERTY_INDEX_IMSI: |
| 276 device->set_imsi(item); | 273 device->set_imsi(item); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 298 break; | 295 break; |
| 299 case PROPERTY_INDEX_SELECTED_NETWORK: | 296 case PROPERTY_INDEX_SELECTED_NETWORK: |
| 300 device->set_selected_cellular_network(item); | 297 device->set_selected_cellular_network(item); |
| 301 break; | 298 break; |
| 302 default: | 299 default: |
| 303 break; | 300 break; |
| 304 } | 301 } |
| 305 return true; | 302 return true; |
| 306 } | 303 } |
| 307 case PROPERTY_INDEX_SIM_LOCK: | 304 case PROPERTY_INDEX_SIM_LOCK: |
| 308 if (value.IsType(Value::TYPE_DICTIONARY)) { | 305 if (value->IsType(Value::TYPE_DICTIONARY)) { |
| 309 SimLockState sim_lock_state; | 306 SimLockState sim_lock_state; |
| 310 int sim_retries_left; | 307 int sim_retries_left; |
| 311 if (!ParseSimLockStateFromDictionary( | 308 if (!ParseSimLockStateFromDictionary( |
| 312 static_cast<const DictionaryValue&>(value), | 309 static_cast<const DictionaryValue&>(*value), |
| 313 &sim_lock_state, | 310 &sim_lock_state, |
| 314 &sim_retries_left)) | 311 &sim_retries_left)) |
| 315 return false; | 312 return false; |
| 316 device->set_sim_lock_state(sim_lock_state); | 313 device->set_sim_lock_state(sim_lock_state); |
| 317 device->set_sim_retries_left(sim_retries_left); | 314 device->set_sim_retries_left(sim_retries_left); |
| 318 // Initialize PinRequired value only once. | 315 // Initialize PinRequired value only once. |
| 319 // See SimPinRequire enum comments. | 316 // See SimPinRequire enum comments. |
| 320 if (device->sim_pin_required() == SIM_PIN_REQUIRE_UNKNOWN) { | 317 if (device->sim_pin_required() == SIM_PIN_REQUIRE_UNKNOWN) { |
| 321 if (device->sim_lock_state() == SIM_UNLOCKED) { | 318 if (device->sim_lock_state() == SIM_UNLOCKED) { |
| 322 device->set_sim_pin_required(SIM_PIN_NOT_REQUIRED); | 319 device->set_sim_pin_required(SIM_PIN_NOT_REQUIRED); |
| 323 } else if (device->sim_lock_state() == SIM_LOCKED_PIN || | 320 } else if (device->sim_lock_state() == SIM_LOCKED_PIN || |
| 324 device->sim_lock_state() == SIM_LOCKED_PUK) { | 321 device->sim_lock_state() == SIM_LOCKED_PUK) { |
| 325 device->set_sim_pin_required(SIM_PIN_REQUIRED); | 322 device->set_sim_pin_required(SIM_PIN_REQUIRED); |
| 326 } | 323 } |
| 327 } | 324 } |
| 328 return true; | 325 return true; |
| 329 } | 326 } |
| 330 break; | 327 break; |
| 331 case PROPERTY_INDEX_POWERED: | 328 case PROPERTY_INDEX_POWERED: |
| 332 // we don't care about the value, just the fact that it changed | 329 // we don't care about the value, just the fact that it changed |
| 333 return true; | 330 return true; |
| 334 case PROPERTY_INDEX_PRL_VERSION: { | 331 case PROPERTY_INDEX_PRL_VERSION: { |
| 335 int prl_version; | 332 int prl_version; |
| 336 if (!value.GetAsInteger(&prl_version)) | 333 if (!value->GetAsInteger(&prl_version)) |
| 337 return false; | 334 return false; |
| 338 device->set_prl_version(prl_version); | 335 device->set_prl_version(prl_version); |
| 339 return true; | 336 return true; |
| 340 } | 337 } |
| 341 case PROPERTY_INDEX_SUPPORT_NETWORK_SCAN: { | 338 case PROPERTY_INDEX_SUPPORT_NETWORK_SCAN: { |
| 342 bool support_network_scan; | 339 bool support_network_scan; |
| 343 if (!value.GetAsBoolean(&support_network_scan)) | 340 if (!value->GetAsBoolean(&support_network_scan)) |
| 344 return false; | 341 return false; |
| 345 device->set_support_network_scan(support_network_scan); | 342 device->set_support_network_scan(support_network_scan); |
| 346 return true; | 343 return true; |
| 347 } | 344 } |
| 348 case PROPERTY_INDEX_TECHNOLOGY_FAMILY: { | 345 case PROPERTY_INDEX_TECHNOLOGY_FAMILY: { |
| 349 std::string technology_family_string; | 346 std::string technology_family_string; |
| 350 if (value.GetAsString(&technology_family_string)) { | 347 if (value->GetAsString(&technology_family_string)) { |
| 351 device->set_technology_family( | 348 device->set_technology_family( |
| 352 ParseTechnologyFamily(technology_family_string)); | 349 ParseTechnologyFamily(technology_family_string)); |
| 353 return true; | 350 return true; |
| 354 } | 351 } |
| 355 break; | 352 break; |
| 356 } | 353 } |
| 357 default: | 354 default: |
| 358 break; | 355 break; |
| 359 } | 356 } |
| 360 return false; | 357 return false; |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 return get_native_mapper(); | 467 return get_native_mapper(); |
| 471 | 468 |
| 472 } | 469 } |
| 473 | 470 |
| 474 const ConnectionType NativeNetworkParser::ParseConnectionType( | 471 const ConnectionType NativeNetworkParser::ParseConnectionType( |
| 475 const std::string& connection_type) { | 472 const std::string& connection_type) { |
| 476 return ParseNetworkType(connection_type); | 473 return ParseNetworkType(connection_type); |
| 477 } | 474 } |
| 478 | 475 |
| 479 bool NativeNetworkParser::ParseValue(PropertyIndex index, | 476 bool NativeNetworkParser::ParseValue(PropertyIndex index, |
| 480 const Value& value, | 477 Value* value, |
| 481 Network* network) { | 478 Network* network) { |
| 482 switch (index) { | 479 switch (index) { |
| 483 case PROPERTY_INDEX_TYPE: { | 480 case PROPERTY_INDEX_TYPE: { |
| 484 std::string type_string; | 481 std::string type_string; |
| 485 if (value.GetAsString(&type_string)) { | 482 if (value->GetAsString(&type_string)) { |
| 486 ConnectionType type = ParseType(type_string); | 483 ConnectionType type = ParseType(type_string); |
| 487 LOG_IF(ERROR, type != network->type()) | 484 LOG_IF(ERROR, type != network->type()) |
| 488 << "Network with mismatched type: " << network->service_path() | 485 << "Network with mismatched type: " << network->service_path() |
| 489 << " " << type << " != " << network->type(); | 486 << " " << type << " != " << network->type(); |
| 490 return true; | 487 return true; |
| 491 } | 488 } |
| 492 break; | 489 break; |
| 493 } | 490 } |
| 494 case PROPERTY_INDEX_DEVICE: { | 491 case PROPERTY_INDEX_DEVICE: { |
| 495 std::string device_path; | 492 std::string device_path; |
| 496 if (!value.GetAsString(&device_path)) | 493 if (!value->GetAsString(&device_path)) |
| 497 return false; | 494 return false; |
| 498 network->set_device_path(device_path); | 495 network->set_device_path(device_path); |
| 499 return true; | 496 return true; |
| 500 } | 497 } |
| 501 case PROPERTY_INDEX_NAME: { | 498 case PROPERTY_INDEX_NAME: { |
| 502 std::string name; | 499 std::string name; |
| 503 if (!value.GetAsString(&name)) | 500 if (!value->GetAsString(&name)) |
| 504 return false; | 501 return false; |
| 505 network->SetName(name); | 502 network->SetName(name); |
| 506 return true; | 503 return true; |
| 507 } | 504 } |
| 508 case PROPERTY_INDEX_GUID: { | 505 case PROPERTY_INDEX_GUID: { |
| 509 std::string unique_id; | 506 std::string unique_id; |
| 510 if (!value.GetAsString(&unique_id)) | 507 if (!value->GetAsString(&unique_id)) |
| 511 return false; | 508 return false; |
| 512 network->set_unique_id(unique_id); | 509 network->set_unique_id(unique_id); |
| 513 return true; | 510 return true; |
| 514 } | 511 } |
| 515 case PROPERTY_INDEX_PROFILE: { | 512 case PROPERTY_INDEX_PROFILE: { |
| 516 // Note: currently this is only provided for non remembered networks. | 513 // Note: currently this is only provided for non remembered networks. |
| 517 std::string profile_path; | 514 std::string profile_path; |
| 518 if (!value.GetAsString(&profile_path)) | 515 if (!value->GetAsString(&profile_path)) |
| 519 return false; | 516 return false; |
| 520 network->set_profile_path(profile_path); | 517 network->set_profile_path(profile_path); |
| 521 return true; | 518 return true; |
| 522 } | 519 } |
| 523 case PROPERTY_INDEX_STATE: { | 520 case PROPERTY_INDEX_STATE: { |
| 524 std::string state_string; | 521 std::string state_string; |
| 525 if (value.GetAsString(&state_string)) { | 522 if (value->GetAsString(&state_string)) { |
| 526 network->SetState(ParseState(state_string)); | 523 network->SetState(ParseState(state_string)); |
| 527 return true; | 524 return true; |
| 528 } | 525 } |
| 529 break; | 526 break; |
| 530 } | 527 } |
| 531 case PROPERTY_INDEX_MODE: { | 528 case PROPERTY_INDEX_MODE: { |
| 532 std::string mode_string; | 529 std::string mode_string; |
| 533 if (value.GetAsString(&mode_string)) { | 530 if (value->GetAsString(&mode_string)) { |
| 534 network->set_mode(ParseMode(mode_string)); | 531 network->set_mode(ParseMode(mode_string)); |
| 535 return true; | 532 return true; |
| 536 } | 533 } |
| 537 break; | 534 break; |
| 538 } | 535 } |
| 539 case PROPERTY_INDEX_ERROR: { | 536 case PROPERTY_INDEX_ERROR: { |
| 540 std::string error_string; | 537 std::string error_string; |
| 541 if (value.GetAsString(&error_string)) { | 538 if (value->GetAsString(&error_string)) { |
| 542 network->set_error(ParseError(error_string)); | 539 network->set_error(ParseError(error_string)); |
| 543 return true; | 540 return true; |
| 544 } | 541 } |
| 545 break; | 542 break; |
| 546 } | 543 } |
| 547 case PROPERTY_INDEX_CONNECTABLE: { | 544 case PROPERTY_INDEX_CONNECTABLE: { |
| 548 bool connectable; | 545 bool connectable; |
| 549 if (!value.GetAsBoolean(&connectable)) | 546 if (!value->GetAsBoolean(&connectable)) |
| 550 return false; | 547 return false; |
| 551 network->set_connectable(connectable); | 548 network->set_connectable(connectable); |
| 552 return true; | 549 return true; |
| 553 } | 550 } |
| 554 case PROPERTY_INDEX_IS_ACTIVE: { | 551 case PROPERTY_INDEX_IS_ACTIVE: { |
| 555 bool is_active; | 552 bool is_active; |
| 556 if (!value.GetAsBoolean(&is_active)) | 553 if (!value->GetAsBoolean(&is_active)) |
| 557 return false; | 554 return false; |
| 558 network->set_is_active(is_active); | 555 network->set_is_active(is_active); |
| 559 return true; | 556 return true; |
| 560 } | 557 } |
| 561 case PROPERTY_INDEX_FAVORITE: | 558 case PROPERTY_INDEX_FAVORITE: |
| 562 // This property is ignored. | 559 // This property is ignored. |
| 563 return true; | 560 return true; |
| 564 case PROPERTY_INDEX_AUTO_CONNECT: { | 561 case PROPERTY_INDEX_AUTO_CONNECT: { |
| 565 bool auto_connect; | 562 bool auto_connect; |
| 566 if (!value.GetAsBoolean(&auto_connect)) | 563 if (!value->GetAsBoolean(&auto_connect)) |
| 567 return false; | 564 return false; |
| 568 network->set_auto_connect(auto_connect); | 565 network->set_auto_connect(auto_connect); |
| 569 return true; | 566 return true; |
| 570 } | 567 } |
| 571 case PROPERTY_INDEX_SAVE_CREDENTIALS: { | 568 case PROPERTY_INDEX_SAVE_CREDENTIALS: { |
| 572 bool save_credentials; | 569 bool save_credentials; |
| 573 if (!value.GetAsBoolean(&save_credentials)) | 570 if (!value->GetAsBoolean(&save_credentials)) |
| 574 return false; | 571 return false; |
| 575 network->set_save_credentials(save_credentials); | 572 network->set_save_credentials(save_credentials); |
| 576 return true; | 573 return true; |
| 577 } | 574 } |
| 578 case PROPERTY_INDEX_PROXY_CONFIG: { | 575 case PROPERTY_INDEX_PROXY_CONFIG: { |
| 579 std::string proxy_config; | 576 std::string proxy_config; |
| 580 if (!value.GetAsString(&proxy_config)) | 577 if (!value->GetAsString(&proxy_config)) |
| 581 return false; | 578 return false; |
| 582 network->set_proxy_config(proxy_config); | 579 network->set_proxy_config(proxy_config); |
| 583 return true; | 580 return true; |
| 584 } | 581 } |
| 585 default: | 582 default: |
| 586 break; | 583 break; |
| 587 } | 584 } |
| 588 return false; | 585 return false; |
| 589 } | 586 } |
| 590 | 587 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 653 | 650 |
| 654 NativeEthernetNetworkParser::NativeEthernetNetworkParser() {} | 651 NativeEthernetNetworkParser::NativeEthernetNetworkParser() {} |
| 655 NativeEthernetNetworkParser::~NativeEthernetNetworkParser() {} | 652 NativeEthernetNetworkParser::~NativeEthernetNetworkParser() {} |
| 656 | 653 |
| 657 // -------------------- NativeWirelessNetworkParser -------------------- | 654 // -------------------- NativeWirelessNetworkParser -------------------- |
| 658 | 655 |
| 659 NativeWirelessNetworkParser::NativeWirelessNetworkParser() {} | 656 NativeWirelessNetworkParser::NativeWirelessNetworkParser() {} |
| 660 NativeWirelessNetworkParser::~NativeWirelessNetworkParser() {} | 657 NativeWirelessNetworkParser::~NativeWirelessNetworkParser() {} |
| 661 | 658 |
| 662 bool NativeWirelessNetworkParser::ParseValue(PropertyIndex index, | 659 bool NativeWirelessNetworkParser::ParseValue(PropertyIndex index, |
| 663 const Value& value, | 660 Value* value, |
| 664 Network* network) { | 661 Network* network) { |
| 665 DCHECK_NE(TYPE_ETHERNET, network->type()); | 662 DCHECK_NE(TYPE_ETHERNET, network->type()); |
| 666 DCHECK_NE(TYPE_VPN, network->type()); | 663 DCHECK_NE(TYPE_VPN, network->type()); |
| 667 WirelessNetwork* wireless_network = static_cast<WirelessNetwork*>(network); | 664 WirelessNetwork* wireless_network = static_cast<WirelessNetwork*>(network); |
| 668 switch (index) { | 665 switch (index) { |
| 669 case PROPERTY_INDEX_SIGNAL_STRENGTH: { | 666 case PROPERTY_INDEX_SIGNAL_STRENGTH: { |
| 670 int strength; | 667 int strength; |
| 671 if (!value.GetAsInteger(&strength)) | 668 if (!value->GetAsInteger(&strength)) |
| 672 return false; | 669 return false; |
| 673 wireless_network->set_strength(strength); | 670 wireless_network->set_strength(strength); |
| 674 return true; | 671 return true; |
| 675 } | 672 } |
| 676 default: | 673 default: |
| 677 return NativeNetworkParser::ParseValue(index, value, network); | 674 return NativeNetworkParser::ParseValue(index, value, network); |
| 678 break; | 675 break; |
| 679 } | 676 } |
| 680 return false; | 677 return false; |
| 681 } | 678 } |
| 682 | 679 |
| 683 // -------------------- NativeCellularNetworkParser -------------------- | 680 // -------------------- NativeCellularNetworkParser -------------------- |
| 684 | 681 |
| 685 NativeCellularNetworkParser::NativeCellularNetworkParser() {} | 682 NativeCellularNetworkParser::NativeCellularNetworkParser() {} |
| 686 NativeCellularNetworkParser::~NativeCellularNetworkParser() {} | 683 NativeCellularNetworkParser::~NativeCellularNetworkParser() {} |
| 687 | 684 |
| 688 bool NativeCellularNetworkParser::ParseValue(PropertyIndex index, | 685 bool NativeCellularNetworkParser::ParseValue(PropertyIndex index, |
| 689 const Value& value, | 686 Value* value, |
| 690 Network* network) { | 687 Network* network) { |
| 691 DCHECK_EQ(TYPE_CELLULAR, network->type()); | 688 DCHECK_EQ(TYPE_CELLULAR, network->type()); |
| 692 CellularNetwork* cellular_network = static_cast<CellularNetwork*>(network); | 689 CellularNetwork* cellular_network = static_cast<CellularNetwork*>(network); |
| 693 switch (index) { | 690 switch (index) { |
| 694 case PROPERTY_INDEX_ACTIVATION_STATE: { | 691 case PROPERTY_INDEX_ACTIVATION_STATE: { |
| 695 std::string activation_state_string; | 692 std::string activation_state_string; |
| 696 if (value.GetAsString(&activation_state_string)) { | 693 if (value->GetAsString(&activation_state_string)) { |
| 697 ActivationState prev_state = cellular_network->activation_state(); | 694 ActivationState prev_state = cellular_network->activation_state(); |
| 698 cellular_network->set_activation_state( | 695 cellular_network->set_activation_state( |
| 699 ParseActivationState(activation_state_string)); | 696 ParseActivationState(activation_state_string)); |
| 700 if (cellular_network->activation_state() != prev_state) | 697 if (cellular_network->activation_state() != prev_state) |
| 701 cellular_network->RefreshDataPlansIfNeeded(); | 698 cellular_network->RefreshDataPlansIfNeeded(); |
| 702 return true; | 699 return true; |
| 703 } | 700 } |
| 704 break; | 701 break; |
| 705 } | 702 } |
| 706 case PROPERTY_INDEX_CELLULAR_APN: { | 703 case PROPERTY_INDEX_CELLULAR_APN: { |
| 707 if (value.IsType(Value::TYPE_DICTIONARY)) { | 704 if (value->IsType(Value::TYPE_DICTIONARY)) { |
| 708 cellular_network->set_apn(static_cast<const DictionaryValue&>(value)); | 705 cellular_network->set_apn(static_cast<const DictionaryValue&>(*value)); |
| 709 return true; | 706 return true; |
| 710 } | 707 } |
| 711 break; | 708 break; |
| 712 } | 709 } |
| 713 case PROPERTY_INDEX_CELLULAR_LAST_GOOD_APN: { | 710 case PROPERTY_INDEX_CELLULAR_LAST_GOOD_APN: { |
| 714 if (value.IsType(Value::TYPE_DICTIONARY)) { | 711 if (value->IsType(Value::TYPE_DICTIONARY)) { |
| 715 cellular_network->set_last_good_apn( | 712 cellular_network->set_last_good_apn( |
| 716 static_cast<const DictionaryValue&>(value)); | 713 static_cast<const DictionaryValue&>(*value)); |
| 717 return true; | 714 return true; |
| 718 } | 715 } |
| 719 break; | 716 break; |
| 720 } | 717 } |
| 721 case PROPERTY_INDEX_NETWORK_TECHNOLOGY: { | 718 case PROPERTY_INDEX_NETWORK_TECHNOLOGY: { |
| 722 std::string network_technology_string; | 719 std::string network_technology_string; |
| 723 if (value.GetAsString(&network_technology_string)) { | 720 if (value->GetAsString(&network_technology_string)) { |
| 724 cellular_network->set_network_technology( | 721 cellular_network->set_network_technology( |
| 725 ParseNetworkTechnology(network_technology_string)); | 722 ParseNetworkTechnology(network_technology_string)); |
| 726 return true; | 723 return true; |
| 727 } | 724 } |
| 728 break; | 725 break; |
| 729 } | 726 } |
| 730 case PROPERTY_INDEX_ROAMING_STATE: { | 727 case PROPERTY_INDEX_ROAMING_STATE: { |
| 731 std::string roaming_state_string; | 728 std::string roaming_state_string; |
| 732 if (value.GetAsString(&roaming_state_string)) { | 729 if (value->GetAsString(&roaming_state_string)) { |
| 733 cellular_network->set_roaming_state( | 730 cellular_network->set_roaming_state( |
| 734 ParseRoamingState(roaming_state_string)); | 731 ParseRoamingState(roaming_state_string)); |
| 735 return true; | 732 return true; |
| 736 } | 733 } |
| 737 break; | 734 break; |
| 738 } | 735 } |
| 739 case PROPERTY_INDEX_OPERATOR_NAME: { | 736 case PROPERTY_INDEX_OPERATOR_NAME: { |
| 740 std::string value_str; | 737 std::string value_str; |
| 741 if (!value.GetAsString(&value_str)) | 738 if (!value->GetAsString(&value_str)) |
| 742 break; | 739 break; |
| 743 cellular_network->set_operator_name(value_str); | 740 cellular_network->set_operator_name(value_str); |
| 744 return true; | 741 return true; |
| 745 } | 742 } |
| 746 case PROPERTY_INDEX_OPERATOR_CODE: { | 743 case PROPERTY_INDEX_OPERATOR_CODE: { |
| 747 std::string value_str; | 744 std::string value_str; |
| 748 if (!value.GetAsString(&value_str)) | 745 if (!value->GetAsString(&value_str)) |
| 749 break; | 746 break; |
| 750 cellular_network->set_operator_code(value_str); | 747 cellular_network->set_operator_code(value_str); |
| 751 return true; | 748 return true; |
| 752 } | 749 } |
| 753 case PROPERTY_INDEX_SERVING_OPERATOR: { | 750 case PROPERTY_INDEX_SERVING_OPERATOR: { |
| 754 if (value.IsType(Value::TYPE_DICTIONARY)) { | 751 if (value->IsType(Value::TYPE_DICTIONARY)) { |
| 755 const DictionaryValue& dict = | 752 const DictionaryValue& dict = |
| 756 static_cast<const DictionaryValue&>(value); | 753 static_cast<const DictionaryValue&>(*value); |
| 757 std::string value_str; | 754 std::string value_str; |
| 758 dict.GetStringWithoutPathExpansion(kOperatorNameKey, &value_str); | 755 dict.GetStringWithoutPathExpansion(kOperatorNameKey, &value_str); |
| 759 cellular_network->set_operator_name(value_str); | 756 cellular_network->set_operator_name(value_str); |
| 760 value_str.clear(); | 757 value_str.clear(); |
| 761 dict.GetStringWithoutPathExpansion(kOperatorCodeKey, &value_str); | 758 dict.GetStringWithoutPathExpansion(kOperatorCodeKey, &value_str); |
| 762 cellular_network->set_operator_code(value_str); | 759 cellular_network->set_operator_code(value_str); |
| 763 value_str.clear(); | 760 value_str.clear(); |
| 764 dict.GetStringWithoutPathExpansion(kOperatorCountryKey, &value_str); | 761 dict.GetStringWithoutPathExpansion(kOperatorCountryKey, &value_str); |
| 765 cellular_network->set_operator_country(value_str); | 762 cellular_network->set_operator_country(value_str); |
| 766 return true; | 763 return true; |
| 767 } | 764 } |
| 768 break; | 765 break; |
| 769 } | 766 } |
| 770 case PROPERTY_INDEX_PAYMENT_URL: { | 767 case PROPERTY_INDEX_PAYMENT_URL: { |
| 771 std::string value_str; | 768 std::string value_str; |
| 772 if (!value.GetAsString(&value_str)) | 769 if (!value->GetAsString(&value_str)) |
| 773 break; | 770 break; |
| 774 cellular_network->set_payment_url(value_str); | 771 cellular_network->set_payment_url(value_str); |
| 775 return true; | 772 return true; |
| 776 } | 773 } |
| 777 case PROPERTY_INDEX_USAGE_URL: { | 774 case PROPERTY_INDEX_USAGE_URL: { |
| 778 std::string value_str; | 775 std::string value_str; |
| 779 if (!value.GetAsString(&value_str)) | 776 if (!value->GetAsString(&value_str)) |
| 780 break; | 777 break; |
| 781 cellular_network->set_usage_url(value_str); | 778 cellular_network->set_usage_url(value_str); |
| 782 return true; | 779 return true; |
| 783 } | 780 } |
| 784 case PROPERTY_INDEX_STATE: { | 781 case PROPERTY_INDEX_STATE: { |
| 785 // Save previous state before calling WirelessNetwork::ParseValue. | 782 // Save previous state before calling WirelessNetwork::ParseValue. |
| 786 ConnectionState prev_state = cellular_network->state(); | 783 ConnectionState prev_state = cellular_network->state(); |
| 787 if (NativeWirelessNetworkParser::ParseValue(index, value, network)) { | 784 if (NativeWirelessNetworkParser::ParseValue(index, value, network)) { |
| 788 if (cellular_network->state() != prev_state) | 785 if (cellular_network->state() != prev_state) |
| 789 cellular_network->RefreshDataPlansIfNeeded(); | 786 cellular_network->RefreshDataPlansIfNeeded(); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 table, arraysize(table), ROAMING_STATE_UNKNOWN); | 838 table, arraysize(table), ROAMING_STATE_UNKNOWN); |
| 842 return parser.Get(roaming_state); | 839 return parser.Get(roaming_state); |
| 843 } | 840 } |
| 844 | 841 |
| 845 // -------------------- NativeWifiNetworkParser -------------------- | 842 // -------------------- NativeWifiNetworkParser -------------------- |
| 846 | 843 |
| 847 NativeWifiNetworkParser::NativeWifiNetworkParser() {} | 844 NativeWifiNetworkParser::NativeWifiNetworkParser() {} |
| 848 NativeWifiNetworkParser::~NativeWifiNetworkParser() {} | 845 NativeWifiNetworkParser::~NativeWifiNetworkParser() {} |
| 849 | 846 |
| 850 bool NativeWifiNetworkParser::ParseValue(PropertyIndex index, | 847 bool NativeWifiNetworkParser::ParseValue(PropertyIndex index, |
| 851 const Value& value, | 848 Value* value, |
| 852 Network* network) { | 849 Network* network) { |
| 853 DCHECK_EQ(TYPE_WIFI, network->type()); | 850 DCHECK_EQ(TYPE_WIFI, network->type()); |
| 854 WifiNetwork* wifi_network = static_cast<WifiNetwork*>(network); | 851 WifiNetwork* wifi_network = static_cast<WifiNetwork*>(network); |
| 855 switch (index) { | 852 switch (index) { |
| 856 case PROPERTY_INDEX_WIFI_HEX_SSID: { | 853 case PROPERTY_INDEX_WIFI_HEX_SSID: { |
| 857 std::string ssid_hex; | 854 std::string ssid_hex; |
| 858 if (!value.GetAsString(&ssid_hex)) | 855 if (!value->GetAsString(&ssid_hex)) |
| 859 return false; | 856 return false; |
| 860 | 857 |
| 861 wifi_network->SetHexSsid(ssid_hex); | 858 wifi_network->SetHexSsid(ssid_hex); |
| 862 return true; | 859 return true; |
| 863 } | 860 } |
| 864 case PROPERTY_INDEX_WIFI_AUTH_MODE: | 861 case PROPERTY_INDEX_WIFI_AUTH_MODE: |
| 865 case PROPERTY_INDEX_WIFI_PHY_MODE: | 862 case PROPERTY_INDEX_WIFI_PHY_MODE: |
| 866 case PROPERTY_INDEX_WIFI_HIDDEN_SSID: | 863 case PROPERTY_INDEX_WIFI_HIDDEN_SSID: |
| 867 case PROPERTY_INDEX_WIFI_FREQUENCY: | 864 case PROPERTY_INDEX_WIFI_FREQUENCY: |
| 868 // These properties are currently not used in the UI. | 865 // These properties are currently not used in the UI. |
| 869 return true; | 866 return true; |
| 870 case PROPERTY_INDEX_NAME: { | 867 case PROPERTY_INDEX_NAME: { |
| 871 // Does not change network name when it was already set by WiFi.HexSSID. | 868 // Does not change network name when it was already set by WiFi.HexSSID. |
| 872 if (!wifi_network->name().empty()) | 869 if (!wifi_network->name().empty()) |
| 873 return true; | 870 return true; |
| 874 else | 871 else |
| 875 return NativeWirelessNetworkParser::ParseValue(index, value, network); | 872 return NativeWirelessNetworkParser::ParseValue(index, value, network); |
| 876 } | 873 } |
| 877 case PROPERTY_INDEX_GUID: { | 874 case PROPERTY_INDEX_GUID: { |
| 878 std::string unique_id; | 875 std::string unique_id; |
| 879 if (!value.GetAsString(&unique_id)) | 876 if (!value->GetAsString(&unique_id)) |
| 880 break; | 877 break; |
| 881 wifi_network->set_unique_id(unique_id); | 878 wifi_network->set_unique_id(unique_id); |
| 882 return true; | 879 return true; |
| 883 } | 880 } |
| 884 case PROPERTY_INDEX_SECURITY: { | 881 case PROPERTY_INDEX_SECURITY: { |
| 885 std::string security_string; | 882 std::string security_string; |
| 886 if (!value.GetAsString(&security_string)) | 883 if (!value->GetAsString(&security_string)) |
| 887 break; | 884 break; |
| 888 wifi_network->set_encryption(ParseSecurity(security_string)); | 885 wifi_network->set_encryption(ParseSecurity(security_string)); |
| 889 return true; | 886 return true; |
| 890 } | 887 } |
| 891 case PROPERTY_INDEX_PASSPHRASE: { | 888 case PROPERTY_INDEX_PASSPHRASE: { |
| 892 std::string passphrase; | 889 std::string passphrase; |
| 893 if (!value.GetAsString(&passphrase)) | 890 if (!value->GetAsString(&passphrase)) |
| 894 break; | 891 break; |
| 895 // Only store the passphrase if we are the owner. | 892 // Only store the passphrase if we are the owner. |
| 896 // TODO(stevenjb): Remove this when chromium-os:12948 is resolved. | 893 // TODO(stevenjb): Remove this when chromium-os:12948 is resolved. |
| 897 if (chromeos::UserManager::Get()->current_user_is_owner()) | 894 if (chromeos::UserManager::Get()->current_user_is_owner()) |
| 898 wifi_network->set_passphrase(passphrase); | 895 wifi_network->set_passphrase(passphrase); |
| 899 return true; | 896 return true; |
| 900 } | 897 } |
| 901 case PROPERTY_INDEX_PASSPHRASE_REQUIRED: { | 898 case PROPERTY_INDEX_PASSPHRASE_REQUIRED: { |
| 902 bool passphrase_required; | 899 bool passphrase_required; |
| 903 value.GetAsBoolean(&passphrase_required); | 900 value->GetAsBoolean(&passphrase_required); |
| 904 if (!value.GetAsBoolean(&passphrase_required)) | 901 if (!value->GetAsBoolean(&passphrase_required)) |
| 905 break; | 902 break; |
| 906 wifi_network->set_passphrase_required(passphrase_required); | 903 wifi_network->set_passphrase_required(passphrase_required); |
| 907 return true; | 904 return true; |
| 908 } | 905 } |
| 909 case PROPERTY_INDEX_IDENTITY: { | 906 case PROPERTY_INDEX_IDENTITY: { |
| 910 std::string identity; | 907 std::string identity; |
| 911 if (!value.GetAsString(&identity)) | 908 if (!value->GetAsString(&identity)) |
| 912 break; | 909 break; |
| 913 wifi_network->set_identity(identity); | 910 wifi_network->set_identity(identity); |
| 914 return true; | 911 return true; |
| 915 } | 912 } |
| 916 case PROPERTY_INDEX_EAP_IDENTITY: { | 913 case PROPERTY_INDEX_EAP_IDENTITY: { |
| 917 std::string eap_identity; | 914 std::string eap_identity; |
| 918 if (!value.GetAsString(&eap_identity)) | 915 if (!value->GetAsString(&eap_identity)) |
| 919 break; | 916 break; |
| 920 wifi_network->set_eap_identity(eap_identity); | 917 wifi_network->set_eap_identity(eap_identity); |
| 921 return true; | 918 return true; |
| 922 } | 919 } |
| 923 case PROPERTY_INDEX_EAP_METHOD: { | 920 case PROPERTY_INDEX_EAP_METHOD: { |
| 924 std::string eap_method; | 921 std::string eap_method; |
| 925 if (!value.GetAsString(&eap_method)) | 922 if (!value->GetAsString(&eap_method)) |
| 926 break; | 923 break; |
| 927 wifi_network->set_eap_method(ParseEAPMethod(eap_method)); | 924 wifi_network->set_eap_method(ParseEAPMethod(eap_method)); |
| 928 return true; | 925 return true; |
| 929 } | 926 } |
| 930 case PROPERTY_INDEX_EAP_PHASE_2_AUTH: { | 927 case PROPERTY_INDEX_EAP_PHASE_2_AUTH: { |
| 931 std::string eap_phase_2_auth; | 928 std::string eap_phase_2_auth; |
| 932 if (!value.GetAsString(&eap_phase_2_auth)) | 929 if (!value->GetAsString(&eap_phase_2_auth)) |
| 933 break; | 930 break; |
| 934 wifi_network->set_eap_phase_2_auth(ParseEAPPhase2Auth(eap_phase_2_auth)); | 931 wifi_network->set_eap_phase_2_auth(ParseEAPPhase2Auth(eap_phase_2_auth)); |
| 935 return true; | 932 return true; |
| 936 } | 933 } |
| 937 case PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY: { | 934 case PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY: { |
| 938 std::string eap_anonymous_identity; | 935 std::string eap_anonymous_identity; |
| 939 if (!value.GetAsString(&eap_anonymous_identity)) | 936 if (!value->GetAsString(&eap_anonymous_identity)) |
| 940 break; | 937 break; |
| 941 wifi_network->set_eap_anonymous_identity(eap_anonymous_identity); | 938 wifi_network->set_eap_anonymous_identity(eap_anonymous_identity); |
| 942 return true; | 939 return true; |
| 943 } | 940 } |
| 944 case PROPERTY_INDEX_EAP_CERT_ID: { | 941 case PROPERTY_INDEX_EAP_CERT_ID: { |
| 945 std::string eap_client_cert_pkcs11_id; | 942 std::string eap_client_cert_pkcs11_id; |
| 946 if (!value.GetAsString(&eap_client_cert_pkcs11_id)) | 943 if (!value->GetAsString(&eap_client_cert_pkcs11_id)) |
| 947 break; | 944 break; |
| 948 wifi_network->set_eap_client_cert_pkcs11_id(eap_client_cert_pkcs11_id); | 945 wifi_network->set_eap_client_cert_pkcs11_id(eap_client_cert_pkcs11_id); |
| 949 return true; | 946 return true; |
| 950 } | 947 } |
| 951 case PROPERTY_INDEX_EAP_CA_CERT_NSS: { | 948 case PROPERTY_INDEX_EAP_CA_CERT_NSS: { |
| 952 std::string eap_server_ca_cert_nss_nickname; | 949 std::string eap_server_ca_cert_nss_nickname; |
| 953 if (!value.GetAsString(&eap_server_ca_cert_nss_nickname)) | 950 if (!value->GetAsString(&eap_server_ca_cert_nss_nickname)) |
| 954 break; | 951 break; |
| 955 wifi_network->set_eap_server_ca_cert_nss_nickname( | 952 wifi_network->set_eap_server_ca_cert_nss_nickname( |
| 956 eap_server_ca_cert_nss_nickname); | 953 eap_server_ca_cert_nss_nickname); |
| 957 return true; | 954 return true; |
| 958 } | 955 } |
| 959 case PROPERTY_INDEX_EAP_USE_SYSTEM_CAS: { | 956 case PROPERTY_INDEX_EAP_USE_SYSTEM_CAS: { |
| 960 bool eap_use_system_cas; | 957 bool eap_use_system_cas; |
| 961 if (!value.GetAsBoolean(&eap_use_system_cas)) | 958 if (!value->GetAsBoolean(&eap_use_system_cas)) |
| 962 break; | 959 break; |
| 963 wifi_network->set_eap_use_system_cas(eap_use_system_cas); | 960 wifi_network->set_eap_use_system_cas(eap_use_system_cas); |
| 964 return true; | 961 return true; |
| 965 } | 962 } |
| 966 case PROPERTY_INDEX_EAP_PASSWORD: { | 963 case PROPERTY_INDEX_EAP_PASSWORD: { |
| 967 std::string eap_passphrase; | 964 std::string eap_passphrase; |
| 968 if (!value.GetAsString(&eap_passphrase)) | 965 if (!value->GetAsString(&eap_passphrase)) |
| 969 break; | 966 break; |
| 970 wifi_network->set_eap_passphrase(eap_passphrase); | 967 wifi_network->set_eap_passphrase(eap_passphrase); |
| 971 return true; | 968 return true; |
| 972 } | 969 } |
| 973 case PROPERTY_INDEX_EAP_CLIENT_CERT: | 970 case PROPERTY_INDEX_EAP_CLIENT_CERT: |
| 974 case PROPERTY_INDEX_EAP_CLIENT_CERT_NSS: | 971 case PROPERTY_INDEX_EAP_CLIENT_CERT_NSS: |
| 975 case PROPERTY_INDEX_EAP_PRIVATE_KEY: | 972 case PROPERTY_INDEX_EAP_PRIVATE_KEY: |
| 976 case PROPERTY_INDEX_EAP_PRIVATE_KEY_PASSWORD: | 973 case PROPERTY_INDEX_EAP_PRIVATE_KEY_PASSWORD: |
| 977 case PROPERTY_INDEX_EAP_KEY_ID: | 974 case PROPERTY_INDEX_EAP_KEY_ID: |
| 978 case PROPERTY_INDEX_EAP_CA_CERT: | 975 case PROPERTY_INDEX_EAP_CA_CERT: |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1048 << " Type: " | 1045 << " Type: " |
| 1049 << ProviderTypeToString(virtual_network->provider_type()); | 1046 << ProviderTypeToString(virtual_network->provider_type()); |
| 1050 if (virtual_network->provider_type() == PROVIDER_TYPE_L2TP_IPSEC_PSK) { | 1047 if (virtual_network->provider_type() == PROVIDER_TYPE_L2TP_IPSEC_PSK) { |
| 1051 if (!virtual_network->client_cert_id().empty()) | 1048 if (!virtual_network->client_cert_id().empty()) |
| 1052 virtual_network->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_USER_CERT); | 1049 virtual_network->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_USER_CERT); |
| 1053 } | 1050 } |
| 1054 return true; | 1051 return true; |
| 1055 } | 1052 } |
| 1056 | 1053 |
| 1057 bool NativeVirtualNetworkParser::ParseValue(PropertyIndex index, | 1054 bool NativeVirtualNetworkParser::ParseValue(PropertyIndex index, |
| 1058 const Value& value, | 1055 Value* value, |
| 1059 Network* network) { | 1056 Network* network) { |
| 1060 DCHECK_EQ(TYPE_VPN, network->type()); | 1057 DCHECK_EQ(TYPE_VPN, network->type()); |
| 1061 VirtualNetwork* virtual_network = static_cast<VirtualNetwork*>(network); | 1058 VirtualNetwork* virtual_network = static_cast<VirtualNetwork*>(network); |
| 1062 switch (index) { | 1059 switch (index) { |
| 1063 case PROPERTY_INDEX_PROVIDER: { | 1060 case PROPERTY_INDEX_PROVIDER: { |
| 1064 DCHECK_EQ(value.GetType(), Value::TYPE_DICTIONARY); | 1061 DCHECK_EQ(value->GetType(), Value::TYPE_DICTIONARY); |
| 1065 const DictionaryValue& dict = static_cast<const DictionaryValue&>(value); | 1062 const DictionaryValue& dict = static_cast<const DictionaryValue&>(*value); |
| 1066 for (DictionaryValue::key_iterator iter = dict.begin_keys(); | 1063 for (DictionaryValue::key_iterator iter = dict.begin_keys(); |
| 1067 iter != dict.end_keys(); ++iter) { | 1064 iter != dict.end_keys(); ++iter) { |
| 1068 const std::string& key = *iter; | 1065 const std::string& key = *iter; |
| 1069 Value* provider_value; | 1066 Value* provider_value; |
| 1070 bool res = dict.GetWithoutPathExpansion(key, &provider_value); | 1067 bool res = dict.GetWithoutPathExpansion(key, &provider_value); |
| 1071 DCHECK(res); | 1068 DCHECK(res); |
| 1072 if (res) { | 1069 if (res) { |
| 1073 PropertyIndex index = mapper().Get(key); | 1070 PropertyIndex index = mapper().Get(key); |
| 1074 if (!ParseProviderValue(index, *provider_value, virtual_network)) | 1071 if (!ParseProviderValue(index, *provider_value, virtual_network)) |
| 1075 VLOG(1) << network->name() << ": Provider unhandled key: " << key | 1072 VLOG(1) << network->name() << ": Provider unhandled key: " << key |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 static EnumMapper<ProviderType>::Pair table[] = { | 1153 static EnumMapper<ProviderType>::Pair table[] = { |
| 1157 { kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK }, | 1154 { kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK }, |
| 1158 { kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN }, | 1155 { kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN }, |
| 1159 }; | 1156 }; |
| 1160 static EnumMapper<ProviderType> parser( | 1157 static EnumMapper<ProviderType> parser( |
| 1161 table, arraysize(table), PROVIDER_TYPE_MAX); | 1158 table, arraysize(table), PROVIDER_TYPE_MAX); |
| 1162 return parser.Get(type); | 1159 return parser.Get(type); |
| 1163 } | 1160 } |
| 1164 | 1161 |
| 1165 } // namespace chromeos | 1162 } // namespace chromeos |
| OLD | NEW |