Interworking: Re-trigger scan if no connect attempt is done
authorMikael Kanstrup <mikael.kanstrup@sonymobile.com>
Sat, 31 May 2014 10:23:00 +0000 (13:23 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 31 May 2014 10:23:00 +0000 (13:23 +0300)
For one specific case when running with Interworking enabled the
re-initialisation of the scan timer is missing. This makes auto connect
to a configured network fail.

The case is:
- Interworking credentials available, but do not match
- Auto interworking is enabled (auto_interworking=1)
- Interworking auto select is disabled (i.e., this is from
  auto_interworking=1, not from INTERWORKING_SELECT auto)
- No configured (enabled and non blacklisted) networks are present
  in scan results list with full match
- Interworking finds matching networks (it does not do full security
  policy match)

This patch covers the case and re-initialises the scan timer to allow
search for a suitable network to continue.

Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
wpa_supplicant/interworking.c

index a8ecb8c..6d1539c 100644 (file)
@@ -2397,9 +2397,10 @@ static void interworking_select_network(struct wpa_supplicant *wpa_s)
                if (interworking_find_network_match(wpa_s)) {
                        wpa_printf(MSG_DEBUG, "Interworking: Possible BSS "
                                   "match for enabled network configurations");
-                       if (wpa_s->auto_select)
+                       if (wpa_s->auto_select) {
                                interworking_reconnect(wpa_s);
-                       return;
+                               return;
+                       }
                }
 
                if (wpa_s->auto_network_select) {