lib/repo: Update summary code to use newer hashing API
authorColin Walters <walters@verbum.org>
Wed, 18 Oct 2017 01:13:20 +0000 (21:13 -0400)
committerAtomic Bot <atomic-devel@projectatomic.io>
Wed, 18 Oct 2017 13:27:11 +0000 (13:27 +0000)
And drop the unnecessary wrapper.

Closes: #1287
Approved by: jlebon

src/libostree/ostree-repo.c
src/libotutil/ot-checksum-utils.c
src/libotutil/ot-checksum-utils.h

index 23f158d95349db08eef9b4ae244fb81ba2c64266..7ee7892a1670c7e67599bfe83e5e08fce08888f3 100644 (file)
@@ -4746,18 +4746,16 @@ ostree_repo_regenerate_summary (OstreeRepo     *self,
         if (!glnx_openat_rdonly (self->repo_dir_fd, superblock, TRUE, &superblock_file_fd, error))
           return FALSE;
 
-        g_autoptr(GInputStream) in_stream = g_unix_input_stream_new (superblock_file_fd, FALSE);
-        if (!in_stream)
+        g_autoptr(GBytes) superblock_content = ot_fd_readall_or_mmap (superblock_file_fd, 0, error);
+        if (!superblock_content)
           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_autofree guchar *csum = NULL;
-        if (!ot_gio_checksum_stream (in_stream,
-                                     &csum,
-                                     cancellable,
-                                     error))
-          return FALSE;
-
-        g_variant_dict_insert_value (&deltas_builder, delta_names->pdata[i], ot_gvariant_new_bytearray (csum, 32));
+        g_variant_dict_insert_value (&deltas_builder, delta_names->pdata[i], ot_gvariant_new_bytearray (digest, sizeof (digest)));
       }
 
     if (delta_names->len > 0)
index a6a9c0ce4324ce17190f3e3318def9d1d0f14a8e..164a96d33f809ce51988a22a40d1580870f513c9 100644 (file)
@@ -252,17 +252,6 @@ ot_gio_splice_get_checksum (GOutputStream  *out,
   return TRUE;
 }
 
-gboolean
-ot_gio_checksum_stream (GInputStream   *in,
-                        guchar        **out_csum,
-                        GCancellable   *cancellable,
-                        GError        **error)
-{
-  if (!out_csum)
-    return TRUE;
-  return ot_gio_splice_get_checksum (NULL, in, out_csum, cancellable, error);
-}
-
 char *
 ot_checksum_file_at (int             dfd,
                      const char     *path,
index 2d1aa612b026f81a9c68754fbcff63a2310dc163..df14599e84d8a9f5f9cb94b535fbee3f047c3d62 100644 (file)
@@ -88,11 +88,6 @@ gboolean ot_gio_splice_update_checksum (GOutputStream  *out,
                                         GCancellable   *cancellable,
                                         GError        **error);
 
-gboolean ot_gio_checksum_stream (GInputStream   *in,
-                                 guchar        **out_csum,
-                                 GCancellable   *cancellable,
-                                 GError        **error);
-
 char * ot_checksum_file_at (int             dfd,
                             const char     *path,
                             GChecksumType   checksum_type,