diff --git a/libfwupd/fwupd-release.c b/libfwupd/fwupd-release.c index bf3c89b71..ace07e6de 100644 --- a/libfwupd/fwupd-release.c +++ b/libfwupd/fwupd-release.c @@ -279,6 +279,31 @@ fwupd_release_add_checksum (FwupdRelease *release, const gchar *checksum) g_ptr_array_add (priv->checksums, g_strdup (checksum)); } +/** + * fwupd_release_has_checksum: + * @release: A #FwupdRelease + * @checksum: the update checksum + * + * Finds out if the release has the update checksum. + * + * Returns: %TRUE if the release matches + * + * Since: 1.2.6 + **/ +gboolean +fwupd_release_has_checksum (FwupdRelease *release, const gchar *checksum) +{ + FwupdReleasePrivate *priv = GET_PRIVATE (release); + g_return_val_if_fail (FWUPD_IS_RELEASE (release), FALSE); + g_return_val_if_fail (checksum != NULL, FALSE); + for (guint i = 0; i < priv->checksums->len; i++) { + const gchar *checksum_tmp = g_ptr_array_index (priv->checksums, i); + if (g_strcmp0 (checksum_tmp, checksum) == 0) + return TRUE; + } + return FALSE; +} + /** * fwupd_release_get_metadata: * @release: A #FwupdRelease diff --git a/libfwupd/fwupd-release.h b/libfwupd/fwupd-release.h index 5dcaef44d..838e365f1 100644 --- a/libfwupd/fwupd-release.h +++ b/libfwupd/fwupd-release.h @@ -40,6 +40,8 @@ void fwupd_release_set_uri (FwupdRelease *release, GPtrArray *fwupd_release_get_checksums (FwupdRelease *release); void fwupd_release_add_checksum (FwupdRelease *release, const gchar *checksum); +gboolean fwupd_release_has_checksum (FwupdRelease *release, + const gchar *checksum); GHashTable *fwupd_release_get_metadata (FwupdRelease *release); void fwupd_release_add_metadata (FwupdRelease *release, diff --git a/libfwupd/fwupd.map b/libfwupd/fwupd.map index 9ad9573dd..a43f63f42 100644 --- a/libfwupd/fwupd.map +++ b/libfwupd/fwupd.map @@ -331,6 +331,7 @@ LIBFWUPD_1.2.6 { fwupd_release_flag_from_string; fwupd_release_flag_to_string; fwupd_release_get_flags; + fwupd_release_has_checksum; fwupd_release_has_flag; fwupd_release_remove_flag; fwupd_release_set_flags;