]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: drop [BridgeMDB] entries if Bridge= is not set
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 15 Sep 2020 07:07:45 +0000 (16:07 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 16 Sep 2020 15:04:22 +0000 (00:04 +0900)
src/network/networkd-link.c
src/network/networkd-network.c

index 297b26cb6913cd9717a63707cd7612beddc7472c..4ab003280a38b2d0c527148ff1ec24641bb0ee5b 100644 (file)
@@ -1261,14 +1261,6 @@ static int link_set_bridge_mdb(Link *link) {
         if (!link->network)
                 return 0;
 
-        if (LIST_IS_EMPTY(link->network->static_mdb_entries))
-                return 0;
-
-        if (!link->network->bridge) {
-                log_link_error(link, "Cannot configure MDB entries on non-bridge port");
-                return 0;
-        }
-
         LIST_FOREACH(static_mdb_entries, mdb_entry, link->network->static_mdb_entries) {
                 r = mdb_entry_configure(link, mdb_entry);
                 if (r < 0)
index 81876902f56b052fd18621bc8fc75fa15f5d897a..36d01283c0cb755b1fa5454cbf55a4ba17f0e5e6 100644 (file)
@@ -306,6 +306,14 @@ int network_verify(Network *network) {
                 if (section_is_invalid(fdb->section))
                         fdb_entry_free(fdb);
 
+        if (!LIST_IS_EMPTY(network->static_mdb_entries) && !network->bridge) {
+                log_warning("%s: Cannot configure MDB entries on non-bridge port, ignoring [BridgeMDB] sections.",
+                            network->filename);
+
+                while ((mdb = network->static_mdb_entries))
+                        mdb_entry_free(mdb);
+        }
+
         LIST_FOREACH_SAFE(static_mdb_entries, mdb, mdb_next, network->static_mdb_entries)
                 if (mdb_entry_verify(mdb) < 0)
                         mdb_entry_free(mdb);