From 3202f4b19247e331a87ee89d14a69bcbda16ab48 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 22 Aug 2021 20:42:51 +0200 Subject: [PATCH] Reinitialize VIFs on reload if new interfaces have been found Signed-off-by: Joachim Wiberg --- src/mroute.c | 5 +++-- src/mroute.h | 2 +- src/smcrouted.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mroute.c b/src/mroute.c index 296db813..25a0e6c4 100644 --- a/src/mroute.c +++ b/src/mroute.c @@ -995,7 +995,7 @@ void mroute_reload_beg(void) } } -void mroute_reload_end(void) +void mroute_reload_end(int do_vifs) { struct mroute *entry, *tmp; struct iface *iface; @@ -1011,7 +1011,8 @@ void mroute_reload_end(void) if (iface->unused) { mroute_del_vif(iface->ifname); iface->unused = 0; - } + } else if (do_vifs) + mroute_add_vif(iface->ifname, iface->mrdisc, iface->threshold); } } diff --git a/src/mroute.h b/src/mroute.h index 9a6d9b12..fd605393 100644 --- a/src/mroute.h +++ b/src/mroute.h @@ -116,7 +116,7 @@ int mroute_add_route (struct mroute *mroute); int mroute_del_route (struct mroute *mroute); void mroute_reload_beg (void); -void mroute_reload_end (void); +void mroute_reload_end (int do_vifs); int mroute_show (int sd, int detail); diff --git a/src/smcrouted.c b/src/smcrouted.c index 2a550a25..ad35aeae 100644 --- a/src/smcrouted.c +++ b/src/smcrouted.c @@ -93,7 +93,7 @@ void reload(void) conf_read(conf_file, do_vifs); mcgroup_reload_end(); - mroute_reload_end(); + mroute_reload_end(do_vifs); /* Acknowledge client SIGHUP/reload */ notify_ready(NULL, uid, gid);