[wifi-direct-manager] when peer already connected/connecting, ignore provision discov... 99/71199/3
authorNishant Chaprana <n.chaprana@samsung.com>
Tue, 24 May 2016 11:12:39 +0000 (16:42 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Thu, 2 Jun 2016 07:15:55 +0000 (12:45 +0530)
Change-Id: I7fb6c12ae8abab3282fc34ab8d9dcea54f353609
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
packaging/wifi-direct-manager.spec
src/wifi-direct-event.c

index 4ffab3e..cdbfc21 100755 (executable)
@@ -1,6 +1,6 @@
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.160
+Version:       1.2.161
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index 8c0a127..ea88d4b 100755 (executable)
@@ -290,8 +290,7 @@ static void __wfd_process_prov_disc_req(wfd_manager_s *manager, wfd_oem_event_s
        int res = 0;
        wfd_group_s *group = (wfd_group_s*) manager->group;
 
-       if (group && group->role == WFD_DEV_ROLE_GC &&
-                       event->event_id == WFD_OEM_EVENT_PROV_DISC_REQ) {
+       if (group && group->role == WFD_DEV_ROLE_GC) {
                WDS_LOGD("Device has GC role - ignore this provision request");
                __WDS_LOG_FUNC_EXIT__;
                return;
@@ -335,8 +334,16 @@ static void __wfd_process_prov_disc_req(wfd_manager_s *manager, wfd_oem_event_s
                }
        }
 
-       if (peer)
+       if (peer) {
+               if (WFD_PEER_STATE_DISCOVERED < peer->state)
+               {
+                       WDS_LOGD("Peer already connected/connecting, ignore this provision request");
+                       __WDS_LOG_FUNC_EXIT__;
+                       return;
+               }
+
                peer->state = WFD_PEER_STATE_CONNECTING;
+       }
 
        res = wfd_session_process_event(manager, event);
        if (res < 0)