Added support to check if mesh is enabled 48/145448/1
authorsaerome kim <saerome.kim@samsung.com>
Tue, 22 Aug 2017 09:51:00 +0000 (18:51 +0900)
committersaerome kim <saerome.kim@samsung.com>
Tue, 22 Aug 2017 09:51:00 +0000 (18:51 +0900)
Change-Id: I78e3c15c655de9eb793f778be76b560231720176
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
introspection/wmesh.xml
src/wmesh-service-interface.c

index fac4da1..d698e6d 100644 (file)
@@ -32,6 +32,9 @@
                <method name="disable_mesh">\r
                        <arg type="i" name="result" direction="out"/>\r
                </method>\r
+               <method name="is_mesh_enabled">\r
+                       <arg type="b" name="state" direction="out"/>\r
+               </method>\r
                <method name="is_joined">\r
                        <arg type="b" name="state" direction="out"/>\r
                        <arg type="i" name="result" direction="out"/>\r
index 14306fb..f24e394 100644 (file)
@@ -455,6 +455,26 @@ static gboolean _wmeshd_dbus_handle_disable_mesh(NetWmesh *object,
        return TRUE;
 }
 
+static gboolean _wmeshd_dbus_handle_is_mesh_enabled(NetWmesh *object,
+               GDBusMethodInvocation *invocation,
+               gpointer user_data)
+{
+       int ret = WMESHD_ERROR_NONE;
+       gboolean state = TRUE;
+       wmesh_service *service = (wmesh_service *)user_data;
+
+       /* It handles creating virtual network and bridge */
+       ret = wmesh_interface_check(service->interface_info->mesh_interface);
+       if (WMESHD_ERROR_NONE != ret) {
+               WMESH_LOGE("Mesh Interface doesn't exists");
+               state = FALSE;
+       }
+
+       net_wmesh_complete_is_mesh_enabled(object, invocation, state);
+
+       return TRUE;
+}
+
 static gboolean _wmeshd_dbus_handle_is_joined(NetWmesh *object,
                GDBusMethodInvocation *invocation,
                gpointer user_data)
@@ -1089,6 +1109,8 @@ static void _wmeshd_dbus_on_bus_acquired(GDBusConnection *conn, const gchar *nam
                        G_CALLBACK(_wmeshd_dbus_handle_enable_mesh), service);
        g_signal_connect(meshd_dbus_object, "handle-disable-mesh",
                        G_CALLBACK(_wmeshd_dbus_handle_disable_mesh), service);
+       g_signal_connect(meshd_dbus_object, "handle-is-mesh-enabled",
+                       G_CALLBACK(_wmeshd_dbus_handle_is_mesh_enabled), service);
        g_signal_connect(meshd_dbus_object, "handle-is-joined",
                        G_CALLBACK(_wmeshd_dbus_handle_is_joined), service);
        g_signal_connect(meshd_dbus_object, "handle-get-joined-mesh-network",