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); }
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); }