dcavalca / rpms / systemd

Forked from rpms/systemd 4 months ago
Clone
Blob Blame History Raw
From bd2efe9219a3791b47c2c5c2ef0fe2579ffd547d Mon Sep 17 00:00:00 2001
From: Tom Gundersen <teg@jklm.no>
Date: Thu, 4 Sep 2014 13:40:24 +0200
Subject: [PATCH] networkd: link - do not manage loopback links

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=83134.
---
 TODO                        | 3 ---
 src/network/networkd-link.c | 6 ++++++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/TODO b/TODO
index f0f2bcb12d..380fd494f2 100644
--- a/TODO
+++ b/TODO
@@ -78,9 +78,6 @@ Features:
   - ipv4ll with multiple interfaces doesn't work when both dhcp and
     ipv4ll is used. for some reasons the kernel will currently pick an
     ipv4ll source address to reach non-ipv4ll gateways.
-  - dhcp and ipv4ll should probably be skipped for "lo" devices, even
-    if the user has a catchall .network file installed, that might
-    theoretically match it.
   - the DHCP lease data (such as NTP/DNS) is still made available when
     a carrier is lost on a link. It should be removed instantly.
   - .network setting that allows overriding of the hostname to send to the dhcp server
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 1b7b1898c4..f726e2b570 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1250,6 +1250,12 @@ static int link_initialized_and_synced(sd_rtnl *rtnl, sd_rtnl_message *m,
         } else if (r < 0)
                 return r;
 
+        if (link->flags & IFF_LOOPBACK) {
+                log_debug_link(link, "matching network ignored for loopback link");
+                link_enter_unmanaged(link);
+                return 1;
+        }
+
         r = network_apply(link->manager, network, link);
         if (r < 0)
                 return r;