From 7a41d9d59f23e3c897f499118c9dba69a6baf2d4 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Tue, 6 Dec 2016 10:12:59 -0800 Subject: [PATCH] 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 --- wifi/1.0/default/wifi_legacy_hal.cpp | 31 ++++++++++++++++++---------- 1 file 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 640a2f215a..bf61d835d7 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 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(