diff options
Diffstat (limited to 'wpa_supplicant/sme.c')
| -rw-r--r-- | wpa_supplicant/sme.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/wpa_supplicant/sme.c b/wpa_supplicant/sme.c index a860afb8..2538ba0c 100644 --- a/wpa_supplicant/sme.c +++ b/wpa_supplicant/sme.c @@ -477,8 +477,14 @@ void sme_authenticate(struct wpa_supplicant *wpa_s, } if (radio_work_pending(wpa_s, "sme-connect")) { - wpa_dbg(wpa_s, MSG_DEBUG, "SME: Reject sme_authenticate() call since pending work exist"); - return; + /* + * The previous sme-connect work might no longer be valid due to + * the fact that the BSS list was updated. In addition, it makes + * sense to adhere to the 'newer' decision. + */ + wpa_dbg(wpa_s, MSG_DEBUG, + "SME: Remove previous pending sme-connect"); + radio_remove_works(wpa_s, "sme-connect", 0); } cwork = os_zalloc(sizeof(*cwork)); |
