ifindex = udev_device_get_ifindex(device);
link = hashmap_get(m->links, &ifindex);
if (link)
- return 0;
+ return -EEXIST;
r = link_new(m, device, &link);
- if (r < 0) {
- log_error("Could not create link: %s", strerror(-r));
+ if (r < 0)
return r;
- }
devtype = udev_device_get_devtype(device);
if (streq_ptr(devtype, "bridge")) {
link_free(link);
} else {
- log_debug("%s: link added", udev_device_get_sysname(device));
-
r = link_add(m, device);
if (r < 0) {
- log_error("Could not handle link %s: %s",
- udev_device_get_sysname(device),
- strerror(-r));
- }
+ if (r == -EEXIST)
+ log_debug("%s: link already exists, ignoring",
+ udev_device_get_sysname(device));
+ else
+ log_error("%s: could not handle link: %s",
+ udev_device_get_sysname(device),
+ strerror(-r));
+ } else
+ log_debug("%s: link added", udev_device_get_sysname(device));
}
return 0;