summaryrefslogtreecommitdiffstats
path: root/wifi
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2016-12-06 10:12:59 -0800
committerRoshan Pius <rpius@google.com>2016-12-08 17:58:50 -0800
commit7a41d9d59f23e3c897f499118c9dba69a6baf2d4 (patch)
tree8260f02ff87befbbc001b5c8bc43c89e2e47b9d2 /wifi
parentd476754bc094a4b5e59b72e0903bcbc2eb6e2300 (diff)
downloadandroid_hardware_interfaces-7a41d9d59f23e3c897f499118c9dba69a6baf2d4.tar.gz
android_hardware_interfaces-7a41d9d59f23e3c897f499118c9dba69a6baf2d4.tar.bz2
android_hardware_interfaces-7a41d9d59f23e3c897f499118c9dba69a6baf2d4.zip
wifi: Reset internal callback pointers on failure
If these are not reset, any subsequent calls will not be processed because the callback pointers are set. Bug: 33379596 Test: Compiles Change-Id: Ia44385fc185b7cf262366af7b0e0e62c32a0d9a0
Diffstat (limited to 'wifi')
-rw-r--r--wifi/1.0/default/wifi_legacy_hal.cpp31
1 files changed, 20 insertions, 11 deletions
diff --git a/wifi/1.0/default/wifi_legacy_hal.cpp b/wifi/1.0/default/wifi_legacy_hal.cpp
index 640a2f215..bf61d835d 100644
--- a/wifi/1.0/default/wifi_legacy_hal.cpp
+++ b/wifi/1.0/default/wifi_legacy_hal.cpp
@@ -571,12 +571,16 @@ wifi_error WifiLegacyHal::startRssiMonitoring(
std::copy(bssid_ptr, bssid_ptr + 6, std::begin(bssid_arr));
on_threshold_breached_user_callback(id, bssid_arr, rssi);
};
- return global_func_table_.wifi_start_rssi_monitoring(
- id,
- wlan_interface_handle_,
- max_rssi,
- min_rssi,
- {onRssiThresholdBreached});
+ wifi_error status =
+ global_func_table_.wifi_start_rssi_monitoring(id,
+ wlan_interface_handle_,
+ max_rssi,
+ min_rssi,
+ {onRssiThresholdBreached});
+ if (status != WIFI_SUCCESS) {
+ on_rssi_threshold_breached_internal_callback = nullptr;
+ }
+ return status;
}
wifi_error WifiLegacyHal::stopRssiMonitoring(wifi_request_id id) {
@@ -751,11 +755,16 @@ wifi_error WifiLegacyHal::startRttRangeRequest(
};
std::vector<wifi_rtt_config> rtt_configs_internal(rtt_configs);
- return global_func_table_.wifi_rtt_range_request(id,
- wlan_interface_handle_,
- rtt_configs.size(),
- rtt_configs_internal.data(),
- {onRttResults});
+ wifi_error status =
+ global_func_table_.wifi_rtt_range_request(id,
+ wlan_interface_handle_,
+ rtt_configs.size(),
+ rtt_configs_internal.data(),
+ {onRttResults});
+ if (status != WIFI_SUCCESS) {
+ on_rtt_results_internal_callback = nullptr;
+ }
+ return status;
}
wifi_error WifiLegacyHal::cancelRttRangeRequest(