diff options
| author | Roshan Pius <rpius@google.com> | 2016-12-06 10:12:59 -0800 |
|---|---|---|
| committer | Roshan Pius <rpius@google.com> | 2016-12-08 17:58:50 -0800 |
| commit | 7a41d9d59f23e3c897f499118c9dba69a6baf2d4 (patch) | |
| tree | 8260f02ff87befbbc001b5c8bc43c89e2e47b9d2 /wifi | |
| parent | d476754bc094a4b5e59b72e0903bcbc2eb6e2300 (diff) | |
| download | android_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.cpp | 31 |
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( |
