]> git.ipfire.org Git - pakfire.git/commitdiff
archive: Add flags argument to walk helper function
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 12 Jul 2021 18:11:29 +0000 (18:11 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 12 Jul 2021 18:11:29 +0000 (18:11 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c

index 9e1a37de2990de63c68e05e1bb920764499aef67..8b10e3d33e6ff6ce76591ac655b50ef6b91dbcb1 100644 (file)
@@ -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);