]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
archive: Move helper function to read data into buffer from util
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Oct 2023 12:25:46 +0000 (12:25 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Oct 2023 12:25:46 +0000 (12:25 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c
src/libpakfire/include/pakfire/util.h
src/libpakfire/util.c

index f6515e378a80962ec18d4cda2d1445c94f37c617..368320f472ec08bb51ef83ce442ff9ef806a2cbe 100644 (file)
@@ -341,6 +341,32 @@ static int pakfire_archive_parse_scriptlet(struct pakfire_archive* archive,
        return 0;
 }
 
+static int pakfire_archive_copy_data_to_buffer(struct pakfire_archive* archive,
+               struct archive* a, struct archive_entry* entry, char** data, size_t* data_size) {
+       *data = NULL;
+       *data_size = 0;
+
+       size_t required_size = archive_entry_size(entry);
+       if (!required_size)
+               return 0;
+
+       // Allocate a block of the required size
+       *data = calloc(1, required_size + 1);
+       if (!*data)
+               return ENOMEM;
+
+       ssize_t bytes_read = archive_read_data(a, *data, required_size);
+       if (bytes_read < 0) {
+               CTX_ERROR(archive->ctx, "Could not read from archive: %s\n", archive_error_string(a));
+               free(*data);
+               return 1;
+       }
+
+       *data_size = bytes_read;
+
+       return 0;
+}
+
 static int __pakfire_archive_read_metadata(struct pakfire_ctx* ctx, struct archive* a,
                struct archive_entry* entry, void* p) {
        struct pakfire_archive* archive = (struct pakfire_archive*)p;
@@ -354,7 +380,7 @@ static int __pakfire_archive_read_metadata(struct pakfire_ctx* ctx, struct archi
        CTX_DEBUG(ctx, "Reading metadata file: %s\n", path);
 
        // Load the file into memory
-       r = pakfire_archive_copy_data_to_buffer(archive->ctx, a, entry, &data, &length);
+       r = pakfire_archive_copy_data_to_buffer(archive, a, entry, &data, &length);
        if (r) {
                CTX_ERROR(archive->ctx, "Could not read data from archive: %s\n",
                        archive_error_string(a));
index 9b05700f75887198991b84f7f6b3da3202a4080d..14b54dfc160109f5f0fff854e7c1e1d4b9f10131 100644 (file)
@@ -90,8 +90,6 @@ int pakfire_tty_is_noninteractive(void);
 
 int pakfire_archive_copy_data_from_file(struct pakfire* pakfire,
        struct archive* archive, FILE* f);
-int pakfire_archive_copy_data_to_buffer(struct pakfire_ctx* ctx, struct archive* a,
-       struct archive_entry* entry, char** data, size_t* data_size);
 
 // JSON Stuff
 
index ff2440c2ec38d8eef25408e144b79d336e0f33f1..9aa1993f4a13ee27fdcb97b630f0830605c4717f 100644 (file)
@@ -677,32 +677,6 @@ int pakfire_archive_copy_data_from_file(struct pakfire* pakfire,
        return 0;
 }
 
-int pakfire_archive_copy_data_to_buffer(struct pakfire_ctx* ctx, struct archive* a,
-               struct archive_entry* entry, char** data, size_t* data_size) {
-       *data = NULL;
-       *data_size = 0;
-
-       size_t required_size = archive_entry_size(entry);
-       if (!required_size)
-               return 0;
-
-       // Allocate a block of the required size
-       *data = calloc(1, required_size + 1);
-       if (!*data)
-               return ENOMEM;
-
-       ssize_t bytes_read = archive_read_data(a, *data, required_size);
-       if (bytes_read < 0) {
-               CTX_ERROR(ctx, "Could not read from archive: %s\n", archive_error_string(a));
-               free(*data);
-               return 1;
-       }
-
-       *data_size = bytes_read;
-
-       return 0;
-}
-
 // JSON Stuff
 
 struct json_object* pakfire_json_parse(struct pakfire_ctx* ctx,