Save the new release metadata when using fu_history_modify_device()

This commit is contained in:
Richard Hughes 2022-11-03 11:54:47 +00:00
parent b76c07f247
commit c72ab882fe

View File

@ -581,7 +581,9 @@ gboolean
fu_history_modify_device(FuHistory *self, FuDevice *device, GError **error) fu_history_modify_device(FuHistory *self, FuDevice *device, GError **error)
{ {
#ifdef HAVE_SQLITE #ifdef HAVE_SQLITE
FwupdRelease *release;
gint rc; gint rc;
g_autofree gchar *metadata = NULL;
g_autoptr(sqlite3_stmt) stmt = NULL; g_autoptr(sqlite3_stmt) stmt = NULL;
g_autoptr(GRWLockWriterLocker) locker = NULL; g_autoptr(GRWLockWriterLocker) locker = NULL;
@ -592,6 +594,10 @@ fu_history_modify_device(FuHistory *self, FuDevice *device, GError **error)
if (!fu_history_load(self, error)) if (!fu_history_load(self, error))
return FALSE; return FALSE;
/* metadata is stored as a simple string */
release = fu_device_get_release_default(device);
metadata = _convert_hash_to_string(fwupd_release_get_metadata(release));
/* overwrite entry if it exists */ /* overwrite entry if it exists */
locker = g_rw_lock_writer_locker_new(&self->db_mutex); locker = g_rw_lock_writer_locker_new(&self->db_mutex);
g_return_val_if_fail(locker != NULL, FALSE); g_return_val_if_fail(locker != NULL, FALSE);
@ -602,6 +608,7 @@ fu_history_modify_device(FuHistory *self, FuDevice *device, GError **error)
"update_error = ?2, " "update_error = ?2, "
"checksum_device = ?6, " "checksum_device = ?6, "
"device_modified = ?7, " "device_modified = ?7, "
"metadata = ?8, "
"flags = ?3 " "flags = ?3 "
"WHERE device_id = ?4;", "WHERE device_id = ?4;",
-1, -1,
@ -628,6 +635,7 @@ fu_history_modify_device(FuHistory *self, FuDevice *device, GError **error)
-1, -1,
SQLITE_STATIC); SQLITE_STATIC);
sqlite3_bind_int64(stmt, 7, fu_device_get_modified(device)); sqlite3_bind_int64(stmt, 7, fu_device_get_modified(device));
sqlite3_bind_text(stmt, 8, metadata, -1, SQLITE_STATIC);
return fu_history_stmt_exec(self, stmt, NULL, error); return fu_history_stmt_exec(self, stmt, NULL, error);
#else #else