1From 8ce1d117a31e35d97fb955b82edf13514267eaab Mon Sep 17 00:00:00 2001 2From: Joachim Wiberg <troglobit@gmail.com> 3Date: Tue, 28 Sep 2021 11:09:47 +0200 4Subject: [PATCH] Avoid trying to delete inactive VIFs 5Organization: Westermo Network Technologies AB 6 7When probing interfaces at startup, there's a check for IFF_MULTICAST, 8if this flag is not set we try to delete its corresponding VIF/MIF. 9This is for hanlding .conf reload scenarios where an interface has had 10its MULTICAST flag dropped. 11 12However, when starting up on Linux systems, the loopback interface has 13no MULTICAST flag set. This leads to the following bogus warning: 14 15 Failed deleting VIF for iface lo: Resource temporarily unavailable 16 17This patch makes sure to check if we have a registered kernel VIF/MIF 18for an interface before attempting to delete it. 19 20Signed-off-by: Joachim Wiberg <troglobit@gmail.com> 21--- 22 src/mroute.c | 6 ++++++ 23 1 file changed, 6 insertions(+) 24 25diff --git a/src/mroute.c b/src/mroute.c 26index 291e9c4..6a80a47 100644 27--- a/src/mroute.c 28+++ b/src/mroute.c 29@@ -298,6 +298,9 @@ static int mroute4_del_vif(struct iface *iface) 30 if (iface->mrdisc) 31 rc = mrdisc_deregister(iface->vif); 32 33+ if (iface->vif == ALL_VIFS) 34+ return 0; 35+ 36 if (kern_vif_del(iface)) { 37 switch (errno) { 38 case ENOENT: 39@@ -910,6 +913,9 @@ static int mroute6_del_mif(struct iface *iface) 40 { 41 int rc = 0; 42 43+ if (iface->mif == ALL_VIFS) 44+ return 0; 45+ 46 if (kern_mif_del(iface) && errno != ENOENT) { 47 switch (errno) { 48 case ENOENT: 49-- 502.25.1 51 52