OSDN Git Service

wpa_supplicant: Update to BRCM version 0.8.0-37
authorDmitry Shmidt <dimitrysh@google.com>
Sat, 25 Aug 2012 00:03:35 +0000 (17:03 -0700)
committerDmitry Shmidt <dimitrysh@google.com>
Sat, 25 Aug 2012 00:03:35 +0000 (17:03 -0700)
- Allow AP_SME support
- Do not send disassoc after EAP failure since AP_SME is enabled
  and del_station will be called
- Allow group idle timeout to run during WPS disconnect

Change-Id: I7e9e15b9c44804196bc98c01d51a71e24412b91d
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
src/ap/ieee802_1x.c
src/drivers/driver_nl80211.c
wpa_supplicant/ctrl_iface_unix.c
wpa_supplicant/p2p_supplicant.c

index dd0df1d..9bbd1ff 100644 (file)
@@ -2193,7 +2193,12 @@ static void ieee802_1x_finished(struct hostapd_data *hapd,
                 * driver reorder operations.
                 */
                os_sleep(0, 10000);
+#ifndef ANDROID_P2P
+               /* We need not do this for driver. For AP-SME flags if we send this disassoc,
+                 * the p2p_client is gettig disassoc after it has completed the assoc
+                 */
                ap_sta_disconnect(hapd, sta, sta->addr,
                                  WLAN_REASON_IEEE_802_1X_AUTH_FAILED);
+#endif
        }
 }
index e099a67..b9503f1 100644 (file)
@@ -2566,9 +2566,8 @@ broken_combination:
                                WPA_DRIVER_FLAGS_TDLS_EXTERNAL_SETUP;
                }
        }
-#ifndef ANDROID_P2P
+
        if (tb[NL80211_ATTR_DEVICE_AP_SME])
-#endif
                info->device_ap_sme = 1;
 
        if (tb[NL80211_ATTR_FEATURE_FLAGS]) {
@@ -2646,9 +2645,8 @@ static int wpa_driver_nl80211_capa(struct wpa_driver_nl80211_data *drv)
        drv->capa.flags |= WPA_DRIVER_FLAGS_SANE_ERROR_CODES;
        drv->capa.flags |= WPA_DRIVER_FLAGS_SET_KEYS_AFTER_ASSOC_DONE;
        drv->capa.flags |= WPA_DRIVER_FLAGS_EAPOL_TX_STATUS;
-#ifndef ANDROID_P2P
+
        if (!info.device_ap_sme)
-#endif
                drv->capa.flags |= WPA_DRIVER_FLAGS_DEAUTH_TX_STATUS;
 
        drv->device_ap_sme = info.device_ap_sme;
index 8dba46d..31600fc 100644 (file)
@@ -184,8 +184,8 @@ static void wpa_supplicant_ctrl_iface_receive(int sock, void *eloop_ctx,
                                wpa_s = eloop_ctx;
                        }
                        os_memmove(ifname, ifend, strlen(ifend) + 1);
-                       wpa_printf(MSG_DEBUG, "wpa_s %p cmd %s", wpa_s, buf);
                }
+               wpa_printf(MSG_INFO, "wpa_s %p cmd %s", wpa_s, buf);
 #endif /* defined CONFIG_P2P && defined ANDROID_P2P */
                reply = wpa_supplicant_ctrl_iface_process(wpa_s, buf,
                                                          &reply_len);
index f4df4b0..3dc633c 100644 (file)
@@ -3004,7 +3004,17 @@ static void wpas_p2p_join_scan_req(struct wpa_supplicant *wpa_s, int freq)
        struct wpabuf *wps_ie, *ies;
        size_t ielen;
        int freqs[2] = { 0, 0 };
+#ifdef ANDROID_P2P
+       int oper_freq;
 
+       /* If freq is not provided, check the operating freq of the GO and do a
+        * a directed scan to save time
+        */
+       if(!freq) {
+               freq = (oper_freq = p2p_get_oper_freq(wpa_s->global->p2p,
+                        wpa_s->pending_join_iface_addr) == -1) ? 0 : oper_freq; 
+       }
+#endif
        os_memset(&params, 0, sizeof(params));
 
        /* P2P Wildcard SSID */
@@ -4384,7 +4394,7 @@ static void wpas_p2p_set_group_idle_timeout(struct wpa_supplicant *wpa_s)
                           "during provisioning");
                return;
        }
-
+#ifndef ANDROID_P2P
        if (wpa_s->show_group_started) {
                /*
                 * Use the normal group formation timeout between the end of
@@ -4397,6 +4407,7 @@ static void wpas_p2p_set_group_idle_timeout(struct wpa_supplicant *wpa_s)
                           "complete");
                return;
        }
+#endif
 
        wpa_printf(MSG_DEBUG, "P2P: Set P2P group idle timeout to %u seconds",
                   timeout);