aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/p2p_supplicant.c
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2012-03-26 14:02:32 -0700
committerDmitry Shmidt <dimitrysh@google.com>2012-03-26 14:04:42 -0700
commit687922c7347bdc3b4f8c921efe1d1388cb3baac0 (patch)
tree811950923717d15bdb174c5c91fd389f08a61fbb /wpa_supplicant/p2p_supplicant.c
parentdb3c5a43353099fd4771f3b7a13efae905878ce9 (diff)
downloadexternal_wpa_supplicant_8-687922c7347bdc3b4f8c921efe1d1388cb3baac0.zip
external_wpa_supplicant_8-687922c7347bdc3b4f8c921efe1d1388cb3baac0.tar.gz
external_wpa_supplicant_8-687922c7347bdc3b4f8c921efe1d1388cb3baac0.tar.bz2
Update to Version 0.8.24 from BRCM
- Add 'conc_priority' command - Fix handling a single channel concurrency case: If conc_priority is not set, advertise the frequency conflict to the framework and disable the new connection attempted - When P2P Interface gets removed due to single channel frequency conflict, show GROUP_REMOVE reason=FREQ_CONFLICT - Fix sched scan processing Change-Id: Ie6fe105cebd379a0a9c49ace62d2e48e71571107 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'wpa_supplicant/p2p_supplicant.c')
-rw-r--r--wpa_supplicant/p2p_supplicant.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index 3aba246..5e7edc8 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -257,6 +257,11 @@ static void wpas_p2p_group_delete(struct wpa_supplicant *wpa_s)
case P2P_GROUP_REMOVAL_UNAVAILABLE:
reason = " reason=UNAVAILABLE";
break;
+#ifdef ANDROID_P2P
+ case P2P_GROUP_REMOVAL_FREQ_CONFLICT:
+ reason = " reason=FREQ_CONFLICT";
+ break;
+#endif
default:
reason = "";
break;
@@ -805,9 +810,6 @@ static void wpas_p2p_clone_config(struct wpa_supplicant *dst,
#define C(n) if (s->n) d->n = os_strdup(s->n)
C(device_name);
-#ifdef ANDROID_P2P
- C(prioritize);
-#endif
C(manufacturer);
C(model_name);
C(model_number);
@@ -4458,10 +4460,13 @@ int wpas_p2p_handle_frequency_conflicts(struct wpa_supplicant *wpa_s, int freq)
/* If GO cannot be moved or if the conflicting interface is a
* P2P Client, remove the interface depending up on the connection
* priority */
- if(wpas_is_interface_prioritized(wpa_s)) {
- /* Newly requested connection has priority over existing
+ if(!wpas_is_p2p_prioritized(wpa_s)) {
+ /* STA connection has priority over existing
* P2P connection. So remove the interface */
- wpas_p2p_disconnect(iface);
+ wpa_printf(MSG_DEBUG, "P2P: Removing P2P connection due to Single channel"
+ "concurrent mode frequency conflict");
+ iface->removal_reason = P2P_GROUP_REMOVAL_FREQ_CONFLICT;
+ wpas_p2p_group_delete(iface);
} else {
/* Existing connection has the priority. Disable the newly
* selected network and let the application know about it.