diff options
Diffstat (limited to 'src/network/networkd-netdev.c')
-rw-r--r-- | src/network/networkd-netdev.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/network/networkd-netdev.c b/src/network/networkd-netdev.c index 1519419c1f..0d08e564e5 100644 --- a/src/network/networkd-netdev.c +++ b/src/network/networkd-netdev.c @@ -92,6 +92,8 @@ static void netdev_free(NetDev *netdev) { free(netdev->description); free(netdev->ifname); + free(netdev->mac); + free(netdev->mac_peer); condition_free_list(netdev->match_host); condition_free_list(netdev->match_virt); @@ -301,7 +303,7 @@ static int netdev_create(NetDev *netdev, Link *link, sd_rtnl_message_handler_t c return r; } - if(netdev->mtu) { + if (netdev->mtu) { r = sd_rtnl_message_append_u32(req, IFLA_MTU, netdev->mtu); if (r < 0) { log_error_netdev(netdev, @@ -311,6 +313,16 @@ static int netdev_create(NetDev *netdev, Link *link, sd_rtnl_message_handler_t c } } + if (netdev->mac) { + r = sd_rtnl_message_append_ether_addr(req, IFLA_ADDRESS, netdev->mac); + if (r < 0) { + log_error_netdev(netdev, + "Colud not append IFLA_ADDRESS attribute: %s", + strerror(-r)); + return r; + } + } + r = sd_rtnl_message_open_container(req, IFLA_LINKINFO); if (r < 0) { log_error_netdev(netdev, |