Add container handling logic
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-common.c
index d82e921..1e8345d 100644 (file)
@@ -95,7 +95,13 @@ GDBusConnection *_bt_get_system_common_conn(void)
 {
        if (system_common_conn == NULL) {
                GError *error = NULL;
-               system_common_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
+               if (access(CONTAINER_FILE, F_OK) == 0)
+                       system_common_conn = g_dbus_connection_new_for_address_sync(
+                                       DBUS_HOST_SYSTEM_BUS_ADDRESS,
+                                       G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT | G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION,
+                                       NULL, NULL, &error);
+               else
+                       system_common_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
                if (error) {
                        BT_ERR("GDBus connection Error : %s \n", error->message);
                        g_clear_error(&error);
@@ -109,7 +115,13 @@ GDBusConnection *_bt_get_system_shared_conn(void)
 {
        if (system_shared_conn == NULL) {
                GError *error = NULL;
-               system_shared_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
+               if (access(CONTAINER_FILE, F_OK) == 0)
+                       system_shared_conn = g_dbus_connection_new_for_address_sync(
+                                       DBUS_HOST_SYSTEM_BUS_ADDRESS,
+                                       G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT | G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION,
+                                       NULL, NULL, &error);
+               else
+                       system_shared_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
                if (error) {
                        BT_ERR("GDBus connection Error : %s \n", error->message);
                        g_clear_error(&error);