+ r = sd_rtnl_message_link_get_ifindex(message, &ifindex);
+ if (r < 0 || ifindex <= 0) {
+ log_warning("rtnl: received link message without valid ifindex");
+ return 0;
+ }
+
+ link_get(m, ifindex, &link);
+ if (!link) {
+ /* link is new, so add it */
+ r = link_add(m, message, &link);
+ if (r < 0) {
+ log_debug("could not add new link");
+ return 0;
+ }
+ }
+
+ r = sd_rtnl_message_read_string(message, IFLA_IFNAME, &name);
+ if (r < 0)
+ log_warning("rtnl: received link message without valid ifname");
+ else {
+ NetDev *netdev;
+
+ r = netdev_get(m, name, &netdev);
+ if (r >= 0) {
+ r = netdev_set_ifindex(netdev, message);
+ if (r < 0) {
+ log_debug("could not set ifindex on netdev");
+ return 0;
+ }
+ }
+ }