Fix some missing function flow
authorJiwan Kim <ji-wan.kim@samsung.com>
Fri, 13 Jan 2017 02:22:38 +0000 (11:22 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:10:25 +0000 (18:10 +0900)
 - There is some missing functions when dbus method called.

Change-Id: Ia650967c13febb7ee6e383479c398c810fb9cb3d
Signed-off-by: Jiwan Kim <ji-wan.kim@samsung.com>
zigbee-client/include_private/zigbee_log.h
zigbee-daemon/resources/zigbee-daemon.service
zigbee-daemon/zigbee-lib/include/zblib_driver.h
zigbee-daemon/zigbee-lib/include/zblib_plugin.h
zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_service.c
zigbee-daemon/zigbee-lib/src/zblib_driver.c
zigbee-daemon/zigbee-lib/src/zblib_plugin.c
zigbee-daemon/zigbee-lib/src/zblib_request.c

index 00cd2e4..bc77f41 100644 (file)
@@ -21,7 +21,9 @@
 
 #include <glib.h>
 
+#ifndef TIZEN_DEBUG_ENABLE
 #define TIZEN_DEBUG_ENABLE
+#endif
 
 #ifndef ZIGBEE_LOG_TAG
 #define ZIGBEE_LOG_TAG "UNKNOWN"
index 4172b94..8e79fe2 100644 (file)
@@ -2,8 +2,8 @@
 Description=ZigBee daemon
 
 [Service]
-User=zigbee
-Group=zigbee
+User=system
+Group=system
 SmackProcessLabel=System
 ExecStart=/usr/bin/zigbee-daemon
 Restart=always
index b906c65..603b8a4 100644 (file)
@@ -31,6 +31,7 @@ ZigBeeDriver *zblib_driver_new(ZigBeePlugin *plugin,
        ZblibDriverType_e driver_type);
 void zblib_driver_free(ZigBeeDriver *driver);
 
+gboolean zblib_driver_link_service(ZigBeeDriver *driver, ZigBeeService *service);
 ZigBeeService *zblib_driver_ref_service(ZigBeeDriver *driver);
 ZigBeePlugin *zblib_driver_ref_plugin(ZigBeeDriver *driver);
 
index 885c7bf..5d2a3c3 100644 (file)
@@ -39,7 +39,10 @@ void zblib_plugin_free(ZigBeePlugin *plugin);
 const ZblibPluginDescriptor_t *zblib_plugin_get_descriptor(ZigBeePlugin *plugin);
 char *zblib_plugin_get_plugin_name(ZigBeePlugin *plugin);
 
+ZigBeeService *zblib_plugin_ref_service(ZigBeePlugin *plugin);
+
 ZigBeeDriver *zblib_plugin_ref_driver(ZigBeePlugin *plugin, ZblibDriverType_e driver_type);
+void zblib_plugin_link_driver(ZigBeePlugin *plugin, ZigBeeDriver *driver);
 
 gboolean zblib_plugin_dispatch_request(ZigBeePlugin *plugin,
        guint request_id);
index 8f5e9a8..f50ba4c 100644 (file)
@@ -18,6 +18,8 @@
 
 #include <zblib.h>
 #include <zblib_driver.h>
+#include <zblib_plugin.h>
+#include <zblib_service.h>
 #include <zblib_request.h>
 
 #include "zblib_driver_service.h"
@@ -210,6 +212,7 @@ ZigBeeDriver *zblib_driver_service_new(ZigBeePlugin *plugin,
        ZblibDriverServiceOps_t *ops)
 {
        ZigBeeDriver *driver = NULL;
+       ZigBeeService *service = NULL;
        ZblibDriverServicePrivData_t *priv_data = NULL;
        gboolean ret;
 
@@ -225,6 +228,19 @@ ZigBeeDriver *zblib_driver_service_new(ZigBeePlugin *plugin,
        /* Update private data */
        priv_data->ops = ops;
 
+       /* Link service to driver */
+       service = zblib_plugin_ref_service(plugin);
+       if (NULL == service) {
+               Z_LOGE("zblib_plugin_ref_service failed!");
+
+               /* Free allocated resources */
+               g_free(priv_data);
+               g_free(driver);
+
+               return NULL;
+       }
+       zblib_driver_link_service(driver, service);
+
        /* Link private data to driver */
        ret = zblib_driver_link_object(driver, priv_data);
        if (FALSE == ret) {
index d045aff..3461caf 100644 (file)
@@ -66,6 +66,7 @@ void zblib_driver_free(ZigBeeDriver *driver)
        Z_LOGI("Freeing Driver - Name [%p]", driver->driver_name);
 
        /* Free driver memory */
+       g_free(driver->driver_name);
        g_free(driver);
 }
 
@@ -76,6 +77,17 @@ ZigBeeService *zblib_driver_ref_service(ZigBeeDriver *driver)
        return driver->service;
 }
 
+gboolean zblib_driver_link_service(ZigBeeDriver *driver,
+       ZigBeeService *service)
+{
+       zblib_check_null_ret_error("driver", driver, FALSE);
+       zblib_check_null_ret_error("service", service, FALSE);
+
+       driver->service = service;
+
+       return TRUE;
+}
+
 ZigBeePlugin *zblib_driver_ref_plugin(ZigBeeDriver *driver)
 {
        zblib_check_null_ret_error("driver", driver, NULL);
index 6afef3e..d16fa75 100644 (file)
@@ -108,6 +108,13 @@ char *zblib_plugin_get_plugin_name(ZigBeePlugin *plugin)
        return g_strdup(plugin->plugin_name);
 }
 
+ZigBeeService *zblib_plugin_ref_service(ZigBeePlugin *plugin)
+{
+       zblib_check_null_ret_error("plugin", plugin, NULL);
+
+       return plugin->service;
+}
+
 ZigBeeDriver *zblib_plugin_ref_driver(ZigBeePlugin *plugin, ZblibDriverType_e driver_type)
 {
        ZigBeeDriver *driver = NULL;
@@ -133,12 +140,22 @@ ZigBeeDriver *zblib_plugin_ref_driver(ZigBeePlugin *plugin, ZblibDriverType_e dr
        return driver;
 }
 
+void zblib_plugin_link_driver(ZigBeePlugin *plugin, ZigBeeDriver *driver)
+{
+       zblib_check_null_ret("plugin", plugin);
+       zblib_check_null_ret("driver", driver);
+
+       plugin->driver_list = g_slist_append(plugin->driver_list, driver);
+       Z_LOGD("Driver appended into plugin [%s]", plugin->plugin_name);
+}
+
 gboolean zblib_plugin_dispatch_request(ZigBeePlugin *plugin,
        guint request_id)
 {
        ZigBeeService *service = NULL;
        ZigBeeDriver *driver = NULL;
        ZblibDriverType_e driver_type;
+       guint request_type;
 
        zblib_check_null_ret_error("plugin", plugin, FALSE);
 
@@ -147,7 +164,8 @@ gboolean zblib_plugin_dispatch_request(ZigBeePlugin *plugin,
        zblib_check_null_ret_error("service", service, FALSE);
 
        /* Fetch driver type */
-       driver_type = (ZblibDriverType_e)zblib_request_ref_request_type_by_request_id(service, request_id);
+       request_type = zblib_request_ref_request_type_by_request_id(service, request_id);
+       driver_type = zblib_request_get_driver_type(request_type);
 
        /* Fetch driver */
        driver = zblib_plugin_ref_driver(plugin, driver_type);
index 1dd14ee..8f7689f 100644 (file)
@@ -59,7 +59,7 @@ static ZblibDriverType_e __zblib_request_get_driver_type(guint request_type)
 {
        ZblibDriverType_e driver_type;
 
-       driver_type = ((request_type && 0xFF000000) >> 24);
+       driver_type = ((request_type & 0xFF000000) >> 24);
 
        return driver_type;
 }
@@ -68,7 +68,7 @@ static ZblibDriverType_e __zblib_request_get_ops_id(guint request_type)
 {
        guint ops_id;
 
-       ops_id = (request_type && 0x000000FF);
+       ops_id = (request_type & 0x000000FF);
 
        return ops_id;
 }