Example #1
0
char *pusb_volume_get(t_pusb_options *opts, DBusConnection *dbus)
{
	char	*volume_udi;
	char	*mount_point;

	if (!(volume_udi = pusb_volume_probe(opts, dbus)))
		return (NULL);
	log_debug("Found volume %s\n", opts->device.volume_uuid);
	mount_point = pusb_volume_mount_path(opts, volume_udi, dbus);
	if (mount_point)
	{
		log_debug("Volume is already mounted.\n");
		return (mount_point);
	}
	if (!pusb_volume_mount(opts, volume_udi, dbus))
	{
		xfree(volume_udi);
		return (NULL);
	}
	mount_point = pusb_volume_mount_path(opts, volume_udi, dbus);
	if (!mount_point)
	{
		log_error("Unable to retrieve %s mount point\n", volume_udi);
		pusb_volume_destroy(mount_point);
		return (NULL);
	}
	return (mount_point);
}
Example #2
0
LibHalVolume *pusb_volume_get(t_pusb_options *opts, LibHalContext *ctx)
{
	LibHalVolume	*volume;

	if (!(volume = pusb_volume_probe(opts, ctx)))
		return (NULL);
	log_debug("Found volume %s\n", opts->device.volume_uuid);
	if (libhal_volume_is_mounted(volume))
	{
		log_debug("Volume is already mounted.\n");
		return (volume);
	}
	if (!pusb_volume_mount(opts, &volume, ctx))
	{
		libhal_volume_free(volume);
		return (NULL);
	}
	return (volume);
}