/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
ZBLIB_ZCL_GLOBAL_CONTROL_OPS_WRITE_ATTRIBUTES_REQ,
&req, sizeof(req),
on_zclglobal_control_write_attributes_req_resp, resp_cb_data);
+
+ /* Free resource */
+ g_free(req.write_records);
+
if (FALSE == ret) {
Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
ZBLIB_ZCL_GLOBAL_CONTROL_OPS_WRITE_ATTRIBUTES_UNDIVIDED_REQ,
&req, sizeof(req),
on_zclglobal_control_write_attributes_undivided_req_resp, resp_cb_data);
+
+ /* Free resource */
+ g_free(req.write_records);
+
if (FALSE == ret) {
Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
ZBLIB_ZCL_GLOBAL_CONTROL_OPS_WRITE_ATTRIBUTES_NO_RESP,
&req, sizeof(req),
on_zclglobal_control_write_attributes_no_resp_resp, resp_cb_data);
+
+ /* Free resource */
+ g_free(req.write_records);
+
if (FALSE == ret) {
Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.write_records);
return TRUE;
}
ZBLIB_ZCL_GLOBAL_CONTROL_OPS_WRITE_ATTRIBUTES_STRUCTURED,
&req, sizeof(req),
on_zclglobal_control_write_attributes_structured_resp, resp_cb_data);
+
+ /* Free resource */
+ g_free(req.write_records);
+
if (FALSE == ret) {
Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.read_records);
return TRUE;
}
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.read_records);
return TRUE;
}
ZBLIB_ZCL_GLOBAL_CONTROL_OPS_READ_ATTRIBUTES_STRUCTURED,
&req, sizeof(req),
on_zclglobal_control_read_attributes_structured_resp, resp_cb_data);
+
+ /* Free resource */
+ g_free(req.read_records);
+
if (FALSE == ret) {
Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.read_records);
return TRUE;
}
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.read_records);
return TRUE;
}
ZBLIB_ZCL_GLOBAL_CONTROL_OPS_CONFIGURE_REPORTING_REQ,
&req, sizeof(req),
on_zclglobal_control_configure_reporting_req_resp, resp_cb_data);
+
+ /* Free resource */
+ g_free(req.read_records);
+
if (FALSE == ret) {
Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.read_records);
return TRUE;
}
/* Send failure response */
ZIGBEE_DBUS_FAIL_RESPONSE(invocation, ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG);
+ g_free(req.read_records);
return TRUE;
}
ZBLIB_ZCL_GLOBAL_CONTROL_OPS_READ_CONFIGURE_REPORTING,
&req, sizeof(req),
on_zclglobal_control_read_configure_reporting_resp, resp_cb_data);
+
+ /* Free resource */
+ g_free(req.read_records);
+
if (FALSE == ret) {
Z_LOGE("zigbee_service_dbus_interface_dispatch_request failed!");
NOT_USED(noti_cb_data);
- switch(noti_id) {
+ switch (noti_id) {
case ZBLIB_ZCL_GLOBAL_NOTI_READ_ATTR_RSP: {
ZigbeeZclGlobalControlReadAttributesResp_t *attr_t =
(ZigbeeZclGlobalControlReadAttributesResp_t*)noti_data;
TRUE, NULL, NULL);
if (NULL == v_values || NULL == v_attrs) {
Z_LOGE("Failed to create variant!");
- if (v_values)
- g_variant_unref(v_values);
- if (v_attrs)
- g_variant_unref(v_attrs);
} else {
Z_LOGD("Write attributes resp");
zigbee_zcl_global_control_emit_write_attributes_rsp(global_control_object,
attr_t->node_id, attr_t->src_ep, v_values, v_attrs,
attr_t->cluster_id, attr_t->record_length);
}
+ if (v_values)
+ g_variant_unref(v_values);
+ if (v_attrs)
+ g_variant_unref(v_attrs);
break;
}
case ZBLIB_ZCL_GLOBAL_NOTI_CONFIG_REPORT_RSP: {
TRUE, NULL, NULL);
if (NULL == v_types || NULL == v_attrs) {
Z_LOGE("Failed to create variant!");
- if (v_types)
- g_variant_unref(v_types);
- if (v_attrs)
- g_variant_unref(v_attrs);
} else {
Z_LOGD("Discover attribute resp");
zigbee_zcl_global_control_emit_discover_attribute_rsp(global_control_object,
attr_t->node_id, attr_t->src_ep, v_types, v_attrs,
attr_t->cluster_id, attr_t->record_length, attr_t->discovery_completed);
}
+ if (v_types)
+ g_variant_unref(v_types);
+ if (v_attrs)
+ g_variant_unref(v_attrs);
break;
}
case ZBLIB_ZCL_GLOBAL_NOTI_WRITE_ATTR_STRUCTURED_RSP: {
break;
}
- index_builder = g_variant_builder_new (G_VARIANT_TYPE ("aq"));
+ index_builder = g_variant_builder_new(G_VARIANT_TYPE("aq"));
if (NULL == index_builder) {
Z_LOGE("Failed to create variant builder!");
g_variant_unref(v_status);
g_variant_unref(v_indicator);
break;
}
- for(i = 0; i < attr_t->record_length; i++) {
- for(j = 0; j < attr_t->indicator_list[i]; j++) {
- g_variant_builder_add (index_builder, "q", attr_t->index_list[i][j]);
- }
+ for (i = 0; i < attr_t->record_length; i++) {
+ for (j = 0; j < attr_t->indicator_list[i]; j++)
+ g_variant_builder_add(index_builder, "q", attr_t->index_list[i][j]);
}
- v_index = g_variant_builder_end (index_builder);
+ v_index = g_variant_builder_end(index_builder);
g_variant_builder_unref(index_builder);
Z_LOGD("Write attribute structured resp");
v_status, v_attrs, v_indicator, v_index,
attr_t->cluster_id, attr_t->record_length,
attr_t->node_id, attr_t->src_ep);
+ if (v_status)
+ g_variant_unref(v_status);
+ if (v_attrs)
+ g_variant_unref(v_attrs);
+ if (v_indicator)
+ g_variant_unref(v_indicator);
break;
}
case ZBLIB_ZCL_GLOBAL_NOTI_DISCOVER_CMDS_RECEIVED_RSP: {
v_commands, attr_t->cluster_id, attr_t->list_count,
attr_t->node_id, attr_t->src_ep, attr_t->discovery_completed);
}
+ if (v_commands)
+ g_variant_unref(v_commands);
break;
}
case ZBLIB_ZCL_GLOBAL_NOTI_DISCOVER_CMDS_GENERATED_RSP: {
v_commands, attr_t->cluster_id, attr_t->list_count,
attr_t->node_id, attr_t->src_ep, attr_t->discovery_completed);
}
+ if (v_commands)
+ g_variant_unref(v_commands);
break;
}
case ZBLIB_ZCL_GLOBAL_NOTI_DISCOVER_ATTR_EXT_RSP: {
attr_t->access_list, attr_t->list_count, TRUE, NULL, NULL);
if (NULL == v_attrs_type || NULL == v_attrs || NULL == v_access) {
Z_LOGE("Failed to create variant!");
- if (v_attrs_type)
- g_variant_unref(v_attrs_type);
- if (v_attrs)
- g_variant_unref(v_attrs);
- if (v_access)
- g_variant_unref(v_access);
} else {
Z_LOGD("Discover attributes extended resp");
zigbee_zcl_global_control_emit_discover_attributes_extended_rsp(
attr_t->cluster_id, attr_t->list_count,
attr_t->node_id, attr_t->src_ep, attr_t->discovery_completed);
}
+ if (v_attrs_type)
+ g_variant_unref(v_attrs_type);
+ if (v_attrs)
+ g_variant_unref(v_attrs);
+ if (v_access)
+ g_variant_unref(v_access);
break;
}
case ZBLIB_ZCL_GLOBAL_NOTI_DEFAULT_RSP: {
v_attrs = g_variant_new_from_data(G_VARIANT_TYPE("aq"),
attr_t->attribute_list, (sizeof(gushort) * attr_t->list_count),
TRUE, NULL, NULL);
+ if (NULL == v_attrs) {
+ Z_LOGE("Failed to create variant!");
+ break;
+ }
v_data_type = g_variant_new_from_data(G_VARIANT_TYPE("a(y)"),
attr_t->data_type_list, attr_t->list_count, TRUE, NULL, NULL);
- if (NULL == v_data_type || NULL == v_attrs) {
+ if (NULL == v_data_type) {
Z_LOGE("Failed to create variant!");
- if (v_data_type)
- g_variant_unref(v_data_type);
if (v_attrs)
g_variant_unref(v_attrs);
break;
}
- values_builder = g_variant_builder_new (G_VARIANT_TYPE ("a(y)"));
+ values_builder = g_variant_builder_new(G_VARIANT_TYPE("a(y)"));
if (NULL == values_builder) {
Z_LOGE("Failed to create variant builder!");
- g_variant_unref(v_data_type);
- g_variant_unref(v_attrs);
+ if (v_attrs)
+ g_variant_unref(v_attrs);
+ if (v_data_type)
+ g_variant_unref(v_data_type);
break;
}
- for(i = 0; i < attr_t->list_count; i++) {
- for(j = 0; j < attr_t->values_count[i]; j++) {
- g_variant_builder_add (values_builder, "(y)", attr_t->values[i][j]);
- }
+ for (i = 0; i < attr_t->list_count; i++) {
+ for (j = 0; j < attr_t->values_count[i]; j++)
+ g_variant_builder_add(values_builder, "(y)", attr_t->values[i][j]);
}
- v_values = g_variant_builder_end (values_builder);
+ v_values = g_variant_builder_end(values_builder);
g_variant_builder_unref(values_builder);
Z_LOGD("Report attributes handler resp");
attr_t->node_id, attr_t->src_ep, attr_t->cluster_id,
v_attrs, v_data_type, v_values,
attr_t->list_count);
+ if (v_attrs)
+ g_variant_unref(v_attrs);
+ if (v_data_type)
+ g_variant_unref(v_data_type);
+ if (v_values)
+ g_variant_unref(v_values);
break;
}
case ZBLIB_ZCL_GLOBAL_NOTI_READ_CONFIG_REPORT_RSP: {
GVariant *v_entries = NULL;
GVariantBuilder *entry_builder =
- g_variant_builder_new (G_VARIANT_TYPE ("a(yyqyqqayq)"));
+ g_variant_builder_new(G_VARIANT_TYPE("a(yyqyqqayq)"));
if (NULL == entry_builder) {
Z_LOGE("Failed to create variant builder!");
break;
}
- for(i = 0; i < resp_t->record_count ; i++) {
+ for (i = 0; i < resp_t->record_count ; i++) {
GVariantBuilder *change_builder =
- g_variant_builder_new (G_VARIANT_TYPE ("ay"));
+ g_variant_builder_new(G_VARIANT_TYPE("ay"));
if (NULL == change_builder) {
Z_LOGE("Failed to create variant builder!");
g_variant_builder_unref(entry_builder);
}
for (v = 0; v < resp_t->entry_list[i].change_count; v++) {
- g_variant_builder_add (change_builder, "y",
+ g_variant_builder_add(change_builder, "y",
resp_t->entry_list[i].change[v]);
}
- g_variant_builder_add (entry_builder, "(yyqyqqayq)",
+ g_variant_builder_add(entry_builder, "(yyqyqqayq)",
resp_t->entry_list[i].status,
resp_t->entry_list[i].dir,
resp_t->entry_list[i].attribute_id,
zigbee_zcl_global_control_emit_read_configure_reporting_rsp(
global_control_object, resp_t->node_id, resp_t->src_ep,
resp_t->cluster_id, resp_t->record_count, v_entries);
+
+ if (v_entries)
+ g_variant_unref(v_entries);
break;
}
default: