static void format_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { FormatVolumeData *data = user_data; GError *error; error = NULL; if (!udisks_block_call_format_finish (UDISKS_BLOCK (source_object), res, &error)) { gdu_utils_show_error (GTK_WINDOW (data->parent_window), _("Error formatting volume"), error); g_error_free (error); } format_volume_data_free (data); }
static void on_format_done (GObject *source_object, GAsyncResult *res, gpointer user_data) { FormatData *data = user_data; GError *error = NULL; gboolean success; success = (udisks_block_call_format_finish (UDISKS_BLOCK (source_object), res, &error) && set_crypto_config (data->block, data->crypto_passphrase, data->crypto_options, &error) && set_fstab_config (data->block, data->mount_point, data->mount_options, &error)); if (data->invocation) { if (!success) { g_dbus_error_strip_remote_error (error); g_dbus_method_invocation_return_error (data->invocation, COCKPIT_ERROR, COCKPIT_ERROR_FAILED, "%s", error->message); g_error_free (error); } else g_dbus_method_invocation_return_value (data->invocation, g_variant_new ("()")); } g_signal_handler_disconnect (data->udisks_object_manager, data->object_added_handler_id); g_free (data->mount_point); g_free (data->mount_options); g_free (data->crypto_passphrase); g_free (data->crypto_options); g_clear_object (&data->invocation); g_object_unref (data->block); }