Fix 64bit build error
[platform/core/connectivity/bluetooth-frwk.git] / bt-oal / oal-mesh.c
index 0e47904..3c88100 100644 (file)
@@ -43,6 +43,7 @@ static const btmesh_interface_t *mesh_api;
        } while (0)
 
 /* Forward declaration: Callbacks from HAL */
+static void mesh_network_proxy_added_callback(bt_status_t status);
 static void mesh_network_attached_callback(bt_status_t status,
                bt_mesh_token_t *token, bt_uuid_t *uuid);
 static void mesh_network_destroyed_callback(bt_status_t status,
@@ -76,6 +77,7 @@ static void mesh_message_received_callback(bt_uuid_t *net_uuid,
 
 static btmesh_callbacks_t sBluetoothMeshCallbacks = {
        .size = sizeof(sBluetoothMeshCallbacks),
+       .network_proxy_added_cb = mesh_network_proxy_added_callback,
        .network_attached_cb = mesh_network_attached_callback,
        .network_destroyed_cb = mesh_network_destroyed_callback,
        .scan_status_cb = mesh_network_scan_status_callback,
@@ -91,6 +93,18 @@ static btmesh_callbacks_t sBluetoothMeshCallbacks = {
 };
 
 /* Mesh HAL event handlers */
+static void mesh_network_proxy_added_callback(bt_status_t status)
+{
+       event_mesh_network_proxy_added_t *event = g_new0(event_mesh_network_proxy_added_t, 1);
+
+       event->status = convert_to_oal_status(status);
+       BT_INFO("Mesh Event: Network Proxy Added, status: [%s]",
+               status2string(status));
+
+       send_event_bda_trace(OAL_EVENT_MESH_NETWORK_PROXY_ADDED,
+               event, sizeof(event_mesh_network_proxy_added_t), NULL);
+}
+
 static void mesh_network_attached_callback(bt_status_t status,
                bt_mesh_token_t *token, bt_uuid_t *uuid)
 {
@@ -367,6 +381,22 @@ oal_status_t mesh_register_node(oal_mesh_node_t *node,
        return OAL_STATUS_SUCCESS;
 }
 
+oal_status_t mesh_network_release(oal_uuid_t* network_uuid)
+{
+       int ret = BT_STATUS_SUCCESS;
+       API_TRACE();
+       CHECK_OAL_MESH_ENABLED();
+
+       BT_INFO("Mesh: Send Release Network request to stack");
+       ret = mesh_api->release((bt_uuid_t*)network_uuid);
+       if (ret != BT_STATUS_SUCCESS) {
+               BT_ERR("MESH: Network Leave failed: %s", status2string(ret));
+               return convert_to_oal_status(ret);
+       }
+
+       return OAL_STATUS_SUCCESS;
+}
+
 oal_status_t mesh_network_destroy(oal_uuid_t* network_uuid)
 {
        int ret = BT_STATUS_SUCCESS;