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/device_state.h" | 5 #include "chromeos/network/device_state.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "chromeos/network/network_event_log.h" |
11 #include "third_party/cros_system_api/dbus/service_constants.h" | 12 #include "third_party/cros_system_api/dbus/service_constants.h" |
12 | 13 |
13 namespace chromeos { | 14 namespace chromeos { |
14 | 15 |
15 DeviceState::DeviceState(const std::string& path) | 16 DeviceState::DeviceState(const std::string& path) |
16 : ManagedState(MANAGED_TYPE_DEVICE, path), | 17 : ManagedState(MANAGED_TYPE_DEVICE, path), |
17 allow_roaming_(false), | 18 allow_roaming_(false), |
18 provider_requires_roaming_(false), | 19 provider_requires_roaming_(false), |
19 support_network_scan_(false), | 20 support_network_scan_(false), |
20 scanning_(false), | 21 scanning_(false), |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 return false; | 126 return false; |
126 } | 127 } |
127 | 128 |
128 bool DeviceState::InitialPropertiesReceived( | 129 bool DeviceState::InitialPropertiesReceived( |
129 const base::DictionaryValue& properties) { | 130 const base::DictionaryValue& properties) { |
130 // Update UMA stats. | 131 // Update UMA stats. |
131 if (sim_present_) { | 132 if (sim_present_) { |
132 bool locked = !sim_lock_type_.empty(); | 133 bool locked = !sim_lock_type_.empty(); |
133 UMA_HISTOGRAM_BOOLEAN("Cellular.SIMLocked", locked); | 134 UMA_HISTOGRAM_BOOLEAN("Cellular.SIMLocked", locked); |
134 } | 135 } |
| 136 // IP Configs will be added when they are received. |
| 137 ip_configs_.Clear(); |
135 return false; | 138 return false; |
136 } | 139 } |
137 | 140 |
| 141 void DeviceState::IPConfigPropertiesChanged( |
| 142 const std::string& ip_config_path, |
| 143 const base::DictionaryValue& properties) { |
| 144 base::DictionaryValue* ip_config; |
| 145 if (ip_configs_.GetDictionaryWithoutPathExpansion( |
| 146 ip_config_path, &ip_config)) { |
| 147 NET_LOG_EVENT("IPConfig Updated: " + ip_config_path, path()); |
| 148 ip_config->Clear(); |
| 149 } else { |
| 150 NET_LOG_EVENT("IPConfig Added: " + ip_config_path, path()); |
| 151 ip_config = new base::DictionaryValue; |
| 152 ip_configs_.SetWithoutPathExpansion(ip_config_path, ip_config); |
| 153 } |
| 154 ip_config->MergeDictionary(&properties); |
| 155 } |
| 156 |
138 std::string DeviceState::GetFormattedMacAddress() const { | 157 std::string DeviceState::GetFormattedMacAddress() const { |
139 if (mac_address_.size() % 2 != 0) | 158 if (mac_address_.size() % 2 != 0) |
140 return mac_address_; | 159 return mac_address_; |
141 std::string result; | 160 std::string result; |
142 for (size_t i = 0; i < mac_address_.size(); ++i) { | 161 for (size_t i = 0; i < mac_address_.size(); ++i) { |
143 if ((i != 0) && (i % 2 == 0)) | 162 if ((i != 0) && (i % 2 == 0)) |
144 result.push_back(':'); | 163 result.push_back(':'); |
145 result.push_back(mac_address_[i]); | 164 result.push_back(mac_address_[i]); |
146 } | 165 } |
147 return result; | 166 return result; |
148 } | 167 } |
149 | 168 |
150 bool DeviceState::IsSimAbsent() const { | 169 bool DeviceState::IsSimAbsent() const { |
151 return technology_family_ == shill::kTechnologyFamilyGsm && !sim_present_; | 170 return technology_family_ == shill::kTechnologyFamilyGsm && !sim_present_; |
152 } | 171 } |
153 | 172 |
154 } // namespace chromeos | 173 } // namespace chromeos |
OLD | NEW |