]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: assign Network::manager when it is listed to the manager object. 11780/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 22 Feb 2019 00:38:19 +0000 (09:38 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 26 Feb 2019 01:06:27 +0000 (10:06 +0900)
Now Network::manager is not necessary during parsing configs.

C.f. 838b2f7a30dbb68f4d6939626a165b313cc94542.

src/network/networkd-network.c

index 33bda6ca05eb4b0c629e03f6866a074cb67dc8a4..7826ba2140ca7afa70e7572989b69269f272a15d 100644 (file)
@@ -314,7 +314,6 @@ int network_load_one(Manager *manager, const char *filename) {
                 return log_oom();
 
         *network = (Network) {
-                .manager = manager,
                 .filename = TAKE_PTR(fname),
                 .name = TAKE_PTR(name),
 
@@ -405,15 +404,13 @@ int network_load_one(Manager *manager, const char *filename) {
                               "CAN\0",
                               config_item_perf_lookup, network_network_gperf_lookup,
                               CONFIG_PARSE_WARN, network);
-        if (r < 0) {
-                /* Unset manager here. Otherwise, LIST_REMOVE() in network_free() fails. */
-                network->manager = NULL;
+        if (r < 0)
                 return r;
-        }
 
         network_apply_anonymize_if_set(network);
 
         LIST_PREPEND(networks, manager->networks, network);
+        network->manager = manager;
 
         r = hashmap_ensure_allocated(&manager->networks_by_name, &string_hash_ops);
         if (r < 0)