summaryrefslogtreecommitdiff
path: root/src/network/netdev/netdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/netdev/netdev.c')
-rw-r--r--src/network/netdev/netdev.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
index 7853e197f1..9b5d3c0df3 100644
--- a/src/network/netdev/netdev.c
+++ b/src/network/netdev/netdev.c
@@ -757,9 +757,10 @@ int netdev_load_one(Manager *manager, const char *filename) {
NetDev *n = hashmap_get(netdev->manager->netdevs, netdev->ifname);
assert(n);
- log_netdev_warning_errno(netdev, r,
- "The setting Name=%s in %s conflicts with the one in %s, ignoring",
- netdev->ifname, netdev->filename, n->filename);
+ if (!streq(netdev->filename, n->filename))
+ log_netdev_warning_errno(netdev, r,
+ "The setting Name=%s in %s conflicts with the one in %s, ignoring",
+ netdev->ifname, netdev->filename, n->filename);
/* Clear ifname before netdev_free() is called. Otherwise, the NetDev object 'n' is
* removed from the hashmap 'manager->netdevs'. */
@@ -828,14 +829,15 @@ int netdev_load_one(Manager *manager, const char *filename) {
return 0;
}
-int netdev_load(Manager *manager) {
+int netdev_load(Manager *manager, bool reload) {
_cleanup_strv_free_ char **files = NULL;
char **f;
int r;
assert(manager);
- hashmap_clear_with_destructor(manager->netdevs, netdev_unref);
+ if (!reload)
+ hashmap_clear_with_destructor(manager->netdevs, netdev_unref);
r = conf_files_list_strv(&files, ".netdev", NULL, 0, NETWORK_DIRS);
if (r < 0)