mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
networkd: don't warn about missing links unnecessarily
If we get a NEWLINK + NEWADDR between enumerating the links and enumerating the addresses, we would get a warning that the link corresponding to the address does not exist. This is a false warning as both the NEWLINK and NEWADDR would be processed after enumerating completed, so drop it.
This commit is contained in:
parent
73432d67b5
commit
6a24f1484f
@ -1492,7 +1492,10 @@ int link_rtnl_process_address(sd_rtnl *rtnl, sd_rtnl_message *message, void *use
|
||||
} else {
|
||||
r = link_get(m, ifindex, &link);
|
||||
if (r < 0 || !link) {
|
||||
log_warning("rtnl: received address for nonexistent link (%d), ignoring", ifindex);
|
||||
/* when enumerating we might be out of sync, but we will
|
||||
* get the address again, so just ignore it */
|
||||
if (!m->enumerating)
|
||||
log_warning("rtnl: received address for nonexistent link (%d), ignoring", ifindex);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -525,9 +525,13 @@ int manager_rtnl_enumerate_links(Manager *m) {
|
||||
for (link = reply; link; link = sd_rtnl_message_next(link)) {
|
||||
int k;
|
||||
|
||||
m->enumerating = true;
|
||||
|
||||
k = manager_rtnl_process_link(m->rtnl, link, m);
|
||||
if (k < 0)
|
||||
r = k;
|
||||
|
||||
m->enumerating = false;
|
||||
}
|
||||
|
||||
return r;
|
||||
@ -556,9 +560,13 @@ int manager_rtnl_enumerate_addresses(Manager *m) {
|
||||
for (addr = reply; addr; addr = sd_rtnl_message_next(addr)) {
|
||||
int k;
|
||||
|
||||
m->enumerating = true;
|
||||
|
||||
k = link_rtnl_process_address(m->rtnl, addr, m);
|
||||
if (k < 0)
|
||||
r = k;
|
||||
|
||||
m->enumerating = false;
|
||||
}
|
||||
|
||||
return r;
|
||||
|
@ -206,6 +206,8 @@ struct Manager {
|
||||
struct udev_monitor *udev_monitor;
|
||||
sd_event_source *udev_event_source;
|
||||
|
||||
bool enumerating;
|
||||
|
||||
char *state_file;
|
||||
|
||||
Hashmap *links;
|
||||
|
Loading…
Reference in New Issue
Block a user