Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: chromeos/network/shill_property_util.cc

Issue 207183003: Cleanup network event logging, add to ManagedNetworkConfigurationHandler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chromeos/network/shill_property_util.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/shill_property_util.h" 5 #include "chromeos/network/shill_property_util.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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 } 113 }
114 114
115 if (unknown_encoding) 115 if (unknown_encoding)
116 *unknown_encoding = true; 116 *unknown_encoding = true;
117 NET_LOG_DEBUG( 117 NET_LOG_DEBUG(
118 "GetSSIDFromProperties", 118 "GetSSIDFromProperties",
119 base::StringPrintf("Unrecognized Encoding=%s", encoding.c_str())); 119 base::StringPrintf("Unrecognized Encoding=%s", encoding.c_str()));
120 return ssid; 120 return ssid;
121 } 121 }
122 122
123 std::string GetNetworkIdFromProperties(
124 const base::DictionaryValue& properties) {
125 if (properties.empty())
126 return "EmptyProperties";
127 std::string result;
128 if (properties.GetStringWithoutPathExpansion(shill::kGuidProperty, &result))
129 return result;
130 if (properties.GetStringWithoutPathExpansion(shill::kSSIDProperty, &result))
131 return result;
132 if (properties.GetStringWithoutPathExpansion(shill::kNameProperty, &result))
133 return result;
134 std::string type = "UnknownType";
135 properties.GetStringWithoutPathExpansion(shill::kTypeProperty, &type);
136 return "Unidentified " + type;
137 }
138
123 std::string GetNameFromProperties(const std::string& service_path, 139 std::string GetNameFromProperties(const std::string& service_path,
124 const base::DictionaryValue& properties) { 140 const base::DictionaryValue& properties) {
125 std::string name; 141 std::string name;
126 properties.GetStringWithoutPathExpansion(shill::kNameProperty, &name); 142 properties.GetStringWithoutPathExpansion(shill::kNameProperty, &name);
127 143
128 std::string validated_name = ValidateUTF8(name); 144 std::string validated_name = ValidateUTF8(name);
129 if (validated_name != name) { 145 if (validated_name != name) {
130 NET_LOG_DEBUG("GetNameFromProperties", 146 NET_LOG_DEBUG("GetNameFromProperties",
131 base::StringPrintf("Validated name %s: UTF8: %s", 147 base::StringPrintf("Validated name %s: UTF8: %s",
132 service_path.c_str(), 148 service_path.c_str(),
133 validated_name.c_str())); 149 validated_name.c_str()));
134 } 150 }
135 151
136 std::string type; 152 std::string type;
137 properties.GetStringWithoutPathExpansion(shill::kTypeProperty, &type); 153 properties.GetStringWithoutPathExpansion(shill::kTypeProperty, &type);
154 if (type.empty()) {
155 NET_LOG_ERROR("GetNameFromProperties: No type", service_path);
156 return validated_name;
157 }
138 if (!NetworkTypePattern::WiFi().MatchesType(type)) 158 if (!NetworkTypePattern::WiFi().MatchesType(type))
139 return validated_name; 159 return validated_name;
140 160
141 bool unknown_ssid_encoding = false; 161 bool unknown_ssid_encoding = false;
142 std::string ssid = GetSSIDFromProperties(properties, &unknown_ssid_encoding); 162 std::string ssid = GetSSIDFromProperties(properties, &unknown_ssid_encoding);
143 if (ssid.empty()) 163 if (ssid.empty())
144 NET_LOG_ERROR("GetNameFromProperties", "No SSID set: " + service_path); 164 NET_LOG_ERROR("GetNameFromProperties", "No SSID set: " + service_path);
145 165
146 // Use |validated_name| if |ssid| is empty. 166 // Use |validated_name| if |ssid| is empty.
147 // And if the encoding of the SSID is unknown, use |ssid|, which contains raw 167 // And if the encoding of the SSID is unknown, use |ssid|, which contains raw
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 CopyStringFromDictionary(service_properties, shill::kWifiHexSsid, dest); 235 CopyStringFromDictionary(service_properties, shill::kWifiHexSsid, dest);
216 success &= CopyStringFromDictionary( 236 success &= CopyStringFromDictionary(
217 service_properties, shill::kModeProperty, dest); 237 service_properties, shill::kModeProperty, dest);
218 } else if (type == shill::kTypeVPN) { 238 } else if (type == shill::kTypeVPN) {
219 success &= CopyStringFromDictionary( 239 success &= CopyStringFromDictionary(
220 service_properties, shill::kNameProperty, dest); 240 service_properties, shill::kNameProperty, dest);
221 // VPN Provider values are read from the "Provider" dictionary, but written 241 // VPN Provider values are read from the "Provider" dictionary, but written
222 // with the keys "Provider.Type" and "Provider.Host". 242 // with the keys "Provider.Type" and "Provider.Host".
223 const base::DictionaryValue* provider_properties = NULL; 243 const base::DictionaryValue* provider_properties = NULL;
224 if (!service_properties.GetDictionaryWithoutPathExpansion( 244 if (!service_properties.GetDictionaryWithoutPathExpansion(
225 shill::kProviderProperty, &provider_properties)) { 245 shill::kProviderProperty, &provider_properties)) {
226 NET_LOG_ERROR("CopyIdentifyingProperties", "Missing VPN provider dict"); 246 NET_LOG_ERROR("Missing VPN provider dict",
247 GetNetworkIdFromProperties(service_properties));
227 return false; 248 return false;
228 } 249 }
229 std::string vpn_provider_type; 250 std::string vpn_provider_type;
230 provider_properties->GetStringWithoutPathExpansion(shill::kTypeProperty, 251 provider_properties->GetStringWithoutPathExpansion(shill::kTypeProperty,
231 &vpn_provider_type); 252 &vpn_provider_type);
232 success &= !vpn_provider_type.empty(); 253 success &= !vpn_provider_type.empty();
233 dest->SetStringWithoutPathExpansion(shill::kProviderTypeProperty, 254 dest->SetStringWithoutPathExpansion(shill::kProviderTypeProperty,
234 vpn_provider_type); 255 vpn_provider_type);
235 256
236 std::string vpn_provider_host; 257 std::string vpn_provider_host;
237 provider_properties->GetStringWithoutPathExpansion(shill::kHostProperty, 258 provider_properties->GetStringWithoutPathExpansion(shill::kHostProperty,
238 &vpn_provider_host); 259 &vpn_provider_host);
239 success &= !vpn_provider_host.empty(); 260 success &= !vpn_provider_host.empty();
240 dest->SetStringWithoutPathExpansion(shill::kProviderHostProperty, 261 dest->SetStringWithoutPathExpansion(shill::kProviderHostProperty,
241 vpn_provider_host); 262 vpn_provider_host);
242 } else if (type == shill::kTypeEthernet || type == shill::kTypeEthernetEap) { 263 } else if (type == shill::kTypeEthernet || type == shill::kTypeEthernetEap) {
243 // Ethernet and EthernetEAP don't have any additional identifying 264 // Ethernet and EthernetEAP don't have any additional identifying
244 // properties. 265 // properties.
245 } else { 266 } else {
246 NOTREACHED() << "Unsupported network type " << type; 267 NOTREACHED() << "Unsupported network type " << type;
247 success = false; 268 success = false;
248 } 269 }
249 if (!success) 270 if (!success) {
250 NET_LOG_ERROR("CopyIdentifyingProperties", "Missing required properties"); 271 NET_LOG_ERROR("Missing required properties",
272 GetNetworkIdFromProperties(service_properties));
273 }
251 return success; 274 return success;
252 } 275 }
253 276
254 bool DoIdentifyingPropertiesMatch(const base::DictionaryValue& properties_a, 277 bool DoIdentifyingPropertiesMatch(const base::DictionaryValue& properties_a,
255 const base::DictionaryValue& properties_b) { 278 const base::DictionaryValue& properties_b) {
256 base::DictionaryValue identifying_a; 279 base::DictionaryValue identifying_a;
257 if (!CopyIdentifyingProperties(properties_a, &identifying_a)) 280 if (!CopyIdentifyingProperties(properties_a, &identifying_a))
258 return false; 281 return false;
259 base::DictionaryValue identifying_b; 282 base::DictionaryValue identifying_b;
260 if (!CopyIdentifyingProperties(properties_b, &identifying_b)) 283 if (!CopyIdentifyingProperties(properties_b, &identifying_b))
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 if (!str.empty()) 433 if (!str.empty())
411 str += "|"; 434 str += "|";
412 str += shill_type_to_flag[i].shill_network_type; 435 str += shill_type_to_flag[i].shill_network_type;
413 } 436 }
414 return str; 437 return str;
415 } 438 }
416 439
417 NetworkTypePattern::NetworkTypePattern(int pattern) : pattern_(pattern) {} 440 NetworkTypePattern::NetworkTypePattern(int pattern) : pattern_(pattern) {}
418 441
419 } // namespace chromeos 442 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/shill_property_util.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698