| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chromeos/network/onc/onc_signature.h" | 5 #include "chromeos/network/onc/onc_signature.h" |
| 6 | 6 |
| 7 #include "components/onc/onc_constants.h" | 7 #include "components/onc/onc_constants.h" |
| 8 #include "third_party/cros_system_api/dbus/service_constants.h" | 8 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 9 | 9 |
| 10 using base::Value; | 10 using base::Value; |
| 11 | 11 |
| 12 namespace chromeos { | 12 namespace chromeos { |
| 13 namespace onc { | 13 namespace onc { |
| 14 namespace { | 14 namespace { |
| 15 | 15 |
| 16 const OncValueSignature kBoolSignature = { | 16 const OncValueSignature kBoolSignature = { |
| 17 base::Value::TYPE_BOOLEAN, NULL | 17 base::Value::TYPE_BOOLEAN, NULL |
| 18 }; | 18 }; |
| 19 const OncValueSignature kStringSignature = { | 19 const OncValueSignature kStringSignature = { |
| 20 base::Value::TYPE_STRING, NULL | 20 base::Value::TYPE_STRING, NULL |
| 21 }; | 21 }; |
| 22 const OncValueSignature kIntegerSignature = { | 22 const OncValueSignature kIntegerSignature = { |
| 23 base::Value::TYPE_INTEGER, NULL | 23 base::Value::TYPE_INTEGER, NULL |
| 24 }; | 24 }; |
| 25 const OncValueSignature kDoubleSignature = { |
| 26 base::Value::TYPE_DOUBLE, NULL |
| 27 }; |
| 25 const OncValueSignature kStringListSignature = { | 28 const OncValueSignature kStringListSignature = { |
| 26 base::Value::TYPE_LIST, NULL, &kStringSignature | 29 base::Value::TYPE_LIST, NULL, &kStringSignature |
| 27 }; | 30 }; |
| 28 const OncValueSignature kIntegerListSignature = { | 31 const OncValueSignature kIntegerListSignature = { |
| 29 base::Value::TYPE_LIST, NULL, &kIntegerSignature | 32 base::Value::TYPE_LIST, NULL, &kIntegerSignature |
| 30 }; | 33 }; |
| 31 const OncValueSignature kIPConfigListSignature = { | 34 const OncValueSignature kIPConfigListSignature = { |
| 32 base::Value::TYPE_LIST, NULL, &kIPConfigSignature | 35 base::Value::TYPE_LIST, NULL, &kIPConfigSignature |
| 33 }; | 36 }; |
| 34 const OncValueSignature kCellularApnListSignature = { | 37 const OncValueSignature kCellularApnListSignature = { |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 { ::onc::cellular_provider::kCountry, &kStringSignature}, | 218 { ::onc::cellular_provider::kCountry, &kStringSignature}, |
| 216 { ::onc::cellular_provider::kName, &kStringSignature}, | 219 { ::onc::cellular_provider::kName, &kStringSignature}, |
| 217 {NULL}}; | 220 {NULL}}; |
| 218 | 221 |
| 219 const OncFieldSignature cellular_apn_fields[] = { | 222 const OncFieldSignature cellular_apn_fields[] = { |
| 220 { ::onc::cellular_apn::kName, &kStringSignature}, | 223 { ::onc::cellular_apn::kName, &kStringSignature}, |
| 221 { ::onc::cellular_apn::kUsername, &kStringSignature}, | 224 { ::onc::cellular_apn::kUsername, &kStringSignature}, |
| 222 { ::onc::cellular_apn::kPassword, &kStringSignature}, | 225 { ::onc::cellular_apn::kPassword, &kStringSignature}, |
| 223 {NULL}}; | 226 {NULL}}; |
| 224 | 227 |
| 228 const OncFieldSignature sim_lock_status_fields[] = { |
| 229 { ::onc::sim_lock_status::kLockEnabled, &kBoolSignature}, |
| 230 { ::onc::sim_lock_status::kLockType, &kStringSignature}, |
| 231 { ::onc::sim_lock_status::kRetriesLeft, &kDoubleSignature}, |
| 232 {NULL}}; |
| 233 |
| 225 const OncFieldSignature cellular_fields[] = { | 234 const OncFieldSignature cellular_fields[] = { |
| 226 { ::onc::kRecommended, &kRecommendedSignature}, | 235 { ::onc::kRecommended, &kRecommendedSignature}, |
| 227 { ::onc::cellular::kAPN, &kCellularApnSignature }, | 236 { ::onc::cellular::kAPN, &kCellularApnSignature }, |
| 228 { ::onc::cellular::kAPNList, &kCellularApnListSignature}, | 237 { ::onc::cellular::kAPNList, &kCellularApnListSignature}, |
| 229 {NULL}}; | 238 {NULL}}; |
| 230 | 239 |
| 231 const OncFieldSignature cellular_with_state_fields[] = { | 240 const OncFieldSignature cellular_with_state_fields[] = { |
| 232 { ::onc::cellular::kActivateOverNonCellularNetwork, &kBoolSignature}, | 241 { ::onc::cellular::kActivateOverNonCellularNetwork, &kBoolSignature}, |
| 233 { ::onc::cellular::kActivationState, &kStringSignature}, | 242 { ::onc::cellular::kActivationState, &kStringSignature}, |
| 243 { ::onc::cellular::kNetworkTechnology, &kStringSignature}, |
| 244 { ::onc::cellular::kRoamingState, &kStringSignature}, |
| 245 { ::onc::cellular::kServingOperator, &kCellularProviderSignature}, |
| 246 {NULL}}; |
| 247 |
| 248 const OncFieldSignature cellular_device_fields[] = { |
| 234 { ::onc::cellular::kAllowRoaming, &kBoolSignature}, | 249 { ::onc::cellular::kAllowRoaming, &kBoolSignature}, |
| 235 { ::onc::cellular::kCarrier, &kStringSignature}, | 250 { ::onc::cellular::kCarrier, &kStringSignature}, |
| 236 { ::onc::cellular::kESN, &kStringSignature}, | 251 { ::onc::cellular::kESN, &kStringSignature}, |
| 237 { ::onc::cellular::kFamily, &kStringSignature}, | 252 { ::onc::cellular::kFamily, &kStringSignature}, |
| 238 { ::onc::cellular::kFirmwareRevision, &kStringSignature}, | 253 { ::onc::cellular::kFirmwareRevision, &kStringSignature}, |
| 239 { ::onc::cellular::kFoundNetworks, &kStringSignature}, | 254 // Array of dictionaries that needs to be handled similarily to APNList. |
| 255 // { ::onc::cellular::kFoundNetworks, &kStringSignature}, |
| 240 { ::onc::cellular::kHardwareRevision, &kStringSignature}, | 256 { ::onc::cellular::kHardwareRevision, &kStringSignature}, |
| 241 { ::onc::cellular::kHomeProvider, &kCellularProviderSignature}, | 257 { ::onc::cellular::kHomeProvider, &kCellularProviderSignature}, |
| 242 { ::onc::cellular::kICCID, &kStringSignature}, | 258 { ::onc::cellular::kICCID, &kStringSignature}, |
| 243 { ::onc::cellular::kIMEI, &kStringSignature}, | 259 { ::onc::cellular::kIMEI, &kStringSignature}, |
| 244 { ::onc::cellular::kIMSI, &kStringSignature}, | 260 { ::onc::cellular::kIMSI, &kStringSignature}, |
| 245 { ::onc::cellular::kManufacturer, &kStringSignature}, | 261 { ::onc::cellular::kManufacturer, &kStringSignature}, |
| 246 { ::onc::cellular::kMDN, &kStringSignature}, | 262 { ::onc::cellular::kMDN, &kStringSignature}, |
| 247 { ::onc::cellular::kMEID, &kStringSignature}, | 263 { ::onc::cellular::kMEID, &kStringSignature}, |
| 248 { ::onc::cellular::kMIN, &kStringSignature}, | 264 { ::onc::cellular::kMIN, &kStringSignature}, |
| 249 { ::onc::cellular::kModelID, &kStringSignature}, | 265 { ::onc::cellular::kModelID, &kStringSignature}, |
| 250 { ::onc::cellular::kNetworkTechnology, &kStringSignature}, | 266 { ::onc::cellular::kPRLVersion, &kIntegerSignature}, |
| 251 { ::onc::cellular::kPRLVersion, &kStringSignature}, | |
| 252 { ::onc::cellular::kProviderRequiresRoaming, &kBoolSignature}, | 267 { ::onc::cellular::kProviderRequiresRoaming, &kBoolSignature}, |
| 253 { ::onc::cellular::kRoamingState, &kStringSignature}, | |
| 254 { ::onc::cellular::kSelectedNetwork, &kStringSignature}, | 268 { ::onc::cellular::kSelectedNetwork, &kStringSignature}, |
| 255 { ::onc::cellular::kServingOperator, &kCellularProviderSignature}, | 269 { ::onc::cellular::kSIMLockStatus, &kSIMLockStatusSignature}, |
| 256 { ::onc::cellular::kSIMLockEnabled, &kBoolSignature}, | 270 { ::onc::cellular::kSIMPresent, &kBoolSignature}, |
| 257 { ::onc::cellular::kSIMLockStatus, &kStringSignature}, | 271 { ::onc::cellular::kSupportedCarriers, &kStringListSignature}, |
| 258 { ::onc::cellular::kSIMLockType, &kStringSignature}, | 272 { ::onc::cellular::kSupportNetworkScan, &kBoolSignature}, |
| 259 { ::onc::cellular::kSIMPresent, &kStringSignature}, | |
| 260 { ::onc::cellular::kSupportedCarriers, &kStringSignature}, | |
| 261 { ::onc::cellular::kSupportNetworkScan, &kStringSignature}, | |
| 262 {NULL}}; | 273 {NULL}}; |
| 263 | 274 |
| 264 const OncFieldSignature network_configuration_fields[] = { | 275 const OncFieldSignature network_configuration_fields[] = { |
| 265 { ::onc::kRecommended, &kRecommendedSignature}, | 276 { ::onc::kRecommended, &kRecommendedSignature}, |
| 266 { ::onc::network_config::kEthernet, &kEthernetSignature}, | 277 { ::onc::network_config::kEthernet, &kEthernetSignature}, |
| 267 { ::onc::network_config::kGUID, &kStringSignature}, | 278 { ::onc::network_config::kGUID, &kStringSignature}, |
| 268 // Not supported for policy but for reading network state. | 279 // Not supported for policy but for reading network state. |
| 269 { ::onc::network_config::kIPConfigs, &kIPConfigListSignature}, | 280 { ::onc::network_config::kIPConfigs, &kIPConfigListSignature}, |
| 270 { ::onc::network_config::kName, &kStringSignature}, | 281 { ::onc::network_config::kName, &kStringSignature}, |
| 271 // Not supported, yet. | 282 // Not supported, yet. |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 const OncValueSignature kWiFiWithStateSignature = { | 407 const OncValueSignature kWiFiWithStateSignature = { |
| 397 base::Value::TYPE_DICTIONARY, wifi_with_state_fields, NULL, &kWiFiSignature | 408 base::Value::TYPE_DICTIONARY, wifi_with_state_fields, NULL, &kWiFiSignature |
| 398 }; | 409 }; |
| 399 const OncValueSignature kCellularSignature = { | 410 const OncValueSignature kCellularSignature = { |
| 400 base::Value::TYPE_DICTIONARY, cellular_fields, NULL | 411 base::Value::TYPE_DICTIONARY, cellular_fields, NULL |
| 401 }; | 412 }; |
| 402 const OncValueSignature kCellularWithStateSignature = { | 413 const OncValueSignature kCellularWithStateSignature = { |
| 403 base::Value::TYPE_DICTIONARY, cellular_with_state_fields, NULL, | 414 base::Value::TYPE_DICTIONARY, cellular_with_state_fields, NULL, |
| 404 &kCellularSignature | 415 &kCellularSignature |
| 405 }; | 416 }; |
| 417 const OncValueSignature kCellularDeviceSignature = { |
| 418 base::Value::TYPE_DICTIONARY, cellular_device_fields, NULL |
| 419 }; |
| 406 const OncValueSignature kCellularProviderSignature = { | 420 const OncValueSignature kCellularProviderSignature = { |
| 407 base::Value::TYPE_DICTIONARY, cellular_provider_fields, NULL | 421 base::Value::TYPE_DICTIONARY, cellular_provider_fields, NULL |
| 408 }; | 422 }; |
| 409 const OncValueSignature kCellularApnSignature = { | 423 const OncValueSignature kCellularApnSignature = { |
| 410 base::Value::TYPE_DICTIONARY, cellular_apn_fields, NULL | 424 base::Value::TYPE_DICTIONARY, cellular_apn_fields, NULL |
| 411 }; | 425 }; |
| 426 const OncValueSignature kSIMLockStatusSignature = { |
| 427 base::Value::TYPE_DICTIONARY, sim_lock_status_fields, NULL |
| 428 }; |
| 412 | 429 |
| 413 const OncFieldSignature* GetFieldSignature(const OncValueSignature& signature, | 430 const OncFieldSignature* GetFieldSignature(const OncValueSignature& signature, |
| 414 const std::string& onc_field_name) { | 431 const std::string& onc_field_name) { |
| 415 if (!signature.fields) | 432 if (!signature.fields) |
| 416 return NULL; | 433 return NULL; |
| 417 for (const OncFieldSignature* field_signature = signature.fields; | 434 for (const OncFieldSignature* field_signature = signature.fields; |
| 418 field_signature->onc_field_name != NULL; ++field_signature) { | 435 field_signature->onc_field_name != NULL; ++field_signature) { |
| 419 if (onc_field_name == field_signature->onc_field_name) | 436 if (onc_field_name == field_signature->onc_field_name) |
| 420 return field_signature; | 437 return field_signature; |
| 421 } | 438 } |
| (...skipping 29 matching lines...) Expand all Loading... |
| 451 if (&signature == entry->value_signature && | 468 if (&signature == entry->value_signature && |
| 452 onc_field_name == entry->field_name) { | 469 onc_field_name == entry->field_name) { |
| 453 return true; | 470 return true; |
| 454 } | 471 } |
| 455 } | 472 } |
| 456 return false; | 473 return false; |
| 457 } | 474 } |
| 458 | 475 |
| 459 } // namespace onc | 476 } // namespace onc |
| 460 } // namespace chromeos | 477 } // namespace chromeos |
| OLD | NEW |