aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ap/ieee802_1x.c5
-rw-r--r--src/drivers/driver_nl80211.c6
-rw-r--r--wpa_supplicant/ctrl_iface_unix.c2
-rw-r--r--wpa_supplicant/p2p_supplicant.c13
4 files changed, 20 insertions, 6 deletions
diff --git a/src/ap/ieee802_1x.c b/src/ap/ieee802_1x.c
index dd0df1d..9bbd1ff 100644
--- a/src/ap/ieee802_1x.c
+++ b/src/ap/ieee802_1x.c
@@ -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
}
}
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index e099a67..b9503f1 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -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;
diff --git a/wpa_supplicant/ctrl_iface_unix.c b/wpa_supplicant/ctrl_iface_unix.c
index 8dba46d..31600fc 100644
--- a/wpa_supplicant/ctrl_iface_unix.c
+++ b/wpa_supplicant/ctrl_iface_unix.c
@@ -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);
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index f4df4b0..3dc633c 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -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);