if (!link)
return -ENOMEM;
+ link->manager = manager;
+ link->state = _LINK_STATE_INVALID;
+
link->ifindex = udev_device_get_ifindex(device);
if (link->ifindex <= 0)
return -EINVAL;
mac = udev_device_get_sysattr_value(device, "address");
- if (!mac)
- return -EINVAL;
-
- mac_addr = ether_aton(mac);
- if (!mac_addr)
- return -EINVAL;
-
- memcpy(&link->mac, mac_addr, sizeof(struct ether_addr));
-
- link->manager = manager;
- link->state = _LINK_STATE_INVALID;
+ if (mac) {
+ mac_addr = ether_aton(mac);
+ if (mac_addr)
+ memcpy(&link->mac, mac_addr, sizeof(struct ether_addr));
+ }
r = hashmap_put(manager->links, &link->ifindex, link);
if (r < 0)
if (!network)
return log_oom();
+ network->manager = manager;
+
LIST_HEAD_INIT(network->addresses);
r = config_parse(NULL, filename, file, "Match\0Network\0", config_item_perf_lookup,
if (!network->filename)
return log_oom();
- network->manager = manager;
-
LIST_PREPEND(networks, manager->networks, network);
network = NULL;