From: Michael Tremer Date: Wed, 24 Aug 2022 10:09:48 +0000 (+0000) Subject: digests: Redefine enum as bitmask X-Git-Tag: 0.9.28~378 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c4b4a02ff88a1823b66ee723ad150fe4198e4d3;p=pakfire.git digests: Redefine enum as bitmask Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/downloader.c b/src/libpakfire/downloader.c index 2fead72b0..1fbf33781 100644 --- a/src/libpakfire/downloader.c +++ b/src/libpakfire/downloader.c @@ -353,6 +353,9 @@ static struct pakfire_transfer* pakfire_downloader_create_transfer( case PAKFIRE_DIGEST_SHA256: transfer->md = EVP_sha256(); break; + + case PAKFIRE_DIGEST_UNDEFINED: + break; } // Copy the expected digest diff --git a/src/libpakfire/file.c b/src/libpakfire/file.c index 4aee3cc80..54e393e26 100644 --- a/src/libpakfire/file.c +++ b/src/libpakfire/file.c @@ -490,6 +490,9 @@ PAKFIRE_EXPORT const unsigned char* pakfire_file_get_digest( *length = sizeof(file->digests.sha256); return file->digests.sha256; + + case PAKFIRE_DIGEST_UNDEFINED: + break; } return NULL; @@ -518,6 +521,10 @@ PAKFIRE_EXPORT int pakfire_file_set_digest(struct pakfire_file* file, case PAKFIRE_DIGEST_SHA256: memcpy(file->digests.sha256, digest, sizeof(file->digests.sha256)); break; + + case PAKFIRE_DIGEST_UNDEFINED: + errno = ENOTSUP; + return 1; } return 0; diff --git a/src/libpakfire/include/pakfire/digest.h b/src/libpakfire/include/pakfire/digest.h index 887148e24..5ed91ea7f 100644 --- a/src/libpakfire/include/pakfire/digest.h +++ b/src/libpakfire/include/pakfire/digest.h @@ -23,8 +23,9 @@ // Pakfire knows these digests enum pakfire_digest_types { - PAKFIRE_DIGEST_SHA256 = 1, - PAKFIRE_DIGEST_SHA512 = 2, + PAKFIRE_DIGEST_UNDEFINED = 0, + PAKFIRE_DIGEST_SHA256 = (1 << 0), + PAKFIRE_DIGEST_SHA512 = (1 << 1), }; #ifdef PAKFIRE_PRIVATE diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index 85eb978e8..4d4ca52f6 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -1148,6 +1148,9 @@ PAKFIRE_EXPORT char* pakfire_package_dump(struct pakfire_package* pkg, int flags case PAKFIRE_DIGEST_SHA256: pakfire_package_dump_add_line(&string, _("SHA256 Digest"), hexdigest); break; + + case PAKFIRE_DIGEST_UNDEFINED: + break; } // Source package diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index a6ed6226f..569de67cc 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -479,6 +479,9 @@ size_t pakfire_digest_length(enum pakfire_digest_types digest) { case PAKFIRE_DIGEST_SHA256: return 32; + + case PAKFIRE_DIGEST_UNDEFINED: + return 0; } return 0;