X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fimport%2Fimport-gpt.c;h=a85ceee337218e8440477cb850056ca040e42a4b;hp=e1c493bbe3b18cf1704f28e93c29c80edb12cd8f;hb=087682d103e08670963686d9b1bc1d35c412a63f;hpb=5fc7f358420883c73dd662769b1670c0694111a0 diff --git a/src/import/import-gpt.c b/src/import/import-gpt.c index e1c493bbe..a85ceee33 100644 --- a/src/import/import-gpt.c +++ b/src/import/import-gpt.c @@ -60,6 +60,7 @@ struct GptImport { sd_event *event; CurlGlue *glue; + char *image_root; Hashmap *files; gpt_import_on_finished on_finished; @@ -129,9 +130,9 @@ static int gpt_import_file_make_final_path(GptImportFile *f) { if (!escaped_etag) return -ENOMEM; - f->final_path = strjoin("/var/lib/container/.gpt-", escaped_url, ".", escaped_etag, ".gpt", NULL); + f->final_path = strjoin(f->import->image_root, "/.gpt-", escaped_url, ".", escaped_etag, ".gpt", NULL); } else - f->final_path = strjoin("/var/lib/container/.gpt-", escaped_url, ".gpt", NULL); + f->final_path = strjoin(f->import->image_root, "/.gpt-", escaped_url, ".gpt", NULL); if (!f->final_path) return -ENOMEM; @@ -169,7 +170,7 @@ static void gpt_import_file_success(GptImportFile *f) { } } - p = strappenda("/var/lib/container/", f->local, ".gpt"); + p = strappenda(f->import->image_root, "/", f->local, ".gpt"); if (f->force_local) (void) rm_rf_dangerous(p, false, true, false); @@ -469,7 +470,7 @@ static int gpt_import_file_find_old_etags(GptImportFile *f) { if (!escaped_url) return -ENOMEM; - d = opendir("/var/lib/container/"); + d = opendir(f->import->image_root); if (!d) { if (errno == ENOENT) return 0; @@ -575,11 +576,12 @@ static int gpt_import_file_begin(GptImportFile *f) { return 0; } -int gpt_import_new(GptImport **import, sd_event *event, gpt_import_on_finished on_finished, void *userdata) { +int gpt_import_new(GptImport **import, sd_event *event, const char *image_root, gpt_import_on_finished on_finished, void *userdata) { _cleanup_(gpt_import_unrefp) GptImport *i = NULL; int r; assert(import); + assert(image_root); i = new0(GptImport, 1); if (!i) @@ -588,6 +590,10 @@ int gpt_import_new(GptImport **import, sd_event *event, gpt_import_on_finished o i->on_finished = on_finished; i->userdata = userdata; + i->image_root = strdup(image_root); + if (!i->image_root) + return -ENOMEM; + if (event) i->event = sd_event_ref(event); else { @@ -622,6 +628,7 @@ GptImport* gpt_import_unref(GptImport *import) { curl_glue_unref(import->glue); sd_event_unref(import->event); + free(import->image_root); free(import); return NULL;