diff options
author | Tom Gundersen <teg@jklm.no> | 2014-12-08 19:54:06 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-12-08 22:13:40 +0100 |
commit | 45af44d47da6933b260c734ad9ff721f63f80a4d (patch) | |
tree | 0aae958af8aba2c93a202b9e681749cfc9e19b66 /src/network/networkd-ipv4ll.c | |
parent | 2173cbf847fc53ca24950e77958c902edecfc207 (diff) |
networkd: manager - enumerate addresses globally, rather than per-link
The kernel always returns all addresses, rather than only for the given link, so let's only enumerate once.
Diffstat (limited to 'src/network/networkd-ipv4ll.c')
-rw-r--r-- | src/network/networkd-ipv4ll.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/network/networkd-ipv4ll.c b/src/network/networkd-ipv4ll.c index beac939b39..339bf4d190 100644 --- a/src/network/networkd-ipv4ll.c +++ b/src/network/networkd-ipv4ll.c @@ -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; |