diff options
author | Steven Laver <lavers@google.com> | 2019-10-24 16:40:00 -0700 |
---|---|---|
committer | Daniel Norman <danielnorman@google.com> | 2019-10-25 13:27:06 -0700 |
commit | 76b1977dca6b72018663a9cd476f7c3d0604db31 (patch) | |
tree | 788b2782ca42def0e34f44897369979e3089a322 /wifi/1.4/default/wifi_ap_iface.cpp | |
parent | 4db99f68ffc39b3e821b76fe66642e066149b645 (diff) | |
parent | 6acc7b439ee8813198ddaecb86757c2da5d6c872 (diff) |
Merge RP1A.191024.001
Change-Id: I22b7b600104c6d7fd4d448dd2efdeb20f95ca28b
Diffstat (limited to 'wifi/1.4/default/wifi_ap_iface.cpp')
-rw-r--r-- | wifi/1.4/default/wifi_ap_iface.cpp | 53 |
1 files changed, 36 insertions, 17 deletions
diff --git a/wifi/1.4/default/wifi_ap_iface.cpp b/wifi/1.4/default/wifi_ap_iface.cpp index 13ce2dddcb..e677f197b8 100644 --- a/wifi/1.4/default/wifi_ap_iface.cpp +++ b/wifi/1.4/default/wifi_ap_iface.cpp @@ -31,26 +31,11 @@ using hidl_return_util::validateAndCall; WifiApIface::WifiApIface( const std::string& ifname, const std::weak_ptr<legacy_hal::WifiLegacyHal> legacy_hal, - const std::weak_ptr<iface_util::WifiIfaceUtil> iface_util, - const std::weak_ptr<feature_flags::WifiFeatureFlags> feature_flags) + const std::weak_ptr<iface_util::WifiIfaceUtil> iface_util) : ifname_(ifname), legacy_hal_(legacy_hal), iface_util_(iface_util), - feature_flags_(feature_flags), - is_valid_(true) { - if (feature_flags_.lock()->isApMacRandomizationDisabled()) { - LOG(INFO) << "AP MAC randomization disabled"; - return; - } - LOG(INFO) << "AP MAC randomization enabled"; - // Set random MAC address - std::array<uint8_t, 6> randomized_mac = - iface_util_.lock()->getOrCreateRandomMacAddress(); - bool status = iface_util_.lock()->setMacAddress(ifname_, randomized_mac); - if (!status) { - LOG(ERROR) << "Failed to set random mac address"; - } -} + is_valid_(true) {} void WifiApIface::invalidate() { legacy_hal_.reset(); @@ -85,6 +70,20 @@ Return<void> WifiApIface::getValidFrequenciesForBand( hidl_status_cb, band); } +Return<void> WifiApIface::setMacAddress(const hidl_array<uint8_t, 6>& mac, + setMacAddress_cb hidl_status_cb) { + return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiApIface::setMacAddressInternal, hidl_status_cb, + mac); +} + +Return<void> WifiApIface::getFactoryMacAddress( + getFactoryMacAddress_cb hidl_status_cb) { + return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiApIface::getFactoryMacAddressInternal, + hidl_status_cb); +} + std::pair<WifiStatus, std::string> WifiApIface::getNameInternal() { return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_}; } @@ -111,6 +110,26 @@ WifiApIface::getValidFrequenciesForBandInternal(WifiBand band) { ifname_, hidl_struct_util::convertHidlWifiBandToLegacy(band)); return {createWifiStatusFromLegacyError(legacy_status), valid_frequencies}; } + +WifiStatus WifiApIface::setMacAddressInternal( + const std::array<uint8_t, 6>& mac) { + bool status = iface_util_.lock()->setMacAddress(ifname_, mac); + if (!status) { + return createWifiStatus(WifiStatusCode::ERROR_UNKNOWN); + } + return createWifiStatus(WifiStatusCode::SUCCESS); +} + +std::pair<WifiStatus, std::array<uint8_t, 6>> +WifiApIface::getFactoryMacAddressInternal() { + std::array<uint8_t, 6> mac = + iface_util_.lock()->getFactoryMacAddress(ifname_); + if (mac[0] == 0 && mac[1] == 0 && mac[2] == 0 && mac[3] == 0 && + mac[4] == 0 && mac[5] == 0) { + return {createWifiStatus(WifiStatusCode::ERROR_UNKNOWN), mac}; + } + return {createWifiStatus(WifiStatusCode::SUCCESS), mac}; +} } // namespace implementation } // namespace V1_4 } // namespace wifi |