if (!link->ifname)
return -ENOMEM;
- r = asprintf(&link->state_file, "/run/systemd/network/links/%"PRIu64,
+ r = sd_rtnl_message_read_ether_addr(message, IFLA_ADDRESS, &link->mac);
+ if (r < 0)
+ return r;
+
+ r = asprintf(&link->state_file, "/run/systemd/netif/links/%"PRIu64,
link->ifindex);
if (r < 0)
return -ENOMEM;
- r = asprintf(&link->lease_file, "/run/systemd/network/leases/%"PRIu64,
+ r = asprintf(&link->lease_file, "/run/systemd/netif/leases/%"PRIu64,
link->ifindex);
if (r < 0)
return -ENOMEM;
LIST_PREPEND(addresses, link->addresses, address);
address = NULL;
+ link_save(link);
+
break;
case RTM_DELADDR:
- if (address_dropped)
+ if (address_dropped) {
log_debug_link(link, "removed address: %s/%u", buf,
address->prefixlen);
+ link_save(link);
+ }
+
break;
default:
assert_not_reached("Received invalid RTNL message type");