/** * pk_offline_trigger_upgrade: * @action: a #PkOfflineAction, e.g. %PK_OFFLINE_ACTION_REBOOT * @cancellable: A #GCancellable or %NULL * @error: A #GError or %NULL * * Triggers the offline system upgrade so that the next reboot will perform the * pending transaction. * * Return value: %TRUE for success, else %FALSE and @error set * * Since: 1.0.12 **/ gboolean pk_offline_trigger_upgrade (PkOfflineAction action, GCancellable *cancellable, GError **error) { const gchar *tmp; g_autoptr(GDBusConnection) connection = NULL; g_autoptr(GVariant) res = NULL; g_return_val_if_fail (error == NULL || *error == NULL, FALSE); connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error); if (connection == NULL) return FALSE; tmp = pk_offline_action_to_string (action); res = g_dbus_connection_call_sync (connection, "org.freedesktop.PackageKit", "/org/freedesktop/PackageKit", "org.freedesktop.PackageKit.Offline", "TriggerUpgrade", g_variant_new ("(s)", tmp), NULL, G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); if (res == NULL) return FALSE; return TRUE; }
/** * pk_offline_auth_set_action: * @action: a #PkOfflineAction, e.g. %PK_OFFLINE_ACTION_REBOOT * @error: A #GError or %NULL * * Sets the action to be done after the offline action has been performed. * * Return value: %TRUE for success, else %FALSE and @error set * * Since: 0.9.6 **/ gboolean pk_offline_auth_set_action (PkOfflineAction action, GError **error) { const gchar *action_str; g_autoptr(GError) error_local = NULL; g_return_val_if_fail (error == NULL || *error == NULL, FALSE); if (action == PK_OFFLINE_ACTION_UNKNOWN) { g_set_error (error, PK_OFFLINE_ERROR, PK_OFFLINE_ERROR_INVALID_VALUE, "Failed to set unknown %i", action); return FALSE; } if (action == PK_OFFLINE_ACTION_UNSET) return pk_offline_auth_cancel (error); action_str = pk_offline_action_to_string (action); if (action_str == NULL) { g_set_error (error, PK_OFFLINE_ERROR, PK_OFFLINE_ERROR_FAILED, "Failed to convert %i", action); return FALSE; } if (!g_file_set_contents (PK_OFFLINE_ACTION_FILENAME, action_str, -1, &error_local)) { g_set_error (error, PK_OFFLINE_ERROR, PK_OFFLINE_ERROR_FAILED, "failed to write file: %s", error_local->message); return FALSE; } return TRUE; }