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)
}
static int link_enter_routes_set(Link *link) {
- log_info("Routes set for link %u", (unsigned)link->ifindex);
+ log_info("Routes set for link %ju", link->ifindex);
if (link_is_up(link))
return link_enter_configured(link);
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST) {
- log_warning("Could not set route on interface %u: %s",
- (unsigned)link->ifindex, strerror(-r));
+ log_warning("Could not set route on interface %ju: %s",
+ link->ifindex, strerror(-r));
return link_enter_failed(link);
}
}
static int link_enter_addresses_set(Link *link) {
- log_info("Addresses set for link %u", (unsigned)link->ifindex);
+ log_info("Addresses set for link %ju", link->ifindex);
link->state = LINK_STATE_ADDRESSES_SET;
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST) {
- log_warning("Could not set address on interface %u: %s",
- (unsigned)link->ifindex, strerror(-r));
+ log_warning("Could not set address on interface %ju: %s",
+ link->ifindex, strerror(-r));
link_enter_failed(link);
}
r = sd_rtnl_message_get_errno(m);
if (r < 0) {
- log_warning("Could not bring up interface %u: %s",
- (unsigned)link->ifindex, strerror(-r));
+ log_warning("Could not bring up interface %ju: %s",
+ link->ifindex, strerror(-r));
return link_enter_failed(link);
}