summaryrefslogtreecommitdiff
path: root/src/network/networkd-ipv4ll.c
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-12-08 19:54:06 +0100
committerTom Gundersen <teg@jklm.no>2014-12-08 22:13:40 +0100
commit45af44d47da6933b260c734ad9ff721f63f80a4d (patch)
tree0aae958af8aba2c93a202b9e681749cfc9e19b66 /src/network/networkd-ipv4ll.c
parent2173cbf847fc53ca24950e77958c902edecfc207 (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.c7
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;