chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
import: make image root directory configurable, instead of hardcoding /var/lib/container
[elogind.git]
/
src
/
import
/
import-gpt.c
diff --git
a/src/import/import-gpt.c
b/src/import/import-gpt.c
index e1c493bbe3b18cf1704f28e93c29c80edb12cd8f..a85ceee337218e8440477cb850056ca040e42a4b 100644
(file)
--- a/
src/import/import-gpt.c
+++ b/
src/import/import-gpt.c
@@
-60,6
+60,7
@@
struct GptImport {
sd_event *event;
CurlGlue *glue;
sd_event *event;
CurlGlue *glue;
+ char *image_root;
Hashmap *files;
gpt_import_on_finished on_finished;
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;
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
} 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;
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);
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;
if (!escaped_url)
return -ENOMEM;
- d = opendir(
"/var/lib/container/"
);
+ d = opendir(
f->import->image_root
);
if (!d) {
if (errno == ENOENT)
return 0;
if (!d) {
if (errno == ENOENT)
return 0;
@@
-575,11
+576,12
@@
static int gpt_import_file_begin(GptImportFile *f) {
return 0;
}
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);
_cleanup_(gpt_import_unrefp) GptImport *i = NULL;
int r;
assert(import);
+ assert(image_root);
i = new0(GptImport, 1);
if (!i)
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->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 {
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);
curl_glue_unref(import->glue);
sd_event_unref(import->event);
+ free(import->image_root);
free(import);
return NULL;
free(import);
return NULL;