+ case BT_MESH_NETWORK_JOIN: {
+ bluetooth_mesh_node_t node;
+ GSList *model_list = NULL;
+ int total_models = 0;
+ GArray *param2;
+ int i = 0;
+
+ memset(&node, 0x00, sizeof(bluetooth_mesh_node_t));
+ sender = (char*)g_dbus_method_invocation_get_sender(context);
+
+ __bt_service_get_parameters(in_param1,
+ &node, sizeof(bluetooth_mesh_node_t));
+
+ param2 = g_array_new(TRUE, TRUE, sizeof(gchar));
+ __bt_fill_garray_from_variant(in_param2, param2);
+
+ total_models = (param2->len) / sizeof(bluetooth_mesh_model_t);
+ for (i = 0; i < total_models; i++) {
+ bluetooth_mesh_model_t *info = NULL;
+ bluetooth_mesh_model_t *mod = NULL;
+ info = &g_array_index(param2,
+ bluetooth_mesh_model_t, i);
+ mod = g_memdup(info, sizeof(bluetooth_mesh_model_t));
+
+ if (mod)
+ model_list = g_slist_append(model_list,
+ (gpointer)mod);
+ }
+
+ BT_INFO("MESH: Network Join bt-service");
+ //result = BLUETOOTH_ERROR_NONE;
+ result = _bt_mesh_network_join(requester_unique_creds,
+ sender, &node, model_list);
+ if (result != BLUETOOTH_ERROR_NONE) {
+ g_array_append_vals(*out_param1, &node, sizeof(bluetooth_mesh_node_t));
+ BT_ERR("Mesh: Mesh Join Network schedule failed");
+ g_slist_free_full(model_list, g_free);
+ }
+
+ BT_INFO("return of _bt_mesh_network_join : [%d]", result);
+ break;
+ }
+ case BT_MESH_CANCEL_JOIN: {
+ bluetooth_mesh_node_info_t node;
+ memset(&node, 0x00, sizeof(bluetooth_mesh_node_info_t));
+
+ __bt_service_get_parameters(in_param1,
+ &node, sizeof(bluetooth_mesh_node_info_t));
+
+ BT_INFO("Mesh: Cancel Join request");
+ result = _bt_mesh_cancel_join(requester_unique_creds,
+ sender, &node);
+ if (result != BLUETOOTH_ERROR_NONE) {
+ g_array_append_vals(*out_param1,
+ &node, sizeof(bluetooth_mesh_node_t));
+ }
+ break;
+ }