diff options
author | Tom Gundersen <teg@jklm.no> | 2014-01-02 15:56:10 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-01-02 15:56:10 +0100 |
commit | 06a6e593011a8af10f8a824a0be140a5085dac3a (patch) | |
tree | c1de8e9e2118f49f3e1011fe3ad9d0dfdf291edc | |
parent | 449f75549247b3b7b073a788f0f099ce6b7c5378 (diff) |
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).
-rw-r--r-- | src/network/networkd-link.c | 3 | ||||
-rw-r--r-- | 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 9d942f436b..a59434019d 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 73e0c87f34..07552063ec 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; } |