diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c index 76f8dfea5d..a03c675010 100644 --- a/vrrpd/vrrp.c +++ b/vrrpd/vrrp.c @@ -88,8 +88,8 @@ static void vrrp_mac_set(struct ethaddr *mac, bool v6, uint8_t vrid) */ static void vrrp_recalculate_timers(struct vrrp_router *r) { - uint16_t skmai = (r->vr->version - 2) * r->master_adver_interval; - r->skew_time = ((256 - r->vr->priority) * skmai) / 256; + uint16_t skm = (r->vr->version == 3) ? r->master_adver_interval : 1; + r->skew_time = ((256 - r->vr->priority) * skm) / 256; r->master_down_interval = (3 * r->master_adver_interval); r->master_down_interval += r->skew_time; }