// Call the filter callback before we call the actual callback
if (filter_callback) {
- r = filter_callback(archive->ctx, archive, a, entry, p);
+ r = filter_callback(archive, entry, p);
// Handle the return code
switch (r) {
// Run callback
if (walk_callback) {
- r = walk_callback(archive->ctx, archive, a, entry, p);
+ r = walk_callback(archive, a, entry, p);
// Handle the return code
switch (r) {
return r;
}
-static int __pakfire_archive_read_metadata(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* entry, void* p) {
+static int __pakfire_archive_read_metadata(struct pakfire_archive* archive,
+ struct archive* a, struct archive_entry* entry, void* p) {
char* data = NULL;
size_t length = 0;
int r;
const char* path = archive_entry_pathname(entry);
- CTX_DEBUG(ctx, "Reading metadata file: %s\n", path);
+ CTX_DEBUG(archive->ctx, "Reading metadata file: %s\n", path);
// Load the file into memory
r = pakfire_archive_copy_data_to_buffer(archive, a, entry, &data, &length);
if (r) {
- CTX_ERROR(ctx, "Could not read data from archive: %s\n", archive_error_string(a));
+ CTX_ERROR(archive->ctx, "Could not read data from archive: %s\n", archive_error_string(a));
goto ERROR;
}
return r;
}
-static int __pakfire_archive_filter_metadata(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* entry, void* p) {
+static int __pakfire_archive_filter_metadata(struct pakfire_archive* archive,
+ struct archive_entry* entry, void* p) {
const char* path = archive_entry_pathname(entry);
// Format >= 6
return json_object_get_int64(object);
}
-static int pakfire_archive_filter_payload(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* entry, void* p) {
+static int pakfire_archive_filter_payload(struct pakfire_archive* archive,
+ struct archive_entry* entry, void* p) {
const char* path = archive_entry_pathname(entry);
if (!path)
return PAKFIRE_WALK_ERROR;
};
// Tries to find a matching file in the archive
-static int pakfire_archive_read_filter(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* e, void* data) {
+static int pakfire_archive_read_filter(struct pakfire_archive* archive,
+ struct archive_entry* e, void* data) {
struct pakfire_archive_read_cookie* cookie = data;
const char* symlink = NULL;
int r;
// Increment counter
if (++cookie->followed_symlinks >= MAX_FOLLOW_SYMLINKS) {
- CTX_ERROR(ctx, "Reached maximum number of symlinks to follow\n");
+ CTX_ERROR(archive->ctx, "Reached maximum number of symlinks to follow\n");
return PAKFIRE_WALK_ERROR;
}
}
// Reads a matching file into memory
-static int __pakfire_archive_read(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* e, void* data) {
+static int __pakfire_archive_read(struct pakfire_archive* archive,
+ struct archive* a, struct archive_entry* e, void* data) {
struct pakfire_archive_read_cookie* cookie = data;
// Create a file descriptor
cookie->f = fopencookie(cookie, "r", pakfire_archive_read_functions);
if (!cookie->f) {
- CTX_ERROR(ctx, "Could not open /%s: %m\n", cookie->path);
+ CTX_ERROR(archive->ctx, "Could not open /%s: %m\n", cookie->path);
return PAKFIRE_WALK_ERROR;
}
pakfire_progress_update(state->archive->progress, position);
}
-static int pakfire_archive_extract_one(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* entry, void* data) {
+static int pakfire_archive_extract_one(struct pakfire_archive* archive,
+ struct archive* a, struct archive_entry* entry, void* data) {
struct pakfire_file* file = NULL;
struct vfs_cap_data cap_data = {};
char buffer[PATH_MAX];
// Compose file path
r = pakfire_path_append(buffer, state->prefix, path);
if (r < 0) {
- CTX_ERROR(ctx, "Could not compose file path: %m\n");
+ CTX_ERROR(archive->ctx, "Could not compose file path: %m\n");
goto ERROR;
}
if (link) {
r = pakfire_path_append(buffer, state->prefix, link);
if (r < 0) {
- CTX_ERROR(ctx, "Could not compose hardlink path: %m\n");
+ CTX_ERROR(archive->ctx, "Could not compose hardlink path: %m\n");
goto ERROR;
}
path = archive_entry_pathname(entry);
if (pakfire_path_exists(path)) {
- CTX_DEBUG(ctx, "The configuration file %s exists\n",
+ CTX_DEBUG(archive->ctx, "The configuration file %s exists\n",
pakfire_file_get_path(file));
r = pakfire_string_format(buffer, "%s.paknew", path);
if (r < 0) {
- CTX_ERROR(ctx, "Could not compose path for configuration file: %m\n");
+ CTX_ERROR(archive->ctx, "Could not compose path for configuration file: %m\n");
goto ERROR;
}
// Fetch path again since we changed it
path = archive_entry_pathname(entry);
- CTX_DEBUG(ctx, "Extracting %s\n", path);
+ CTX_DEBUG(archive->ctx, "Extracting %s\n", path);
// Remove any extended attributes which we never write to disk
archive_entry_xattr_clear(entry);
break;
case ARCHIVE_WARN:
- CTX_ERROR(ctx, "%s\n", archive_error_string(state->writer));
+ CTX_ERROR(archive->ctx, "%s\n", archive_error_string(state->writer));
// Pretend everything has been okay
r = 0;
break;
case ARCHIVE_FATAL:
- CTX_ERROR(ctx, "%s\n", archive_error_string(state->writer));
+ CTX_ERROR(archive->ctx, "%s\n", archive_error_string(state->writer));
r = 1;
break;
}
/*
systemd sysusers
*/
-static int pakfire_archive_filter_systemd_sysusers(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* e, void* data) {
+static int pakfire_archive_filter_systemd_sysusers(struct pakfire_archive* archive,
+ struct archive_entry* e, void* data) {
const char* path = archive_entry_pathname(e);
if (!pakfire_path_match("usr/lib/sysusers.d/*.conf", path))
return bytes_read;
}
-static int pakfire_archive_handle_systemd_sysusers(struct pakfire_ctx* ctx,
- struct pakfire_archive* archive, struct archive* a, struct archive_entry* e, void* data) {
+static int pakfire_archive_handle_systemd_sysusers(struct pakfire_archive* archive,
+ struct archive* a, struct archive_entry* e, void* data) {
struct pakfire_jail* jail = NULL;
char replace[PATH_MAX];
int r;