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_configuration_handler.h" | 5 #include "chromeos/network/network_configuration_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 network_handler::RunErrorCallback( | 46 network_handler::RunErrorCallback( |
47 error_callback, service_path, error_name, error_msg); | 47 error_callback, service_path, error_name, error_msg); |
48 } | 48 } |
49 | 49 |
50 void GetPropertiesCallback( | 50 void GetPropertiesCallback( |
51 const network_handler::DictionaryResultCallback& callback, | 51 const network_handler::DictionaryResultCallback& callback, |
52 const network_handler::ErrorCallback& error_callback, | 52 const network_handler::ErrorCallback& error_callback, |
53 const std::string& service_path, | 53 const std::string& service_path, |
54 DBusMethodCallStatus call_status, | 54 DBusMethodCallStatus call_status, |
55 const base::DictionaryValue& properties) { | 55 const base::DictionaryValue& properties) { |
56 // Get the correct name from WifiHex if necessary. | |
57 scoped_ptr<base::DictionaryValue> properties_copy(properties.DeepCopy()); | |
58 std::string name = | |
59 shill_property_util::GetNameFromProperties(service_path, properties); | |
60 if (!name.empty()) { | |
61 properties_copy->SetStringWithoutPathExpansion(shill::kNameProperty, name); | |
62 } | |
63 if (call_status != DBUS_METHOD_CALL_SUCCESS) { | 56 if (call_status != DBUS_METHOD_CALL_SUCCESS) { |
64 // Because network services are added and removed frequently, we will see | 57 // Because network services are added and removed frequently, we will see |
65 // failures regularly, so don't log these. | 58 // failures regularly, so don't log these. |
66 network_handler::RunErrorCallback(error_callback, | 59 network_handler::RunErrorCallback(error_callback, |
67 service_path, | 60 service_path, |
68 network_handler::kDBusFailedError, | 61 network_handler::kDBusFailedError, |
69 network_handler::kDBusFailedErrorMessage); | 62 network_handler::kDBusFailedErrorMessage); |
70 } else if (!callback.is_null()) { | 63 return; |
71 callback.Run(service_path, *properties_copy.get()); | |
72 } | 64 } |
| 65 if (callback.is_null()) |
| 66 return; |
| 67 |
| 68 // Get the correct name from WifiHex if necessary. |
| 69 scoped_ptr<base::DictionaryValue> properties_copy(properties.DeepCopy()); |
| 70 std::string name = |
| 71 shill_property_util::GetNameFromProperties(service_path, properties); |
| 72 if (!name.empty()) |
| 73 properties_copy->SetStringWithoutPathExpansion(shill::kNameProperty, name); |
| 74 callback.Run(service_path, *properties_copy.get()); |
73 } | 75 } |
74 | 76 |
75 void SetNetworkProfileErrorCallback( | 77 void SetNetworkProfileErrorCallback( |
76 const std::string& service_path, | 78 const std::string& service_path, |
77 const std::string& profile_path, | 79 const std::string& profile_path, |
78 const network_handler::ErrorCallback& error_callback, | 80 const network_handler::ErrorCallback& error_callback, |
79 const std::string& dbus_error_name, | 81 const std::string& dbus_error_name, |
80 const std::string& dbus_error_message) { | 82 const std::string& dbus_error_message) { |
81 network_handler::ShillErrorCallbackFunction( | 83 network_handler::ShillErrorCallbackFunction( |
82 "Config.SetNetworkProfile Failed: " + profile_path, | 84 "Config.SetNetworkProfile Failed: " + profile_path, |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 } | 262 } |
261 | 263 |
262 void NetworkConfigurationHandler::CreateConfiguration( | 264 void NetworkConfigurationHandler::CreateConfiguration( |
263 const base::DictionaryValue& properties, | 265 const base::DictionaryValue& properties, |
264 const network_handler::StringResultCallback& callback, | 266 const network_handler::StringResultCallback& callback, |
265 const network_handler::ErrorCallback& error_callback) { | 267 const network_handler::ErrorCallback& error_callback) { |
266 ShillManagerClient* manager = | 268 ShillManagerClient* manager = |
267 DBusThreadManager::Get()->GetShillManagerClient(); | 269 DBusThreadManager::Get()->GetShillManagerClient(); |
268 std::string type; | 270 std::string type; |
269 properties.GetStringWithoutPathExpansion(shill::kTypeProperty, &type); | 271 properties.GetStringWithoutPathExpansion(shill::kTypeProperty, &type); |
| 272 DCHECK(!type.empty()); |
270 if (NetworkTypePattern::Ethernet().MatchesType(type)) { | 273 if (NetworkTypePattern::Ethernet().MatchesType(type)) { |
271 InvokeErrorCallback( | 274 InvokeErrorCallback( |
272 "" /* no service path */, | 275 shill_property_util::GetNetworkIdFromProperties(properties), |
273 error_callback, | 276 error_callback, |
274 "ConfigureServiceForProfile is not implemented for Ethernet"); | 277 "ConfigureServiceForProfile: Invalid type: " + type); |
275 return; | 278 return; |
276 } | 279 } |
277 | 280 |
278 NET_LOG_USER("CreateConfiguration", type); | 281 NET_LOG_USER("CreateConfiguration: " + type, |
| 282 shill_property_util::GetNetworkIdFromProperties(properties)); |
279 LogConfigProperties("Configure", type, properties); | 283 LogConfigProperties("Configure", type, properties); |
280 | 284 |
281 std::string profile; | 285 std::string profile; |
282 properties.GetStringWithoutPathExpansion(shill::kProfileProperty, | 286 properties.GetStringWithoutPathExpansion(shill::kProfileProperty, |
283 &profile); | 287 &profile); |
284 DCHECK(!profile.empty()); | 288 DCHECK(!profile.empty()); |
285 manager->ConfigureServiceForProfile( | 289 manager->ConfigureServiceForProfile( |
286 dbus::ObjectPath(profile), | 290 dbus::ObjectPath(profile), |
287 properties, | 291 properties, |
288 base::Bind(&NetworkConfigurationHandler::RunCreateNetworkCallback, | 292 base::Bind(&NetworkConfigurationHandler::RunCreateNetworkCallback, |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 | 443 |
440 // static | 444 // static |
441 NetworkConfigurationHandler* NetworkConfigurationHandler::InitializeForTest( | 445 NetworkConfigurationHandler* NetworkConfigurationHandler::InitializeForTest( |
442 NetworkStateHandler* network_state_handler) { | 446 NetworkStateHandler* network_state_handler) { |
443 NetworkConfigurationHandler* handler = new NetworkConfigurationHandler(); | 447 NetworkConfigurationHandler* handler = new NetworkConfigurationHandler(); |
444 handler->Init(network_state_handler); | 448 handler->Init(network_state_handler); |
445 return handler; | 449 return handler; |
446 } | 450 } |
447 | 451 |
448 } // namespace chromeos | 452 } // namespace chromeos |
OLD | NEW |