diff -urp contrib/wpa_supplicant/events.c.orig contrib/wpa_supplicant/events.c --- contrib/wpa_supplicant/events.c.orig Tue Mar 7 13:44:45 2006 +++ contrib/wpa_supplicant/events.c Wed Jul 26 19:23:43 2006 @@ -482,6 +482,22 @@ static void wpa_supplicant_event_scan_re rsn_preauth_scan_results(wpa_s->wpa, results, num); } else { wpa_printf(MSG_DEBUG, "No suitable AP found."); + + /* + * try to associate with the first IBSS network + * if there is any + */ + for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) { + if (ssid->disabled || ssid->ssid == NULL) + continue; + if (ssid->mode != IEEE80211_MODE_IBSS) + continue; + wpa_printf(MSG_DEBUG, + "Trying to associate with IBSS %s", + wpa_ssid_txt(ssid->ssid, ssid->ssid_len)); + wpa_supplicant_associate(wpa_s, NULL, ssid); + return; + } wpa_supplicant_req_scan(wpa_s, 5, 0); } }