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 = { |
35 base::Value::TYPE_LIST, NULL, &kCellularApnSignature | 38 base::Value::TYPE_LIST, NULL, &kCellularApnSignature |
36 }; | 39 }; |
| 40 const OncValueSignature kCellularFoundNetworkListSignature = { |
| 41 base::Value::TYPE_LIST, NULL, &kCellularFoundNetworkSignature |
| 42 }; |
37 | 43 |
38 const OncFieldSignature issuer_subject_pattern_fields[] = { | 44 const OncFieldSignature issuer_subject_pattern_fields[] = { |
39 { ::onc::client_cert::kCommonName, &kStringSignature}, | 45 { ::onc::client_cert::kCommonName, &kStringSignature}, |
40 { ::onc::client_cert::kLocality, &kStringSignature}, | 46 { ::onc::client_cert::kLocality, &kStringSignature}, |
41 { ::onc::client_cert::kOrganization, &kStringSignature}, | 47 { ::onc::client_cert::kOrganization, &kStringSignature}, |
42 { ::onc::client_cert::kOrganizationalUnit, &kStringSignature}, | 48 { ::onc::client_cert::kOrganizationalUnit, &kStringSignature}, |
43 {NULL}}; | 49 {NULL}}; |
44 | 50 |
45 const OncFieldSignature certificate_pattern_fields[] = { | 51 const OncFieldSignature certificate_pattern_fields[] = { |
46 { ::onc::kRecommended, &kRecommendedSignature}, | 52 { ::onc::kRecommended, &kRecommendedSignature}, |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 const OncFieldSignature cellular_provider_fields[] = { | 219 const OncFieldSignature cellular_provider_fields[] = { |
214 { ::onc::cellular_provider::kCode, &kStringSignature}, | 220 { ::onc::cellular_provider::kCode, &kStringSignature}, |
215 { ::onc::cellular_provider::kCountry, &kStringSignature}, | 221 { ::onc::cellular_provider::kCountry, &kStringSignature}, |
216 { ::onc::cellular_provider::kName, &kStringSignature}, | 222 { ::onc::cellular_provider::kName, &kStringSignature}, |
217 {NULL}}; | 223 {NULL}}; |
218 | 224 |
219 const OncFieldSignature cellular_apn_fields[] = { | 225 const OncFieldSignature cellular_apn_fields[] = { |
220 { ::onc::cellular_apn::kName, &kStringSignature}, | 226 { ::onc::cellular_apn::kName, &kStringSignature}, |
221 { ::onc::cellular_apn::kUsername, &kStringSignature}, | 227 { ::onc::cellular_apn::kUsername, &kStringSignature}, |
222 { ::onc::cellular_apn::kPassword, &kStringSignature}, | 228 { ::onc::cellular_apn::kPassword, &kStringSignature}, |
| 229 { ::onc::cellular_apn::kLocalizedName, &kStringSignature}, |
| 230 { ::onc::cellular_apn::kLanguage, &kStringSignature}, |
| 231 {NULL}}; |
| 232 |
| 233 const OncFieldSignature cellular_found_network_fields[] = { |
| 234 { ::onc::cellular_found_network::kStatus, &kStringSignature}, |
| 235 { ::onc::cellular_found_network::kNetworkId, &kStringSignature}, |
| 236 { ::onc::cellular_found_network::kShortName, &kStringSignature}, |
| 237 { ::onc::cellular_found_network::kLongName, &kStringSignature}, |
| 238 { ::onc::cellular_found_network::kTechnology, &kStringSignature}, |
| 239 {NULL}}; |
| 240 |
| 241 const OncFieldSignature sim_lock_status_fields[] = { |
| 242 { ::onc::sim_lock_status::kLockEnabled, &kBoolSignature}, |
| 243 { ::onc::sim_lock_status::kLockType, &kStringSignature}, |
| 244 { ::onc::sim_lock_status::kRetriesLeft, &kDoubleSignature}, |
223 {NULL}}; | 245 {NULL}}; |
224 | 246 |
225 const OncFieldSignature cellular_fields[] = { | 247 const OncFieldSignature cellular_fields[] = { |
226 { ::onc::kRecommended, &kRecommendedSignature}, | 248 { ::onc::kRecommended, &kRecommendedSignature}, |
227 { ::onc::cellular::kAPN, &kCellularApnSignature }, | 249 { ::onc::cellular::kAPN, &kCellularApnSignature }, |
228 { ::onc::cellular::kAPNList, &kCellularApnListSignature}, | 250 { ::onc::cellular::kAPNList, &kCellularApnListSignature}, |
229 {NULL}}; | 251 {NULL}}; |
230 | 252 |
231 const OncFieldSignature cellular_with_state_fields[] = { | 253 const OncFieldSignature cellular_with_state_fields[] = { |
232 { ::onc::cellular::kActivateOverNonCellularNetwork, &kBoolSignature}, | 254 { ::onc::cellular::kActivateOverNonCellularNetwork, &kBoolSignature}, |
233 { ::onc::cellular::kActivationState, &kStringSignature}, | 255 { ::onc::cellular::kActivationState, &kStringSignature}, |
234 { ::onc::cellular::kAllowRoaming, &kBoolSignature}, | 256 { ::onc::cellular::kAllowRoaming, &kBoolSignature}, |
235 { ::onc::cellular::kCarrier, &kStringSignature}, | 257 { ::onc::cellular::kCarrier, &kStringSignature}, |
236 { ::onc::cellular::kESN, &kStringSignature}, | 258 { ::onc::cellular::kESN, &kStringSignature}, |
237 { ::onc::cellular::kFamily, &kStringSignature}, | 259 { ::onc::cellular::kFamily, &kStringSignature}, |
238 { ::onc::cellular::kFirmwareRevision, &kStringSignature}, | 260 { ::onc::cellular::kFirmwareRevision, &kStringSignature}, |
239 { ::onc::cellular::kFoundNetworks, &kStringSignature}, | 261 { ::onc::cellular::kFoundNetworks, &kCellularFoundNetworkListSignature}, |
240 { ::onc::cellular::kHardwareRevision, &kStringSignature}, | 262 { ::onc::cellular::kHardwareRevision, &kStringSignature}, |
241 { ::onc::cellular::kHomeProvider, &kCellularProviderSignature}, | 263 { ::onc::cellular::kHomeProvider, &kCellularProviderSignature}, |
242 { ::onc::cellular::kICCID, &kStringSignature}, | 264 { ::onc::cellular::kICCID, &kStringSignature}, |
243 { ::onc::cellular::kIMEI, &kStringSignature}, | 265 { ::onc::cellular::kIMEI, &kStringSignature}, |
244 { ::onc::cellular::kIMSI, &kStringSignature}, | 266 { ::onc::cellular::kIMSI, &kStringSignature}, |
245 { ::onc::cellular::kManufacturer, &kStringSignature}, | 267 { ::onc::cellular::kManufacturer, &kStringSignature}, |
246 { ::onc::cellular::kMDN, &kStringSignature}, | 268 { ::onc::cellular::kMDN, &kStringSignature}, |
247 { ::onc::cellular::kMEID, &kStringSignature}, | 269 { ::onc::cellular::kMEID, &kStringSignature}, |
248 { ::onc::cellular::kMIN, &kStringSignature}, | 270 { ::onc::cellular::kMIN, &kStringSignature}, |
249 { ::onc::cellular::kModelID, &kStringSignature}, | 271 { ::onc::cellular::kModelID, &kStringSignature}, |
250 { ::onc::cellular::kNetworkTechnology, &kStringSignature}, | 272 { ::onc::cellular::kNetworkTechnology, &kStringSignature}, |
251 { ::onc::cellular::kPRLVersion, &kStringSignature}, | 273 { ::onc::cellular::kPRLVersion, &kIntegerSignature}, |
252 { ::onc::cellular::kProviderRequiresRoaming, &kBoolSignature}, | 274 { ::onc::cellular::kProviderRequiresRoaming, &kBoolSignature}, |
253 { ::onc::cellular::kRoamingState, &kStringSignature}, | 275 { ::onc::cellular::kRoamingState, &kStringSignature}, |
254 { ::onc::cellular::kSelectedNetwork, &kStringSignature}, | 276 { ::onc::cellular::kSelectedNetwork, &kStringSignature}, |
255 { ::onc::cellular::kServingOperator, &kCellularProviderSignature}, | 277 { ::onc::cellular::kServingOperator, &kCellularProviderSignature}, |
256 { ::onc::cellular::kSIMLockEnabled, &kBoolSignature}, | 278 { ::onc::cellular::kSIMLockStatus, &kSIMLockStatusSignature}, |
257 { ::onc::cellular::kSIMLockStatus, &kStringSignature}, | 279 { ::onc::cellular::kSIMPresent, &kBoolSignature}, |
258 { ::onc::cellular::kSIMLockType, &kStringSignature}, | 280 { ::onc::cellular::kSupportNetworkScan, &kBoolSignature}, |
259 { ::onc::cellular::kSIMPresent, &kStringSignature}, | 281 { ::onc::cellular::kSupportedCarriers, &kStringListSignature}, |
260 { ::onc::cellular::kSupportedCarriers, &kStringSignature}, | |
261 { ::onc::cellular::kSupportNetworkScan, &kStringSignature}, | |
262 {NULL}}; | 282 {NULL}}; |
263 | 283 |
264 const OncFieldSignature network_configuration_fields[] = { | 284 const OncFieldSignature network_configuration_fields[] = { |
265 { ::onc::kRecommended, &kRecommendedSignature}, | 285 { ::onc::kRecommended, &kRecommendedSignature}, |
266 { ::onc::network_config::kEthernet, &kEthernetSignature}, | 286 { ::onc::network_config::kEthernet, &kEthernetSignature}, |
267 { ::onc::network_config::kGUID, &kStringSignature}, | 287 { ::onc::network_config::kGUID, &kStringSignature}, |
268 // Not supported for policy but for reading network state. | 288 // Not supported for policy but for reading network state. |
269 { ::onc::network_config::kIPConfigs, &kIPConfigListSignature}, | 289 { ::onc::network_config::kIPConfigs, &kIPConfigListSignature}, |
270 { ::onc::network_config::kName, &kStringSignature}, | 290 { ::onc::network_config::kName, &kStringSignature}, |
271 // Not supported, yet. | 291 // Not supported, yet. |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 const OncValueSignature kCellularWithStateSignature = { | 422 const OncValueSignature kCellularWithStateSignature = { |
403 base::Value::TYPE_DICTIONARY, cellular_with_state_fields, NULL, | 423 base::Value::TYPE_DICTIONARY, cellular_with_state_fields, NULL, |
404 &kCellularSignature | 424 &kCellularSignature |
405 }; | 425 }; |
406 const OncValueSignature kCellularProviderSignature = { | 426 const OncValueSignature kCellularProviderSignature = { |
407 base::Value::TYPE_DICTIONARY, cellular_provider_fields, NULL | 427 base::Value::TYPE_DICTIONARY, cellular_provider_fields, NULL |
408 }; | 428 }; |
409 const OncValueSignature kCellularApnSignature = { | 429 const OncValueSignature kCellularApnSignature = { |
410 base::Value::TYPE_DICTIONARY, cellular_apn_fields, NULL | 430 base::Value::TYPE_DICTIONARY, cellular_apn_fields, NULL |
411 }; | 431 }; |
| 432 const OncValueSignature kCellularFoundNetworkSignature = { |
| 433 base::Value::TYPE_DICTIONARY, cellular_found_network_fields, NULL |
| 434 }; |
| 435 const OncValueSignature kSIMLockStatusSignature = { |
| 436 base::Value::TYPE_DICTIONARY, sim_lock_status_fields, NULL |
| 437 }; |
412 | 438 |
413 const OncFieldSignature* GetFieldSignature(const OncValueSignature& signature, | 439 const OncFieldSignature* GetFieldSignature(const OncValueSignature& signature, |
414 const std::string& onc_field_name) { | 440 const std::string& onc_field_name) { |
415 if (!signature.fields) | 441 if (!signature.fields) |
416 return NULL; | 442 return NULL; |
417 for (const OncFieldSignature* field_signature = signature.fields; | 443 for (const OncFieldSignature* field_signature = signature.fields; |
418 field_signature->onc_field_name != NULL; ++field_signature) { | 444 field_signature->onc_field_name != NULL; ++field_signature) { |
419 if (onc_field_name == field_signature->onc_field_name) | 445 if (onc_field_name == field_signature->onc_field_name) |
420 return field_signature; | 446 return field_signature; |
421 } | 447 } |
(...skipping 29 matching lines...) Expand all Loading... |
451 if (&signature == entry->value_signature && | 477 if (&signature == entry->value_signature && |
452 onc_field_name == entry->field_name) { | 478 onc_field_name == entry->field_name) { |
453 return true; | 479 return true; |
454 } | 480 } |
455 } | 481 } |
456 return false; | 482 return false; |
457 } | 483 } |
458 | 484 |
459 } // namespace onc | 485 } // namespace onc |
460 } // namespace chromeos | 486 } // namespace chromeos |
OLD | NEW |