From 06a6e593011a8af10f8a824a0be140a5085dac3a Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Thu, 2 Jan 2014 15:56:10 +0100 Subject: [PATCH] networkd: only track state of links we are managing If a network is not (yet) set for a link, we do not care about its state (as we anyway don't know what to do with it). --- src/network/networkd-link.c | 3 ++- src/network/networkd-manager.c | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 9d942f436..a59434019 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -619,6 +619,7 @@ int link_update(Link *link, sd_rtnl_message *m) { int r; assert(link); + assert(link->network); assert(m); r = sd_rtnl_message_link_get_flags(m, &flags); @@ -645,7 +646,7 @@ int link_update(Link *link, sd_rtnl_message *m) { } else if (!(link->flags & IFF_LOWER_UP) && flags & IFF_LOWER_UP) { log_info("%s: connected", link->ifname); - if (link->network && link->network->dhcp) { + if (link->network->dhcp) { r = link_acquire_conf(link); if (r < 0) { link_enter_failed(link); diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 73e0c87f3..07552063e 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -247,9 +247,12 @@ static int manager_rtnl_process_link(sd_rtnl *rtnl, sd_rtnl_message *message, vo if (!link) return 0; - r = link_update(link, message); - if (r < 0) - return 0; + /* only track the status of links we want to manage */ + if (link->network) { + r = link_update(link, message); + if (r < 0) + return 0; + } return 1; } -- 2.30.2