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 |