]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
machine: modernizations of serializing/deserializing netif data
authorLennart Poettering <lennart@poettering.net>
Mon, 19 May 2025 09:19:17 +0000 (11:19 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 27 May 2025 08:23:36 +0000 (10:23 +0200)
src/machine/machine.c

index 51dfb77c364c75384208ddf9c945c5825f2c5333..c52883d9c2a54cb1109f3e921a65bf515daac218 100644 (file)
@@ -208,18 +208,13 @@ int machine_save(Machine *m) {
                         m->timestamp.monotonic);
 
         if (m->n_netif > 0) {
-                size_t i;
-
-                fputs("NETIF=", f);
-
-                for (i = 0; i < m->n_netif; i++) {
-                        if (i != 0)
+                fputs("NETIF=\"", f);
+                FOREACH_ARRAY(ifi, m->netif, m->n_netif) {
+                        if (*ifi != 0)
                                 fputc(' ', f);
-
-                        fprintf(f, "%i", m->netif[i]);
+                        fprintf(f, "%i", *ifi);
                 }
-
-                fputc('\n', f);
+                fputs("\"\n", f);
         }
 
         r = flink_tmpfile(f, temp_path, m->state_file, LINK_TMPFILE_REPLACE);
@@ -315,13 +310,13 @@ int machine_load(Machine *m) {
         if (monotonic)
                 (void) deserialize_usec(monotonic, &m->timestamp.monotonic);
 
+        m->netif = mfree(m->netif);
+        m->n_netif = 0;
         if (netif) {
                 _cleanup_free_ int *ni = NULL;
                 size_t nr = 0;
-                const char *p;
 
-                p = netif;
-                for (;;) {
+                for (const char *p = netif;;) {
                         _cleanup_free_ char *word = NULL;
 
                         r = extract_first_word(&p, &word, NULL, 0);
@@ -344,7 +339,7 @@ int machine_load(Machine *m) {
                         ni[nr++] = r;
                 }
 
-                free_and_replace(m->netif, ni);
+                m->netif = TAKE_PTR(ni);
                 m->n_netif = nr;
         }