Chromium Code Reviews| Index: chromeos/network/network_device_handler_impl.cc |
| diff --git a/chromeos/network/network_device_handler_impl.cc b/chromeos/network/network_device_handler_impl.cc |
| index ac5e47b7a2cb7198dfe5b680659e14ad1718a934..f6782677170744acaac0bf8bb25c5ae09642ae81 100644 |
| --- a/chromeos/network/network_device_handler_impl.cc |
| +++ b/chromeos/network/network_device_handler_impl.cc |
| @@ -437,6 +437,78 @@ void NetworkDeviceHandlerImpl::GetWifiTDLSStatus( |
| device_state->path(), params, callback, error_callback); |
| } |
| +void NetworkDeviceHandlerImpl::AddWifiWakeOnPacketConnection( |
| + const net::IPEndPoint& ip_endpoint, |
| + const base::Closure& callback, |
| + const network_handler::ErrorCallback& error_callback) { |
| + const DeviceState* device_state = |
| + network_state_handler_->GetDeviceStateByType(NetworkTypePattern::WiFi()); |
| + if (!device_state) { |
| + if (error_callback.is_null()) |
| + return; |
| + scoped_ptr<base::DictionaryValue> error_data(new base::DictionaryValue); |
| + error_data->SetString(network_handler::kErrorName, kErrorDeviceMissing); |
| + error_callback.Run(kErrorDeviceMissing, error_data.Pass()); |
| + return; |
| + } |
|
stevenjb
2014/11/13 22:20:17
This entire clause should be moved to a file local
Chirantan Ekbote
2014/11/14 02:47:43
Done.
|
| + |
| + DBusThreadManager::Get()->GetShillDeviceClient()->AddWakeOnPacketConnection( |
| + dbus::ObjectPath(device_state->path()), |
| + ip_endpoint, |
| + callback, |
| + base::Bind(&HandleShillCallFailure, |
| + device_state->path(), |
| + error_callback)); |
| +} |
| + |
| +void NetworkDeviceHandlerImpl::RemoveWifiWakeOnPacketConnection( |
| + const net::IPEndPoint& ip_endpoint, |
| + const base::Closure& callback, |
| + const network_handler::ErrorCallback& error_callback) { |
| + const DeviceState* device_state = |
| + network_state_handler_->GetDeviceStateByType(NetworkTypePattern::WiFi()); |
| + if (!device_state) { |
| + if (error_callback.is_null()) |
| + return; |
| + scoped_ptr<base::DictionaryValue> error_data(new base::DictionaryValue); |
| + error_data->SetString(network_handler::kErrorName, kErrorDeviceMissing); |
| + error_callback.Run(kErrorDeviceMissing, error_data.Pass()); |
| + return; |
| + } |
| + |
| + DBusThreadManager::Get() |
| + ->GetShillDeviceClient() |
| + ->RemoveWakeOnPacketConnection(dbus::ObjectPath(device_state->path()), |
| + ip_endpoint, |
| + callback, |
| + base::Bind(&HandleShillCallFailure, |
| + device_state->path(), |
| + error_callback)); |
| +} |
| + |
| +void NetworkDeviceHandlerImpl::RemoveAllWifiWakeOnPacketConnections( |
| + const base::Closure& callback, |
| + const network_handler::ErrorCallback& error_callback) { |
| + const DeviceState* device_state = |
| + network_state_handler_->GetDeviceStateByType(NetworkTypePattern::WiFi()); |
| + if (!device_state) { |
| + if (error_callback.is_null()) |
| + return; |
| + scoped_ptr<base::DictionaryValue> error_data(new base::DictionaryValue); |
| + error_data->SetString(network_handler::kErrorName, kErrorDeviceMissing); |
| + error_callback.Run(kErrorDeviceMissing, error_data.Pass()); |
| + return; |
| + } |
| + |
| + DBusThreadManager::Get() |
| + ->GetShillDeviceClient() |
| + ->RemoveAllWakeOnPacketConnections(dbus::ObjectPath(device_state->path()), |
| + callback, |
| + base::Bind(&HandleShillCallFailure, |
| + device_state->path(), |
| + error_callback)); |
| +} |
| + |
| void NetworkDeviceHandlerImpl::DeviceListChanged() { |
| ApplyCellularAllowRoamingToShill(); |
| } |