| // Copyright 2018 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 "shill/ethernet/ethernet_eap_service.h" |
| |
| #include <base/strings/string_number_conversions.h> |
| #include <base/strings/stringprintf.h> |
| |
| #include "shill/eap_credentials.h" |
| #include "shill/ethernet/ethernet_eap_provider.h" |
| #include "shill/manager.h" |
| #include "shill/technology.h" |
| |
| namespace shill { |
| |
| EthernetEapService::EthernetEapService(Manager* manager) |
| : Service(manager, Technology::kEthernetEap) { |
| log_name_ = "etherneteap_" + base::NumberToString(serial_number()); |
| friendly_name_ = "Ethernet EAP Parameters"; |
| SetEapCredentials(new EapCredentials()); |
| } |
| |
| EthernetEapService::~EthernetEapService() = default; |
| |
| std::string EthernetEapService::GetStorageIdentifier() const { |
| return base::StringPrintf("%s_all", technology().GetName().c_str()); |
| } |
| |
| RpcIdentifier EthernetEapService::GetDeviceRpcId(Error* /*error*/) const { |
| return RpcIdentifier("/"); |
| } |
| |
| void EthernetEapService::OnEapCredentialsChanged( |
| Service::UpdateCredentialsReason reason) { |
| if (reason == Service::kReasonPropertyUpdate) { |
| // Although the has_ever_connected_ field is not used in the |
| // same manner as the other services, we still make this call |
| // to maintain consistent behavior by the EAP Credential Change |
| // call. |
| SetHasEverConnected(false); |
| } |
| manager()->ethernet_eap_provider()->OnCredentialsChanged(); |
| } |
| |
| bool EthernetEapService::Unload() { |
| Service::Unload(); |
| manager()->ethernet_eap_provider()->OnCredentialsChanged(); |
| return false; |
| } |
| |
| } // namespace shill |