diff options
Diffstat (limited to 'src/network/networkd-link.c')
-rw-r--r-- | src/network/networkd-link.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 085b8db2f8..d0a3dccd9b 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -29,6 +29,7 @@ int link_new(Manager *manager, struct udev_device *device, Link **ret) { _cleanup_link_free_ Link *link = NULL; uint64_t ifindex; + const char *mac; int r; assert(device); @@ -42,6 +43,11 @@ int link_new(Manager *manager, struct udev_device *device, Link **ret) { if (ifindex <= 0) return -EINVAL; + mac = udev_device_get_sysattr_value(device, "address"); + if (!mac) + return -EINVAL; + + memcpy(&link->mac.ether_addr_octet[0], ether_aton(mac), ETH_ALEN); link->ifindex = ifindex; link->manager = manager; |