From: Jiwan Kim Date: Fri, 13 Jan 2017 02:22:38 +0000 (+0900) Subject: Fix some missing function flow X-Git-Tag: submit/tizen/20170512.045637~51 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fconnectivity%2Fzigbee-manager.git;a=commitdiff_plain;h=e727551b89274987ac50301e10ca5057b73a2ef6 Fix some missing function flow - There is some missing functions when dbus method called. Change-Id: Ia650967c13febb7ee6e383479c398c810fb9cb3d Signed-off-by: Jiwan Kim --- diff --git a/zigbee-client/include_private/zigbee_log.h b/zigbee-client/include_private/zigbee_log.h index 00cd2e4..bc77f41 100644 --- a/zigbee-client/include_private/zigbee_log.h +++ b/zigbee-client/include_private/zigbee_log.h @@ -21,7 +21,9 @@ #include +#ifndef TIZEN_DEBUG_ENABLE #define TIZEN_DEBUG_ENABLE +#endif #ifndef ZIGBEE_LOG_TAG #define ZIGBEE_LOG_TAG "UNKNOWN" diff --git a/zigbee-daemon/resources/zigbee-daemon.service b/zigbee-daemon/resources/zigbee-daemon.service index 4172b94..8e79fe2 100644 --- a/zigbee-daemon/resources/zigbee-daemon.service +++ b/zigbee-daemon/resources/zigbee-daemon.service @@ -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 diff --git a/zigbee-daemon/zigbee-lib/include/zblib_driver.h b/zigbee-daemon/zigbee-lib/include/zblib_driver.h index b906c65..603b8a4 100644 --- a/zigbee-daemon/zigbee-lib/include/zblib_driver.h +++ b/zigbee-daemon/zigbee-lib/include/zblib_driver.h @@ -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); diff --git a/zigbee-daemon/zigbee-lib/include/zblib_plugin.h b/zigbee-daemon/zigbee-lib/include/zblib_plugin.h index 885c7bf..5d2a3c3 100644 --- a/zigbee-daemon/zigbee-lib/include/zblib_plugin.h +++ b/zigbee-daemon/zigbee-lib/include/zblib_plugin.h @@ -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); diff --git a/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_service.c b/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_service.c index 8f5e9a8..f50ba4c 100644 --- a/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_service.c +++ b/zigbee-daemon/zigbee-lib/src/drivers/zblib_driver_service.c @@ -18,6 +18,8 @@ #include #include +#include +#include #include #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) { diff --git a/zigbee-daemon/zigbee-lib/src/zblib_driver.c b/zigbee-daemon/zigbee-lib/src/zblib_driver.c index d045aff..3461caf 100644 --- a/zigbee-daemon/zigbee-lib/src/zblib_driver.c +++ b/zigbee-daemon/zigbee-lib/src/zblib_driver.c @@ -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); diff --git a/zigbee-daemon/zigbee-lib/src/zblib_plugin.c b/zigbee-daemon/zigbee-lib/src/zblib_plugin.c index 6afef3e..d16fa75 100644 --- a/zigbee-daemon/zigbee-lib/src/zblib_plugin.c +++ b/zigbee-daemon/zigbee-lib/src/zblib_plugin.c @@ -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); diff --git a/zigbee-daemon/zigbee-lib/src/zblib_request.c b/zigbee-daemon/zigbee-lib/src/zblib_request.c index 1dd14ee..8f7689f 100644 --- a/zigbee-daemon/zigbee-lib/src/zblib_request.c +++ b/zigbee-daemon/zigbee-lib/src/zblib_request.c @@ -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; }