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).
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user