Update the RFCOMM server connection information
[platform/core/connectivity/bluetooth-frwk.git] / bt-service-adaptation / services / bt-request-handler.c
index e870bf2..d91f448 100644 (file)
@@ -1557,7 +1557,23 @@ int __bt_bluez_request(int function_name,
                BT_DBG("Sending details to bluetooth battery monitor: %ld, %ld, %d", (long int)uid, (long int)pid, size);
                _bt_bm_add_transaction_details(uid, pid, size, TX_DATA);
                break;
-        }
+       }
+       case BT_RFCOMM_SERVER_UPDATE_CONNECTION_INFO: {
+               gboolean connected = FALSE;
+               int client_fd = -1;
+
+               sender = (char *)g_dbus_method_invocation_get_sender(context);
+
+               __bt_service_get_parameters(in_param1, &connected, sizeof(gboolean));
+               __bt_service_get_parameters(in_param2, &client_fd, sizeof(int));
+
+               if (connected == TRUE)
+                       result = _bt_rfcomm_server_conn_added(sender, client_fd);
+               else
+                       result = _bt_rfcomm_server_conn_removed(sender, client_fd);
+
+               break;
+       }
        case BT_AUDIO_SELECT_ROLE: {
                bluetooth_audio_role_t role;
 
@@ -3992,6 +4008,7 @@ gboolean __bt_service_check_privilege(int function_name,
        case BT_RFCOMM_REMOVE_SOCKET:
        case BT_RFCOMM_SEND_RX_DETAILS:
        case BT_RFCOMM_SEND_TX_DETAILS:
+       case BT_RFCOMM_SERVER_UPDATE_CONNECTION_INFO:
 
        case BT_OPP_PUSH_FILES:
        case BT_OPP_CANCEL_PUSH:
@@ -4397,6 +4414,9 @@ static void __name_owner_changed(GDBusConnection *connection,
 
        /* Check if le_scanning app is terminated */
        _bt_check_le_scanner_app_termination(name);
+
+       /* Check if RFCOMM server is terminated */
+       _bt_rfcomm_server_check_termination(name);
 }
 
 static void __bt_service_bus_acquired_handler(GDBusConnection *connection,