Use private dbus connection for synchronous calls.
[platform/core/system/libstorage.git] / src / storage-inhouse.c
index 45aba82..ef71f98 100755 (executable)
@@ -176,12 +176,22 @@ API int storage_get_primary_sdcard(int *storage_id, char **path)
        if (!storage_ext_is_supported())
                return STORAGE_ERROR_NOT_SUPPORTED;
 
-       ret_dbus = gdbus_call_sync_with_reply(STORAGE_EXT_BUS_NAME,
+       dbus_handle_h dbus_handle = gdbus_get_connection(G_BUS_TYPE_SYSTEM, true);
+       if (dbus_handle == NULL) {
+               _E("Failed to get dbus connection");
+               return STORAGE_ERROR_OPERATION_FAILED;
+       }
+
+       ret_dbus = gdbus_priv_call_sync_with_reply(dbus_handle,
+                       STORAGE_EXT_BUS_NAME,
                        STORAGE_EXT_PATH_MANAGER,
                        STORAGE_EXT_IFACE_MANAGER,
                        "GetMmcPrimary",
                        NULL,
                        &reply);
+
+       gdbus_free_connection(dbus_handle);
+
        if (ret_dbus < 0) {
                //LCOV_EXCL_START System Error
                _E("Failed to get primary sdcard partition"); //LCOV_EXCL_LINE
@@ -456,7 +466,7 @@ API int storage_is_mounted_opt_usr(storage_part_mount_e *mounted)
        blkid_dev dev;
        int ret_val;
        bool found = false;
-       char *user_label = is_container()? CONTAINER_USER_PARTITION: USER_PARTITION;
+       char *user_label = libsys_is_container()? CONTAINER_USER_PARTITION: USER_PARTITION;
 
        if (!mounted)
                return STORAGE_ERROR_INVALID_PARAMETER;