| 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/network_state.h" | 5 #include "chromeos/network/network_state.h" |
| 6 | 6 |
| 7 #include "base/i18n/icu_encoding_detection.h" | 7 #include "base/i18n/icu_encoding_detection.h" |
| 8 #include "base/i18n/icu_string_conversions.h" | 8 #include "base/i18n/icu_string_conversions.h" |
| 9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 if (ui_data_str.empty()) | 61 if (ui_data_str.empty()) |
| 62 return new chromeos::NetworkUIData(); | 62 return new chromeos::NetworkUIData(); |
| 63 | 63 |
| 64 scoped_ptr<base::DictionaryValue> ui_data_dict( | 64 scoped_ptr<base::DictionaryValue> ui_data_dict( |
| 65 chromeos::onc::ReadDictionaryFromJson(ui_data_str)); | 65 chromeos::onc::ReadDictionaryFromJson(ui_data_str)); |
| 66 if (!ui_data_dict) | 66 if (!ui_data_dict) |
| 67 return NULL; | 67 return NULL; |
| 68 return new chromeos::NetworkUIData(*ui_data_dict); | 68 return new chromeos::NetworkUIData(*ui_data_dict); |
| 69 } | 69 } |
| 70 | 70 |
| 71 bool IsCaCertNssSet(const base::DictionaryValue& properties) { |
| 72 std::string ca_cert_nss; |
| 73 if (properties.GetStringWithoutPathExpansion(flimflam::kEapCaCertNssProperty, |
| 74 &ca_cert_nss) && |
| 75 !ca_cert_nss.empty()) { |
| 76 return true; |
| 77 } |
| 78 |
| 79 const base::DictionaryValue* provider = NULL; |
| 80 properties.GetDictionaryWithoutPathExpansion(flimflam::kProviderProperty, |
| 81 &provider); |
| 82 if (!provider) |
| 83 return false; |
| 84 if (provider->GetStringWithoutPathExpansion( |
| 85 flimflam::kL2tpIpsecCaCertNssProperty, &ca_cert_nss) && |
| 86 !ca_cert_nss.empty()) { |
| 87 return true; |
| 88 } |
| 89 if (provider->GetStringWithoutPathExpansion( |
| 90 flimflam::kOpenVPNCaCertNSSProperty, &ca_cert_nss) && |
| 91 !ca_cert_nss.empty()) { |
| 92 return true; |
| 93 } |
| 94 |
| 95 return false; |
| 96 } |
| 97 |
| 71 } // namespace | 98 } // namespace |
| 72 | 99 |
| 73 namespace chromeos { | 100 namespace chromeos { |
| 74 | 101 |
| 75 NetworkState::NetworkState(const std::string& path) | 102 NetworkState::NetworkState(const std::string& path) |
| 76 : ManagedState(MANAGED_TYPE_NETWORK, path), | 103 : ManagedState(MANAGED_TYPE_NETWORK, path), |
| 77 auto_connect_(false), | 104 auto_connect_(false), |
| 78 favorite_(false), | 105 favorite_(false), |
| 79 priority_(0), | 106 priority_(0), |
| 80 onc_source_(onc::ONC_SOURCE_NONE), | 107 onc_source_(onc::ONC_SOURCE_NONE), |
| 81 prefix_length_(0), | 108 prefix_length_(0), |
| 82 signal_strength_(0), | 109 signal_strength_(0), |
| 83 connectable_(false), | 110 connectable_(false), |
| 84 activate_over_non_cellular_networks_(false), | 111 activate_over_non_cellular_networks_(false), |
| 85 cellular_out_of_credits_(false) { | 112 cellular_out_of_credits_(false), |
| 113 has_ca_cert_nss_(false) { |
| 86 } | 114 } |
| 87 | 115 |
| 88 NetworkState::~NetworkState() { | 116 NetworkState::~NetworkState() { |
| 89 } | 117 } |
| 90 | 118 |
| 91 bool NetworkState::PropertyChanged(const std::string& key, | 119 bool NetworkState::PropertyChanged(const std::string& key, |
| 92 const base::Value& value) { | 120 const base::Value& value) { |
| 93 // Keep care that these properties are the same as in |GetProperties|. | 121 // Keep care that these properties are the same as in |GetProperties|. |
| 94 if (ManagedStatePropertyChanged(key, value)) | 122 if (ManagedStatePropertyChanged(key, value)) |
| 95 return true; | 123 return true; |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 return false; | 212 return false; |
| 185 } | 213 } |
| 186 return true; | 214 return true; |
| 187 } | 215 } |
| 188 return false; | 216 return false; |
| 189 } | 217 } |
| 190 | 218 |
| 191 bool NetworkState::InitialPropertiesReceived( | 219 bool NetworkState::InitialPropertiesReceived( |
| 192 const base::DictionaryValue& properties) { | 220 const base::DictionaryValue& properties) { |
| 193 bool changed = UpdateName(properties); | 221 bool changed = UpdateName(properties); |
| 222 bool had_ca_cert_nss = has_ca_cert_nss_; |
| 223 has_ca_cert_nss_ = IsCaCertNssSet(properties); |
| 224 changed |= had_ca_cert_nss != has_ca_cert_nss_; |
| 194 return changed; | 225 return changed; |
| 195 } | 226 } |
| 196 | 227 |
| 197 void NetworkState::GetProperties(base::DictionaryValue* dictionary) const { | 228 void NetworkState::GetProperties(base::DictionaryValue* dictionary) const { |
| 198 // Keep care that these properties are the same as in |PropertyChanged|. | 229 // Keep care that these properties are the same as in |PropertyChanged|. |
| 199 dictionary->SetStringWithoutPathExpansion(flimflam::kNameProperty, name()); | 230 dictionary->SetStringWithoutPathExpansion(flimflam::kNameProperty, name()); |
| 200 dictionary->SetStringWithoutPathExpansion(flimflam::kTypeProperty, type()); | 231 dictionary->SetStringWithoutPathExpansion(flimflam::kTypeProperty, type()); |
| 201 dictionary->SetIntegerWithoutPathExpansion(flimflam::kSignalStrengthProperty, | 232 dictionary->SetIntegerWithoutPathExpansion(flimflam::kSignalStrengthProperty, |
| 202 signal_strength_); | 233 signal_strength_); |
| 203 dictionary->SetStringWithoutPathExpansion(flimflam::kStateProperty, | 234 dictionary->SetStringWithoutPathExpansion(flimflam::kStateProperty, |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 bool NetworkState::GetOncSource(const base::Value& ui_data_value, | 435 bool NetworkState::GetOncSource(const base::Value& ui_data_value, |
| 405 onc::ONCSource* out) { | 436 onc::ONCSource* out) { |
| 406 scoped_ptr<NetworkUIData> ui_data(CreateUIDataFromValue(ui_data_value)); | 437 scoped_ptr<NetworkUIData> ui_data(CreateUIDataFromValue(ui_data_value)); |
| 407 if (!ui_data) | 438 if (!ui_data) |
| 408 return false; | 439 return false; |
| 409 *out = ui_data->onc_source(); | 440 *out = ui_data->onc_source(); |
| 410 return true; | 441 return true; |
| 411 } | 442 } |
| 412 | 443 |
| 413 } // namespace chromeos | 444 } // namespace chromeos |
| OLD | NEW |