| // Copyright 2021 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "rmad/system/shill_client_impl.h" |
| |
| #include <memory> |
| #include <utility> |
| |
| #include <base/logging.h> |
| #include <brillo/errors/error.h> |
| #include <dbus/shill/dbus-constants.h> |
| #include <shill/dbus-proxies.h> |
| |
| namespace rmad { |
| |
| ShillClientImpl::ShillClientImpl(const scoped_refptr<dbus::Bus>& bus) { |
| flimflam_manager_proxy_ = |
| std::make_unique<org::chromium::flimflam::ManagerProxy>(bus); |
| } |
| |
| ShillClientImpl::ShillClientImpl( |
| std::unique_ptr<org::chromium::flimflam::ManagerProxyInterface> |
| flimflam_manager_proxy) |
| : flimflam_manager_proxy_(std::move(flimflam_manager_proxy)) {} |
| |
| bool ShillClientImpl::DisableCellular() const { |
| brillo::ErrorPtr error; |
| if (!flimflam_manager_proxy_->DisableTechnology(shill::kTypeCellular, |
| &error) || |
| error) { |
| LOG(ERROR) << "Failed to call DisableTechnology from shill proxy"; |
| return false; |
| } |
| |
| // There is no reply. Assume success if there's no errors. |
| return true; |
| } |
| |
| } // namespace rmad |