From 0aed3f5a8019db2f1bbe802a4543fba90af58e13 Mon Sep 17 00:00:00 2001 From: Avraham Stern Date: Wed, 14 Oct 2015 12:26:30 +0300 Subject: [PATCH] P2P: Set CTWindow only for P2P GO CTWindow was set for all AP interfaces if the driver supports it and this parameter is set in wpa_supplicant configuration. This results in failing to start an AP that is not a P2P GO as this setting is rejected by the driver. Fix that by setting the CTWindow only for P2P GO interface. Signed-off-by: Avraham Stern --- wpa_supplicant/ap.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index 26ac70363..cefb3dce0 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -301,13 +301,17 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s, conf->beacon_int = wpa_s->conf->beacon_int; #ifdef CONFIG_P2P - if (wpa_s->conf->p2p_go_ctwindow > conf->beacon_int) { - wpa_printf(MSG_INFO, - "CTWindow (%d) is bigger than beacon interval (%d) - avoid configuring it", - wpa_s->conf->p2p_go_ctwindow, conf->beacon_int); - conf->p2p_go_ctwindow = 0; - } else { - conf->p2p_go_ctwindow = wpa_s->conf->p2p_go_ctwindow; + if (ssid->mode == WPAS_MODE_P2P_GO || + ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION) { + if (wpa_s->conf->p2p_go_ctwindow > conf->beacon_int) { + wpa_printf(MSG_INFO, + "CTWindow (%d) is bigger than beacon interval (%d) - avoid configuring it", + wpa_s->conf->p2p_go_ctwindow, + conf->beacon_int); + conf->p2p_go_ctwindow = 0; + } else { + conf->p2p_go_ctwindow = wpa_s->conf->p2p_go_ctwindow; + } } #endif /* CONFIG_P2P */