Beispiel #1
0
static gboolean
storage_threaded_job_threaded_job_completed_default (StorageThreadedJob *job,
                                                     gboolean result,
                                                     GError *error)
{
  if (result)
    {
      udisks_job_emit_completed (UDISKS_JOB (job), TRUE, "");
    }
  else
    {
      GString *message;

      g_assert (error != NULL);

      message = g_string_new (NULL);
      g_string_append_printf (message,
                              "Threaded job failed with error: %s (%s, %d)",
                              error->message,
                              g_quark_to_string (error->domain),
                              error->code);
      udisks_job_emit_completed (UDISKS_JOB (job),
                                 FALSE,
                                 message->str);
      g_string_free (message, TRUE);
    }

  return TRUE;
}
Beispiel #2
0
static gboolean
udisks_spawned_job_spawned_job_completed_default (UlSpawnedJob *self,
                                                  GError *error,
                                                  gint status,
                                                  GString *standard_output,
                                                  GString *standard_error)
{
  g_debug ("spawned job completed: "
           " status=%d (WIFEXITED=%d WEXITSTATUS=%d) "
           " standard_output=`%s' (%d bytes)\n"
           " standard_error=`%s' (%d bytes)\n",
           status,
           WIFEXITED (status), WEXITSTATUS (status),
           standard_output->str, (gint) standard_output->len,
           standard_error->str, (gint) standard_error->len);

  if (error != NULL)
    {
      gchar *message;
      message = g_strdup_printf ("%s (%s, %d)",
                                 error->message,
                                 g_quark_to_string (error->domain),
                                 error->code);
      udisks_job_emit_completed (UDISKS_JOB (self),
                                 FALSE,
                                 message);
      g_free (message);
    }
  else if (ul_util_check_status_and_output (self->argv[0],
                                            status,
                                            standard_error->str,
                                            standard_output->str,
                                            &error))
    {
      udisks_job_emit_completed (UDISKS_JOB (self),
                                 TRUE, standard_error->str);
    }
  else
    {
      udisks_job_emit_completed (UDISKS_JOB (self),
                                 FALSE, error->message);
      g_error_free (error);
    }

  return TRUE;
}