From: Michael Tremer Date: Mon, 12 Jul 2021 18:11:29 +0000 (+0000) Subject: archive: Add flags argument to walk helper function X-Git-Tag: 0.9.28~1038 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bd3e3845585d810a70583c083520a745e00a3d2;p=pakfire.git archive: Add flags argument to walk helper function Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index 9e1a37de2..8b10e3d33 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -126,8 +126,9 @@ ERROR: } static int pakfire_archive_walk_entries(struct pakfire_archive* archive, struct archive* a, - int (*callback)(struct pakfire_archive* archive, struct archive* a, struct archive_entry* e, void* data), - void* data, off_t* offset) { + int (*callback)(struct pakfire_archive* archive, struct archive* a, + struct archive_entry* e, int flags, void* data), + int flags, void* data, off_t* offset) { struct archive_entry* e = NULL; // Walk through the archive @@ -148,7 +149,7 @@ static int pakfire_archive_walk_entries(struct pakfire_archive* archive, struct // Run callback if (callback) { - r = callback(archive, a, e, data); + r = callback(archive, a, e, flags, data); if (r) return r; } @@ -158,8 +159,9 @@ static int pakfire_archive_walk_entries(struct pakfire_archive* archive, struct } static int pakfire_archive_walk(struct pakfire_archive* archive, - int (*callback)(struct pakfire_archive* archive, struct archive* a, struct archive_entry* e, void* data), - void* data, off_t* offset) { + int (*callback)(struct pakfire_archive* archive, struct archive* a, + struct archive_entry* e, int flags, void* data), + int flags, void* data, off_t* offset) { struct archive* a; // Open the archive file @@ -168,7 +170,7 @@ static int pakfire_archive_walk(struct pakfire_archive* archive, return r; // Walk through the archive - r = pakfire_archive_walk_entries(archive, a, callback, data, offset); + r = pakfire_archive_walk_entries(archive, a, callback, flags, data, offset); // Close the archive close_archive(archive, a); @@ -245,7 +247,7 @@ static int open_archive_and_read(struct pakfire_archive* archive, const char* fi This function finds the end of the archive so that we can append more files */ static off_t pakfire_archive_find_end(struct pakfire_archive* archive, off_t* offset) { - return pakfire_archive_walk(archive, NULL, NULL, offset); + return pakfire_archive_walk(archive, NULL, 0, NULL, offset); } static la_ssize_t pakfire_archive_read_callback(struct archive* a, @@ -628,7 +630,7 @@ ERROR: } static int pakfire_archive_read_metadata_entry(struct pakfire_archive* archive, struct archive* a, - struct archive_entry* e, void* data) { + struct archive_entry* e, int flags, void* data) { int ret; const char* entry_name = archive_entry_pathname(e); @@ -650,7 +652,7 @@ static int pakfire_archive_read_metadata_entry(struct pakfire_archive* archive, } static int pakfire_archive_read_metadata(struct pakfire_archive* archive, struct archive* a) { - return pakfire_archive_walk(archive, pakfire_archive_read_metadata_entry, NULL, NULL); + return pakfire_archive_walk(archive, pakfire_archive_read_metadata_entry, 0, NULL, NULL); } /* @@ -874,7 +876,7 @@ ERROR: } static int pakfire_archive_extract_entry(struct pakfire_archive* archive, - struct archive* a, struct archive_entry* entry, void* data) { + struct archive* a, struct archive_entry* entry, int flags, void* data) { struct pakfire_archive_extractor* extractor = (struct pakfire_archive_extractor*)data; char buffer[PATH_MAX]; @@ -974,7 +976,7 @@ PAKFIRE_EXPORT int pakfire_archive_extract(struct pakfire_archive* archive, cons // Extract everything r = pakfire_archive_walk_entries(archive, payload, - pakfire_archive_extract_entry, &extractor, NULL); + pakfire_archive_extract_entry, 0, &extractor, NULL); ERROR: // Finish progressbar @@ -1304,7 +1306,7 @@ static int pakfire_archive_verify_checksums(struct pakfire_archive* archive) { This function is called to examine whether we have a signature and if so verify it */ static int pakfire_archive_verify_signature(struct pakfire_archive* archive, struct archive* a, - struct archive_entry* e, void* data) { + struct archive_entry* e, int flags, void* data) { const char* entry_name = archive_entry_pathname(e); // This is not a signature @@ -1429,7 +1431,7 @@ static int pakfire_archive_verify_signatures(struct pakfire_archive* archive) { archive->verify = PAKFIRE_ARCHIVE_VERIFY_NOT_SIGNED; // Verify all signatures - r = pakfire_archive_walk(archive, pakfire_archive_verify_signature, &checksums, NULL); + r = pakfire_archive_walk(archive, pakfire_archive_verify_signature, 0, &checksums, NULL); ERROR: gpgme_data_release(checksums);