MIDDLEWARE-2134: Fix spurious link up/down when AP IP address range changes

Fixed additional link down/up events in whd_wifi_link_state_change_handler by checking additional condition during the transition.
pull/11894/head
Lei Zhang 2019-10-24 17:43:05 -07:00 committed by adbridge
parent 64f9b596bf
commit 818a652e86
1 changed files with 11 additions and 3 deletions

View File

@ -162,13 +162,21 @@ static void *whd_wifi_link_state_change_handler(whd_interface_t ifp,
return NULL; return NULL;
} }
if (event_header->event_type == WLC_E_DEAUTH_IND || if ((event_header->event_type == WLC_E_DEAUTH_IND) ||
event_header->event_type == WLC_E_DISASSOC_IND) { (event_header->event_type == WLC_E_DISASSOC_IND) ||
((event_header->event_type == WLC_E_PSK_SUP) &&
(event_header->status == WLC_SUP_KEYED) &&
(event_header->reason == WLC_E_SUP_DEAUTH))) {
whd_emac_wifi_link_state_changed(ifp, WHD_FALSE); whd_emac_wifi_link_state_changed(ifp, WHD_FALSE);
return handler_user_data;
} }
if (whd_wifi_is_ready_to_transceive(ifp) == WHD_SUCCESS) { if (((event_header->event_type == WLC_E_PSK_SUP) &&
(event_header->status == WLC_SUP_KEYED) &&
(event_header->reason == WLC_E_SUP_OTHER)) ||
(whd_wifi_is_ready_to_transceive(ifp) == WHD_SUCCESS)) {
whd_emac_wifi_link_state_changed(ifp, WHD_TRUE); whd_emac_wifi_link_state_changed(ifp, WHD_TRUE);
return handler_user_data;
} }
return handler_user_data; return handler_user_data;