| OLD | NEW |
| 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/network_device_handler_impl.h" | 5 #include "chromeos/network/network_device_handler_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/message_loop/message_loop_proxy.h" | 9 #include "base/message_loop/message_loop_proxy.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 const bool allow_roaming) { | 391 const bool allow_roaming) { |
| 392 cellular_allow_roaming_ = allow_roaming; | 392 cellular_allow_roaming_ = allow_roaming; |
| 393 ApplyCellularAllowRoamingToShill(); | 393 ApplyCellularAllowRoamingToShill(); |
| 394 } | 394 } |
| 395 | 395 |
| 396 void NetworkDeviceHandlerImpl::SetWifiTDLSEnabled( | 396 void NetworkDeviceHandlerImpl::SetWifiTDLSEnabled( |
| 397 const std::string& ip_or_mac_address, | 397 const std::string& ip_or_mac_address, |
| 398 bool enabled, | 398 bool enabled, |
| 399 const network_handler::StringResultCallback& callback, | 399 const network_handler::StringResultCallback& callback, |
| 400 const network_handler::ErrorCallback& error_callback) { | 400 const network_handler::ErrorCallback& error_callback) { |
| 401 const DeviceState* device_state = | 401 const DeviceState* device_state = GetWifiDeviceState(error_callback); |
| 402 network_state_handler_->GetDeviceStateByType(NetworkTypePattern::WiFi()); | 402 if (!device_state) |
| 403 if (!device_state) { | |
| 404 if (error_callback.is_null()) | |
| 405 return; | |
| 406 scoped_ptr<base::DictionaryValue> error_data(new base::DictionaryValue); | |
| 407 error_data->SetString(network_handler::kErrorName, kErrorDeviceMissing); | |
| 408 error_callback.Run(kErrorDeviceMissing, error_data.Pass()); | |
| 409 return; | 403 return; |
| 410 } | 404 |
| 411 TDLSOperationParams params; | 405 TDLSOperationParams params; |
| 412 params.operation = enabled ? shill::kTDLSSetupOperation | 406 params.operation = enabled ? shill::kTDLSSetupOperation |
| 413 : shill::kTDLSTeardownOperation; | 407 : shill::kTDLSTeardownOperation; |
| 414 params.ip_or_mac_address = ip_or_mac_address; | 408 params.ip_or_mac_address = ip_or_mac_address; |
| 415 CallPerformTDLSOperation( | 409 CallPerformTDLSOperation( |
| 416 device_state->path(), params, callback, error_callback); | 410 device_state->path(), params, callback, error_callback); |
| 417 } | 411 } |
| 418 | 412 |
| 419 void NetworkDeviceHandlerImpl::GetWifiTDLSStatus( | 413 void NetworkDeviceHandlerImpl::GetWifiTDLSStatus( |
| 420 const std::string& ip_or_mac_address, | 414 const std::string& ip_or_mac_address, |
| 421 const network_handler::StringResultCallback& callback, | 415 const network_handler::StringResultCallback& callback, |
| 422 const network_handler::ErrorCallback& error_callback) { | 416 const network_handler::ErrorCallback& error_callback) { |
| 423 const DeviceState* device_state = | 417 const DeviceState* device_state = GetWifiDeviceState(error_callback); |
| 424 network_state_handler_->GetDeviceStateByType(NetworkTypePattern::WiFi()); | 418 if (!device_state) |
| 425 if (!device_state) { | |
| 426 if (error_callback.is_null()) | |
| 427 return; | |
| 428 scoped_ptr<base::DictionaryValue> error_data(new base::DictionaryValue); | |
| 429 error_data->SetString(network_handler::kErrorName, kErrorDeviceMissing); | |
| 430 error_callback.Run(kErrorDeviceMissing, error_data.Pass()); | |
| 431 return; | 419 return; |
| 432 } | 420 |
| 433 TDLSOperationParams params; | 421 TDLSOperationParams params; |
| 434 params.operation = shill::kTDLSStatusOperation; | 422 params.operation = shill::kTDLSStatusOperation; |
| 435 params.ip_or_mac_address = ip_or_mac_address; | 423 params.ip_or_mac_address = ip_or_mac_address; |
| 436 CallPerformTDLSOperation( | 424 CallPerformTDLSOperation( |
| 437 device_state->path(), params, callback, error_callback); | 425 device_state->path(), params, callback, error_callback); |
| 438 } | 426 } |
| 439 | 427 |
| 428 void NetworkDeviceHandlerImpl::AddWifiWakeOnPacketConnection( |
| 429 const net::IPEndPoint& ip_endpoint, |
| 430 const base::Closure& callback, |
| 431 const network_handler::ErrorCallback& error_callback) { |
| 432 const DeviceState* device_state = GetWifiDeviceState(error_callback); |
| 433 if (!device_state) |
| 434 return; |
| 435 |
| 436 DBusThreadManager::Get()->GetShillDeviceClient()->AddWakeOnPacketConnection( |
| 437 dbus::ObjectPath(device_state->path()), |
| 438 ip_endpoint, |
| 439 callback, |
| 440 base::Bind(&HandleShillCallFailure, |
| 441 device_state->path(), |
| 442 error_callback)); |
| 443 } |
| 444 |
| 445 void NetworkDeviceHandlerImpl::RemoveWifiWakeOnPacketConnection( |
| 446 const net::IPEndPoint& ip_endpoint, |
| 447 const base::Closure& callback, |
| 448 const network_handler::ErrorCallback& error_callback) { |
| 449 const DeviceState* device_state = GetWifiDeviceState(error_callback); |
| 450 if (!device_state) |
| 451 return; |
| 452 |
| 453 DBusThreadManager::Get() |
| 454 ->GetShillDeviceClient() |
| 455 ->RemoveWakeOnPacketConnection(dbus::ObjectPath(device_state->path()), |
| 456 ip_endpoint, |
| 457 callback, |
| 458 base::Bind(&HandleShillCallFailure, |
| 459 device_state->path(), |
| 460 error_callback)); |
| 461 } |
| 462 |
| 463 void NetworkDeviceHandlerImpl::RemoveAllWifiWakeOnPacketConnections( |
| 464 const base::Closure& callback, |
| 465 const network_handler::ErrorCallback& error_callback) { |
| 466 const DeviceState* device_state = GetWifiDeviceState(error_callback); |
| 467 if (!device_state) |
| 468 return; |
| 469 |
| 470 DBusThreadManager::Get() |
| 471 ->GetShillDeviceClient() |
| 472 ->RemoveAllWakeOnPacketConnections(dbus::ObjectPath(device_state->path()), |
| 473 callback, |
| 474 base::Bind(&HandleShillCallFailure, |
| 475 device_state->path(), |
| 476 error_callback)); |
| 477 } |
| 478 |
| 440 void NetworkDeviceHandlerImpl::DeviceListChanged() { | 479 void NetworkDeviceHandlerImpl::DeviceListChanged() { |
| 441 ApplyCellularAllowRoamingToShill(); | 480 ApplyCellularAllowRoamingToShill(); |
| 442 } | 481 } |
| 443 | 482 |
| 444 NetworkDeviceHandlerImpl::NetworkDeviceHandlerImpl() | 483 NetworkDeviceHandlerImpl::NetworkDeviceHandlerImpl() |
| 445 : network_state_handler_(NULL), | 484 : network_state_handler_(NULL), |
| 446 cellular_allow_roaming_(false) {} | 485 cellular_allow_roaming_(false) {} |
| 447 | 486 |
| 448 void NetworkDeviceHandlerImpl::Init( | 487 void NetworkDeviceHandlerImpl::Init( |
| 449 NetworkStateHandler* network_state_handler) { | 488 NetworkStateHandler* network_state_handler) { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 476 continue; | 515 continue; |
| 477 | 516 |
| 478 SetDevicePropertyInternal(device_state->path(), | 517 SetDevicePropertyInternal(device_state->path(), |
| 479 shill::kCellularAllowRoamingProperty, | 518 shill::kCellularAllowRoamingProperty, |
| 480 base::FundamentalValue(new_device_value), | 519 base::FundamentalValue(new_device_value), |
| 481 base::Bind(&base::DoNothing), | 520 base::Bind(&base::DoNothing), |
| 482 network_handler::ErrorCallback()); | 521 network_handler::ErrorCallback()); |
| 483 } | 522 } |
| 484 } | 523 } |
| 485 | 524 |
| 525 const DeviceState* NetworkDeviceHandlerImpl::GetWifiDeviceState( |
| 526 const network_handler::ErrorCallback& error_callback) { |
| 527 const DeviceState* device_state = |
| 528 network_state_handler_->GetDeviceStateByType(NetworkTypePattern::WiFi()); |
| 529 if (!device_state) { |
| 530 if (error_callback.is_null()) |
| 531 return NULL; |
| 532 scoped_ptr<base::DictionaryValue> error_data(new base::DictionaryValue); |
| 533 error_data->SetString(network_handler::kErrorName, kErrorDeviceMissing); |
| 534 error_callback.Run(kErrorDeviceMissing, error_data.Pass()); |
| 535 return NULL; |
| 536 } |
| 537 |
| 538 return device_state; |
| 539 } |
| 540 |
| 486 } // namespace chromeos | 541 } // namespace chromeos |
| OLD | NEW |