summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-01-02 15:56:10 +0100
committerTom Gundersen <teg@jklm.no>2014-01-02 15:56:10 +0100
commit06a6e593011a8af10f8a824a0be140a5085dac3a (patch)
treec1de8e9e2118f49f3e1011fe3ad9d0dfdf291edc
parent449f75549247b3b7b073a788f0f099ce6b7c5378 (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.c3
-rw-r--r--src/network/networkd-manager.c9
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;
}