Merge "wpa_supplicant(hidl): Add support for disabling auto connect"
am: 8d197ca3fb
Change-Id: I31df8019f3013d2ac8565871d1585d427ed1c9b9
diff --git a/wpa_supplicant/hidl/sta_iface.cpp b/wpa_supplicant/hidl/sta_iface.cpp
index 8e5fa73..aee2ae9 100644
--- a/wpa_supplicant/hidl/sta_iface.cpp
+++ b/wpa_supplicant/hidl/sta_iface.cpp
@@ -488,6 +488,14 @@
&StaIface::removeExtRadioWorkInternal, _hidl_cb, id);
}
+Return<void> StaIface::enableAutoReconnect(
+ bool enable, enableAutoReconnect_cb _hidl_cb)
+{
+ return validateAndCall(
+ this, SupplicantStatusCode::FAILURE_IFACE_INVALID,
+ &StaIface::enableAutoReconnectInternal, _hidl_cb, enable);
+}
+
std::pair<SupplicantStatus, std::string> StaIface::getNameInternal()
{
return {{SupplicantStatusCode::SUCCESS, ""}, ifname_};
@@ -988,6 +996,13 @@
return {SupplicantStatusCode::FAILURE_UNKNOWN, ""};
}
+SupplicantStatus StaIface::enableAutoReconnectInternal(bool enable)
+{
+ struct wpa_supplicant *wpa_s = retrieveIfacePtr();
+ wpa_s->auto_reconnect_disabled = enable ? 0 : 1;
+ return {SupplicantStatusCode::SUCCESS, ""};
+}
+
/**
* Retrieve the underlying |wpa_supplicant| struct
* pointer for this iface.
diff --git a/wpa_supplicant/hidl/sta_iface.h b/wpa_supplicant/hidl/sta_iface.h
index 32e0e7c..6e62260 100644
--- a/wpa_supplicant/hidl/sta_iface.h
+++ b/wpa_supplicant/hidl/sta_iface.h
@@ -153,6 +153,8 @@
uint32_t timeout_in_sec, addExtRadioWork_cb _hidl_cb) override;
Return<void> removeExtRadioWork(
uint32_t id, removeExtRadioWork_cb _hidl_cb) override;
+ Return<void> enableAutoReconnect(
+ bool enable, enableAutoReconnect_cb _hidl_cb) override;
private:
// Corresponding worker functions for the HIDL methods.
@@ -223,6 +225,7 @@
const std::string& name, uint32_t freq_in_mhz,
uint32_t timeout_in_sec);
SupplicantStatus removeExtRadioWorkInternal(uint32_t id);
+ SupplicantStatus enableAutoReconnectInternal(bool enable);
struct wpa_supplicant* retrieveIfacePtr();