From: Quentin Young Date: Fri, 8 Feb 2019 19:52:24 +0000 (+0000) Subject: vrrpd: don't restart when changing priority X-Git-Tag: base_7.2~330^2~97 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=205eb006c61e803b3fb3c6daed7b7326badb144b;p=matthieu%2Ffrr.git vrrpd: don't restart when changing priority Both master and backup should be able to react to priority changes without requiring a restart. Signed-off-by: Quentin Young --- diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c index 01044b580f..6cfbd7c090 100644 --- a/vrrpd/vrrp.c +++ b/vrrpd/vrrp.c @@ -125,9 +125,6 @@ static bool vrrp_is_owner(struct interface *ifp, struct ipaddr *addr) void vrrp_set_priority(struct vrrp_vrouter *vr, uint8_t priority) { - if (vr->priority == priority) - return; - vr->priority = priority; vr->v4->priority = priority; vr->v6->priority = priority; diff --git a/vrrpd/vrrp_vty.c b/vrrpd/vrrp_vty.c index c73e5cb556..c32e5c2c8c 100644 --- a/vrrpd/vrrp_vty.c +++ b/vrrpd/vrrp_vty.c @@ -106,40 +106,12 @@ DEFPY(vrrp_priority, VTY_DECLVAR_CONTEXT(interface, ifp); struct vrrp_vrouter *vr; - struct vrrp_router *r; - bool nr[2] = { false, false }; - int ret = CMD_SUCCESS; uint8_t newprio = no ? VRRP_DEFAULT_PRIORITY : priority; VROUTER_GET_VTY(vty, ifp, vrid, vr); - r = vr->v4; - for (int i = 0; i < 2; i++) { - nr[i] = r->is_active && r->fsm.state != VRRP_STATE_INITIALIZE - && vr->priority != newprio; - if (nr[i]) { - vty_out(vty, - "%% WARNING: Restarting %s Virtual Router %ld to update priority\n", - family2str(r->family), vrid); - (void)vrrp_event(r, VRRP_EVENT_SHUTDOWN); - } - r = vr->v6; - } - vrrp_set_priority(vr, newprio); - r = vr->v4; - for (int i = 0; i < 2; i++) { - if (nr[i]) { - ret = vrrp_event(r, VRRP_EVENT_STARTUP); - if (ret < 0) - vty_out(vty, - "%% Failed to start Virtual Router %ld (%s)\n", - vrid, family2str(r->family)); - } - r = vr->v6; - } - return CMD_SUCCESS; }