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;
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));
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
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,