X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-link.c;h=f1f04a3de0c35ddba9c42277e91b855953f0b961;hb=f4e884dd1c4cc4bc6d5f068f96b14ceda46f3962;hp=7cb9ee675418101ac966b5926f0e2bba365434d9;hpb=d9c67ea112724e271c39553d966eae612e272e34;p=elogind.git diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 7cb9ee675..f1f04a3de 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -160,7 +160,7 @@ void link_drop(Link *link) { link->state = LINK_STATE_LINGER; - log_debug_link(link, "dropped"); + log_debug_link(link, "link removed"); link_unref(link); @@ -420,7 +420,7 @@ static int route_drop_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) } r = sd_rtnl_message_get_errno(m); - if (r < 0 && r != -ENOENT) + if (r < 0 && r != -ESRCH) log_struct_link(LOG_WARNING, link, "MESSAGE=%s: could not drop route: %s", link->ifname, strerror(-r), @@ -623,7 +623,7 @@ static int address_drop_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdat } r = sd_rtnl_message_get_errno(m); - if (r < 0 && r != -ENOENT) + if (r < 0 && r != -EADDRNOTAVAIL) log_struct_link(LOG_WARNING, link, "MESSAGE=%s: could not drop address: %s", link->ifname, strerror(-r), @@ -1733,6 +1733,12 @@ int link_update(Link *link, sd_rtnl_message *m) { assert(link->ifname); assert(m); + if (link->state == LINK_STATE_LINGER) { + link_ref(link); + log_info_link(link, "link readded"); + link->state = LINK_STATE_ENSLAVING; + } + r = sd_rtnl_message_read_string(m, IFLA_IFNAME, &ifname); if (r >= 0 && !streq(ifname, link->ifname)) { log_info_link(link, "renamed to %s", ifname);