Implement ZCL OnOff Cluster
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-lib / src / drivers / zblib_driver_zcl_on_off.c
index 177346d..d2098bd 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <zblib.h>
 #include <zblib_driver.h>
+#include <zblib_plugin.h>
 #include <zblib_request.h>
 
 #include "zblib_driver_zcl_on_off.h"
@@ -97,6 +98,7 @@ ZigBeeDriver *zblib_driver_zcl_on_off_new(ZigBeePlugin *plugin,
        const gchar *driver_name,
        ZblibDriverZclOnOffOps_t *ops)
 {
+       ZigBeeService *service = NULL;
        ZigBeeDriver *driver = NULL;
        ZblibDriverZclOnOffPrivData_t *priv_data = NULL;
        gboolean ret;
@@ -113,6 +115,19 @@ ZigBeeDriver *zblib_driver_zcl_on_off_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) {