chiark / gitweb /
networkd: support route scopes
[elogind.git] / src / network / networkd-ipv4ll.c
index beac939b39522b9a38694a9d26a385424f53cc22..8050801e1959d69cedf0638721d79ed44d744b51 100644 (file)
@@ -105,11 +105,8 @@ static int ipv4ll_address_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userd
         if (r < 0 && r != -EEXIST) {
                 log_link_error(link, "could not set ipv4ll address: %s", strerror(-r));
                 link_enter_failed(link);
-        } else if (r >= 0) {
-                /* calling handler directly so take a ref */
-                link_ref(link);
-                link_get_address_handler(rtnl, m, link);
-        }
+        } else if (r >= 0)
+                link_rtnl_process_address(rtnl, m, link->manager);
 
         link->ipv4ll_address = true;
 
@@ -212,7 +209,7 @@ int ipv4ll_configure(Link *link) {
 
         assert(link);
         assert(link->network);
-        assert(link->network->ipv4ll);
+        assert(IN_SET(link->network->link_local, ADDRESS_FAMILY_IPV4, ADDRESS_FAMILY_YES));
 
         r = sd_ipv4ll_new(&link->ipv4ll);
         if (r < 0)