X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-manager.c;h=d903d0d60ed4dc02655a7512c4573d90428b759d;hb=aba496a58acf9d9c61314de71353550e579f85ee;hp=c730e7148df35a5c4d06ca7861b73b35df3b92ef;hpb=06f021a8048583d66202e3ac5cd0a12386d33ac2;p=elogind.git diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index c730e7148..d903d0d60 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -33,7 +33,7 @@ const char* const network_dirs[] = { "/etc/systemd/network", "/run/systemd/network", "/usr/lib/systemd/network", -#ifdef HAVE_SPLIT_USER +#ifdef HAVE_SPLIT_USR "/lib/systemd/network", #endif NULL}; @@ -145,13 +145,13 @@ void manager_free(Manager *m) { sd_event_source_unref(m->sigint_event_source); sd_event_unref(m->event); - while ((network = m->networks)) - network_free(network); - while ((link = hashmap_first(m->links))) link_free(link); hashmap_free(m->links); + while ((network = m->networks)) + network_free(network); + while ((netdev = hashmap_first(m->netdevs))) netdev_free(netdev); hashmap_free(m->netdevs); @@ -312,22 +312,24 @@ static int manager_rtnl_process_link(sd_rtnl *rtnl, sd_rtnl_message *message, vo r = sd_rtnl_message_link_get_ifindex(message, &ifindex); if (r < 0 || ifindex <= 0) { - log_debug("received RTM_NEWLINK message without valid ifindex"); + log_warning("received RTM_NEWLINK message without valid ifindex"); return 0; } r = sd_rtnl_message_read_string(message, IFLA_IFNAME, &name); if (r < 0) - log_debug("received RTM_NEWLINK message without valid IFLA_IFNAME"); + log_warning("received RTM_NEWLINK message without valid ifname"); else { NetDev *netdev; r = netdev_get(m, name, &netdev); if (r >= 0) { - r = netdev_set_ifindex(netdev, ifindex); - if (r < 0) - log_debug("could not set ifindex of netdev '%s' to %d: %s", - name, ifindex, strerror(-r)); + netdev_set_ifindex(netdev, message); + r = sd_rtnl_message_rewind(message); + if (r < 0) { + log_debug("could not rewind rtnl message"); + return 0; + } } }