[AddVsie] Do not add vsie if already present 46/168746/1 accepted/tizen/unified/20180201.080000 submit/tizen/20180131.092238
authorNishant Chaprana <n.chaprana@samsung.com>
Tue, 30 Jan 2018 11:30:24 +0000 (17:00 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Tue, 30 Jan 2018 11:30:45 +0000 (17:00 +0530)
Change-Id: I9b63698c4b78774fc485407ad3f024a39a61474d
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
packaging/wifi-direct-manager.spec
src/wifi-direct-method.c

index 86ad9dd..5dcd711 100644 (file)
@@ -6,7 +6,7 @@
 
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.265
+Version:       1.2.266
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index d75a036..01ed328 100644 (file)
@@ -1813,6 +1813,7 @@ void add_vsie_handler(GVariant *parameters, void *dest)
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        const char *vsie = NULL;
+       char *already_vsie = NULL;
        int frame_id = 0;
        int ret;
 
@@ -1823,6 +1824,17 @@ void add_vsie_handler(GVariant *parameters, void *dest)
        if (manager->state < WIFI_DIRECT_STATE_ACTIVATED)
                WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_NOT_PERMITTED, dest);
 
+       wfd_oem_get_vsie(manager->oem_ops, frame_id, &already_vsie);
+
+       /* Do not add vsie if already present */
+       if (already_vsie && vsie && strstr(already_vsie, vsie)) {
+               ret = WIFI_DIRECT_ERROR_NONE;
+               return_parameters = g_variant_new("(i)", ret);
+               wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest,
+                                             return_parameters);
+               return;
+       }
+
        if (wfd_oem_add_vsie(manager->oem_ops, frame_id, vsie) < 0)
                WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_OPERATION_FAILED, dest);