CurlGlue *glue;
char *index_url;
+ char *image_root;
Hashmap *names;
Hashmap *jobs;
assert(name->id);
- p = strappenda("/var/lib/container/", name->local);
- q = strappenda("/var/lib/container/.dkr-", name->id);
+ p = strappenda(name->import->image_root, "/", name->local);
+ q = strappenda(name->import->image_root, "/.dkr-", name->id);
if (name->force_local) {
(void) btrfs_subvol_remove(p);
return 0;
}
- path = strjoin("/var/lib/container/.dkr-", layer, NULL);
+ path = strjoin(name->import->image_root, "/.dkr-", layer, NULL);
if (!path)
return log_oom();
if (base) {
const char *base_path;
- base_path = strappend("/var/lib/container/.dkr-", base);
+ base_path = strappenda(name->import->image_root, "/.dkr-", base);
r = btrfs_subvol_snapshot(base_path, temp, false, true);
} else
r = btrfs_subvol_make(temp);
return dkr_import_name_add_job(name, DKR_IMPORT_JOB_IMAGES, url, &name->job_images);
}
-int dkr_import_new(DkrImport **import, sd_event *event, const char *index_url, dkr_import_on_finished on_finished, void *userdata) {
+int dkr_import_new(
+ DkrImport **import,
+ sd_event *event,
+ const char *index_url,
+ const char *image_root,
+ dkr_import_on_finished on_finished,
+ void *userdata) {
+
_cleanup_(dkr_import_unrefp) DkrImport *i = NULL;
char *e;
int r;
assert(import);
assert(dkr_url_is_valid(index_url));
+ assert(image_root);
i = new0(DkrImport, 1);
if (!i)
if (!i->index_url)
return -ENOMEM;
+ i->image_root = strdup(image_root);
+ if (!i->image_root)
+ return -ENOMEM;
+
e = endswith(i->index_url, "/");
if (e)
*e = 0;
sd_event_unref(import->event);
free(import->index_url);
-
+ free(import->image_root);
free(import);
return NULL;