From 45af44d47da6933b260c734ad9ff721f63f80a4d Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Mon, 8 Dec 2014 19:54:06 +0100 Subject: 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. --- src/network/networkd-ipv4ll.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/network/networkd-ipv4ll.c') 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; -- cgit v1.2.3-54-g00ecf