summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/network')
-rw-r--r--src/network/networkd-link.c6
-rw-r--r--src/network/networkd-manager.c15
2 files changed, 11 insertions, 10 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index f0fb0d93e6..889efc8c2f 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -102,13 +102,11 @@ int link_add(Manager *m, struct udev_device *device) {
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")) {
diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c
index e9944973ad..11c3efe901 100644
--- a/src/network/networkd-manager.c
+++ b/src/network/networkd-manager.c
@@ -143,14 +143,17 @@ static int manager_process_link(Manager *m, struct udev_device *device) {
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;