Merge "[wpa_supplicant] Cumulative patch from 9fde14607"
diff --git a/wpa_supplicant/hidl/1.3/sta_iface.cpp b/wpa_supplicant/hidl/1.3/sta_iface.cpp
index e82305d..f1c4fbe 100644
--- a/wpa_supplicant/hidl/1.3/sta_iface.cpp
+++ b/wpa_supplicant/hidl/1.3/sta_iface.cpp
@@ -29,7 +29,9 @@
namespace {
using android::hardware::wifi::supplicant::V1_0::SupplicantStatus;
using android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode;
-using android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface;
+using android::hardware::wifi::supplicant::V1_3::ISupplicantStaIface;
+using android::hardware::wifi::supplicant::V1_3::ConnectionCapabilities;
+using android::hardware::wifi::supplicant::V1_3::WifiTechnology;
using android::hardware::wifi::supplicant::V1_3::implementation::HidlManager;
constexpr uint32_t kMaxAnqpElems = 100;
@@ -612,6 +614,14 @@
return {{SupplicantStatusCode::SUCCESS, ""}, network};
}
+Return<void> StaIface::getConnectionCapabilities(
+ getConnectionCapabilities_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_UNKNOWN,
+ &StaIface::getConnectionCapabilitiesInternal, _hidl_cb);
+}
+
SupplicantStatus StaIface::removeNetworkInternal(SupplicantNetworkId id)
{
struct wpa_supplicant *wpa_s = retrieveIfacePtr();
@@ -1308,6 +1318,28 @@
#endif
}
+std::pair<SupplicantStatus, ConnectionCapabilities>
+StaIface::getConnectionCapabilitiesInternal()
+{
+ struct wpa_supplicant *wpa_s = retrieveIfacePtr();
+ struct ConnectionCapabilities capa;
+
+ if (wpa_s->connection_set) {
+ if (wpa_s->connection_he) {
+ capa.technology = WifiTechnology::HE;
+ } else if (wpa_s->connection_vht) {
+ capa.technology = WifiTechnology::VHT;
+ } else if (wpa_s->connection_ht) {
+ capa.technology = WifiTechnology::HT;
+ } else {
+ capa.technology = WifiTechnology::LEGACY;
+ }
+ } else {
+ capa.technology = WifiTechnology::UNKNOWN;
+ }
+ return {{SupplicantStatusCode::SUCCESS, ""}, capa};
+}
+
/**
* Retrieve the underlying |wpa_supplicant| struct
* pointer for this iface.
diff --git a/wpa_supplicant/hidl/1.3/sta_iface.h b/wpa_supplicant/hidl/1.3/sta_iface.h
index b425bec..47fa0b4 100644
--- a/wpa_supplicant/hidl/1.3/sta_iface.h
+++ b/wpa_supplicant/hidl/1.3/sta_iface.h
@@ -182,6 +182,8 @@
uint32_t own_bootstrap_id,
startDppConfiguratorInitiator_cb _hidl_cb) override;
Return<void> stopDppInitiator(stopDppInitiator_cb _hidl_cb) override;
+ Return<void> getConnectionCapabilities(
+ getConnectionCapabilities_cb _hidl_cb) override;
private:
// Corresponding worker functions for the HIDL methods.
@@ -265,7 +267,7 @@
SupplicantStatus startDppEnrolleeInitiatorInternal(uint32_t peer_bootstrap_id,
uint32_t own_bootstrap_id);
SupplicantStatus stopDppInitiatorInternal();
-
+ std::pair<SupplicantStatus, ConnectionCapabilities> getConnectionCapabilitiesInternal();
struct wpa_supplicant* retrieveIfacePtr();