From: Quentin Young Date: Thu, 14 Feb 2019 23:40:20 +0000 (+0000) Subject: vrrpd: only bind to link locals for v6 adverts X-Git-Tag: base_7.2~330^2~75 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=22e4b6a73dd604c65a66a634481e4929a444b6f4;p=matthieu%2Ffrr.git vrrpd: only bind to link locals for v6 adverts Was missing a check to make sure that the v6 address we select as the source IP for advertisements was a link local address Signed-off-by: Quentin Young --- diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c index bf4f0f1ec9..113e42490d 100644 --- a/vrrpd/vrrp.c +++ b/vrrpd/vrrp.c @@ -851,8 +851,13 @@ static int vrrp_bind_to_primary_connected(struct vrrp_router *r) struct listnode *ln; struct connected *c = NULL; for (ALL_LIST_ELEMENTS_RO(ifp->connected, ln, c)) - if (c->address->family == r->family) - break; + if (c->address->family == r->family) { + if (r->family == AF_INET6 + && IN6_IS_ADDR_LINKLOCAL(&c->address->u.prefix6)) + break; + else if (r->family == AF_INET) + break; + } if (c == NULL) { zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID