return TRUE;
}
+GVariant *
+_ostree_repo_static_delta_superblock_digest (OstreeRepo *repo,
+ const char *from,
+ const char *to,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_autofree char *superblock = _ostree_get_relative_static_delta_superblock_path ((from && from[0]) ? from : NULL, to);
+ glnx_autofd int superblock_file_fd = -1;
+ guint8 digest[OSTREE_SHA256_DIGEST_LEN];
+
+ if (!glnx_openat_rdonly (repo->repo_dir_fd, superblock, TRUE, &superblock_file_fd, error))
+ return NULL;
+
+ g_autoptr(GBytes) superblock_content = ot_fd_readall_or_mmap (superblock_file_fd, 0, error);
+ if (!superblock_content)
+ return NULL;
+
+ ot_checksum_bytes (superblock_content, digest);
+
+ return ot_gvariant_new_bytearray (digest, sizeof (digest));
+}
/**
* ostree_repo_list_static_delta_names:
{
g_autofree char *from = NULL;
g_autofree char *to = NULL;
- if (!_ostree_parse_delta_name (delta_names->pdata[i], &from, &to, error))
- return FALSE;
+ GVariant *digest;
- g_autofree char *superblock = _ostree_get_relative_static_delta_superblock_path ((from && from[0]) ? from : NULL, to);
- glnx_autofd int superblock_file_fd = -1;
-
- if (!glnx_openat_rdonly (self->repo_dir_fd, superblock, TRUE, &superblock_file_fd, error))
+ if (!_ostree_parse_delta_name (delta_names->pdata[i], &from, &to, error))
return FALSE;
- g_autoptr(GBytes) superblock_content = ot_fd_readall_or_mmap (superblock_file_fd, 0, error);
- if (!superblock_content)
+ digest = _ostree_repo_static_delta_superblock_digest (self,
+ (from && from[0]) ? from : NULL,
+ to, cancellable, error);
+ if (digest == NULL)
return FALSE;
- g_auto(OtChecksum) hasher = { 0, };
- ot_checksum_init (&hasher);
- ot_checksum_update_bytes (&hasher, superblock_content);
- guint8 digest[OSTREE_SHA256_DIGEST_LEN];
- ot_checksum_get_digest (&hasher, digest, sizeof (digest));
- g_variant_dict_insert_value (&deltas_builder, delta_names->pdata[i], ot_gvariant_new_bytearray (digest, sizeof (digest)));
+ g_variant_dict_insert_value (&deltas_builder, delta_names->pdata[i], digest);
}
if (delta_names->len > 0)