]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/import/import-raw.c
import: use structured initializers
[thirdparty/systemd.git] / src / import / import-raw.c
index f62247cabdf12b74b04577480ed84da54766a069..e8adaae74096e2565f68698c73fe1e74a87c2a28 100644 (file)
@@ -94,26 +94,33 @@ int raw_import_new(
                 void *userdata) {
 
         _cleanup_(raw_import_unrefp) RawImport *i = NULL;
+        _cleanup_free_ char *root = NULL;
+        bool grow;
         int r;
 
         assert(ret);
 
-        i = new0(RawImport, 1);
-        if (!i)
+        root = strdup(image_root ?: "/var/lib/machines");
+        if (!root)
                 return -ENOMEM;
 
-        i->input_fd = i->output_fd = -1;
-        i->on_finished = on_finished;
-        i->userdata = userdata;
-
-        RATELIMIT_INIT(i->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
-        i->last_percent = (unsigned) -1;
+        grow = path_startswith(root, "/var/lib/machines");
 
-        i->image_root = strdup(image_root ?: "/var/lib/machines");
-        if (!i->image_root)
+        i = new(RawImport, 1);
+        if (!i)
                 return -ENOMEM;
 
-        i->grow_machine_directory = path_startswith(i->image_root, "/var/lib/machines");
+        *i = (RawImport) {
+                .input_fd = -1,
+                .output_fd = -1,
+                .on_finished = on_finished,
+                .userdata = userdata,
+                .last_percent = (unsigned) -1,
+                .image_root = TAKE_PTR(root),
+                .grow_machine_directory = grow,
+        };
+
+        RATELIMIT_INIT(i->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
 
         if (event)
                 i->event = sd_event_ref(event);