summaryrefslogtreecommitdiffstats
path: root/vrrpd
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2019-04-18 22:03:35 +0200
committerQuentin Young <qlyoung@cumulusnetworks.com>2019-05-17 02:27:08 +0200
commit2fff50ec018fb6ea64329399b103be7f4359f021 (patch)
tree0169145e9a0102fc1cecd63caef1e5a22e906c10 /vrrpd
parentdoc: add vrrpd(8) (diff)
downloadfrr-2fff50ec018fb6ea64329399b103be7f4359f021.tar.xz
frr-2fff50ec018fb6ea64329399b103be7f4359f021.zip
vrrpd, lib: style fixes
Fixup: * Blank lines after declarations * Trailing whitespace * Braces and parentheses Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'vrrpd')
-rw-r--r--vrrpd/vrrp.c57
-rw-r--r--vrrpd/vrrp.h2
-rw-r--r--vrrpd/vrrp_debug.c2
-rw-r--r--vrrpd/vrrp_main.c2
-rw-r--r--vrrpd/vrrp_ndisc.c6
-rw-r--r--vrrpd/vrrp_packet.c12
-rw-r--r--vrrpd/vrrp_vty.c14
-rw-r--r--vrrpd/vrrp_zebra.c2
8 files changed, 72 insertions, 25 deletions
diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c
index 47f5c59d1..d24f918b1 100644
--- a/vrrpd/vrrp.c
+++ b/vrrpd/vrrp.c
@@ -100,6 +100,7 @@ static void vrrp_recalculate_timers(struct vrrp_router *r)
uint16_t mdiadv = r->vr->version == 3 ? r->master_adver_interval
: r->vr->advertisement_interval;
uint16_t skm = (r->vr->version == 3) ? r->master_adver_interval : 100;
+
r->skew_time = ((256 - r->vr->priority) * skm) / 256;
r->master_down_interval = 3 * mdiadv;
r->master_down_interval += r->skew_time;
@@ -167,6 +168,7 @@ static bool vrrp_ifp_has_vrrp_mac(struct interface *ifp)
{
struct ethaddr vmac4;
struct ethaddr vmac6;
+
vrrp_mac_set(&vmac4, 0, 0x00);
vrrp_mac_set(&vmac6, 1, 0x00);
@@ -293,7 +295,8 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
#endif
/* Must have at least one VIP configured */
start = start && r->addrs->count > 0;
- whynot = (!start && !whynot) ? "No Virtual IP address configured" : NULL;
+ whynot =
+ (!start && !whynot) ? "No Virtual IP address configured" : NULL;
if (start)
vrrp_event(r, VRRP_EVENT_STARTUP);
else if (whynot)
@@ -322,14 +325,18 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
start = start && CHECK_FLAG(r->mvl_ifp->flags, IFF_UP);
/* Macvlan interface must have a link local */
start = start && connected_get_linklocal(r->mvl_ifp);
- whynot = (!start && !whynot) ? "No link local address configured" : NULL;
+ whynot =
+ (!start && !whynot) ? "No link local address configured" : NULL;
/* Macvlan interface must have a v6 IP besides the link local */
start = start && (r->mvl_ifp->connected->count >= 2);
- whynot = (!start && !whynot) ? "No Virtual IP configured on macvlan device" : NULL;
+ whynot = (!start && !whynot)
+ ? "No Virtual IP configured on macvlan device"
+ : NULL;
#endif
/* Must have at least one VIP configured */
start = start && r->addrs->count > 0;
- whynot = (!start && !whynot) ? "No Virtual IP address configured" : NULL;
+ whynot =
+ (!start && !whynot) ? "No Virtual IP address configured" : NULL;
if (start)
vrrp_event(r, VRRP_EVENT_STARTUP);
else if (whynot)
@@ -381,6 +388,7 @@ int vrrp_add_ip(struct vrrp_router *r, struct ipaddr *ip)
if (!vrrp_is_owner(r->vr->ifp, ip) && r->is_owner) {
char ipbuf[INET6_ADDRSTRLEN];
+
inet_ntop(r->family, &ip->ip, ipbuf, sizeof(ipbuf));
zlog_err(
VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM
@@ -411,6 +419,7 @@ int vrrp_add_ip(struct vrrp_router *r, struct ipaddr *ip)
int vrrp_add_ipv4(struct vrrp_vrouter *vr, struct in_addr v4)
{
struct ipaddr ip;
+
ip.ipa_type = IPADDR_V4;
ip.ipaddr_v4 = v4;
return vrrp_add_ip(vr->v4, &ip);
@@ -421,6 +430,7 @@ int vrrp_add_ipv6(struct vrrp_vrouter *vr, struct in6_addr v6)
assert(vr->version != 2);
struct ipaddr ip;
+
ip.ipa_type = IPADDR_V6;
ip.ipaddr_v6 = v6;
return vrrp_add_ip(vr->v6, &ip);
@@ -454,6 +464,7 @@ int vrrp_del_ip(struct vrrp_router *r, struct ipaddr *ip)
int vrrp_del_ipv6(struct vrrp_vrouter *vr, struct in6_addr v6)
{
struct ipaddr ip;
+
ip.ipa_type = IPADDR_V6;
ip.ipaddr_v6 = v6;
return vrrp_del_ip(vr->v6, &ip);
@@ -462,6 +473,7 @@ int vrrp_del_ipv6(struct vrrp_vrouter *vr, struct in6_addr v6)
int vrrp_del_ipv4(struct vrrp_vrouter *vr, struct in_addr v4)
{
struct ipaddr ip;
+
ip.ipa_type = IPADDR_V4;
ip.ipaddr_v4 = v4;
return vrrp_del_ip(vr->v4, &ip);
@@ -473,6 +485,7 @@ int vrrp_del_ipv4(struct vrrp_vrouter *vr, struct in_addr v4)
static void vrrp_router_addr_list_del_cb(void *val)
{
struct ipaddr *ip = val;
+
XFREE(MTYPE_VRRP_IP, ip);
}
@@ -490,6 +503,7 @@ static bool vrrp_attach_interface(struct vrrp_router *r)
{
/* Search for existing interface with computed MAC address */
struct interface **ifps;
+
size_t ifps_cnt = if_lookup_by_hwaddr(
r->vmac.octet, sizeof(r->vmac.octet), &ifps, VRF_DEFAULT);
@@ -502,6 +516,7 @@ static bool vrrp_attach_interface(struct vrrp_router *r)
*/
unsigned int candidates = 0;
struct interface *selection = NULL;
+
for (unsigned int i = 0; i < ifps_cnt; i++) {
if (ifps[i]->link_ifindex != r->vr->ifp->ifindex)
ifps[i] = NULL;
@@ -515,6 +530,7 @@ static bool vrrp_attach_interface(struct vrrp_router *r)
XFREE(MTYPE_TMP, ifps);
char ethstr[ETHER_ADDR_STRLEN];
+
prefix_mac2str(&r->vmac, ethstr, sizeof(ethstr));
assert(!!selection == !!candidates);
@@ -563,12 +579,10 @@ static void vrrp_router_destroy(struct vrrp_router *r)
if (r->is_active)
vrrp_event(r, VRRP_EVENT_SHUTDOWN);
- if (r->sock_rx >= 0) {
+ if (r->sock_rx >= 0)
close(r->sock_rx);
- }
- if (r->sock_tx >= 0) {
+ if (r->sock_tx >= 0)
close(r->sock_tx);
- }
/* FIXME: also delete list elements */
list_delete(&r->addrs);
@@ -617,6 +631,7 @@ void vrrp_vrouter_destroy(struct vrrp_vrouter *vr)
struct vrrp_vrouter *vrrp_lookup(struct interface *ifp, uint8_t vrid)
{
struct vrrp_vrouter vr;
+
vr.vrid = vrid;
vr.ifp = ifp;
@@ -657,6 +672,7 @@ 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) {
if (r->family == AF_INET6
@@ -674,6 +690,7 @@ static int vrrp_bind_to_primary_connected(struct vrrp_router *r)
}
union sockunion su;
+
memset(&su, 0x00, sizeof(su));
switch (r->family) {
@@ -792,11 +809,13 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,
struct vrrp_pkt *pkt, size_t pktsize)
{
char sipstr[INET6_ADDRSTRLEN];
- ipaddr2str(src, sipstr, sizeof(sipstr));
char dipstr[INET6_ADDRSTRLEN];
+
+ ipaddr2str(src, sipstr, sizeof(sipstr));
ipaddr2str(&r->src, dipstr, sizeof(dipstr));
char dumpbuf[BUFSIZ];
+
vrrp_pkt_adver_dump(dumpbuf, sizeof(dumpbuf), pkt);
DEBUGD(&vrrp_dbg_proto,
VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM
@@ -950,6 +969,7 @@ static int vrrp_read(struct thread *thread)
struct msghdr m;
struct iovec iov;
+
iov.iov_base = r->ibuf;
iov.iov_len = sizeof(r->ibuf);
m.msg_name = &sa;
@@ -1038,6 +1058,7 @@ static int vrrp_socket(struct vrrp_router *r)
if (r->sock_rx < 0 || r->sock_tx < 0) {
const char *rxtx = r->sock_rx < 0 ? "Rx" : "Tx";
+
zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM
"Can't create VRRP %s socket",
r->vr->vrid, family2str(r->family), rxtx);
@@ -1049,6 +1070,7 @@ static int vrrp_socket(struct vrrp_router *r)
if (r->family == AF_INET) {
/* Set Tx socket to always Tx with TTL set to 255 */
int ttl = 255;
+
ret = setsockopt(r->sock_tx, IPPROTO_IP, IP_MULTICAST_TTL, &ttl,
sizeof(ttl));
if (ret < 0) {
@@ -1087,6 +1109,7 @@ static int vrrp_socket(struct vrrp_router *r)
/* Bind Rx socket to v4 multicast address */
struct sockaddr_in sa = {0};
+
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = htonl(VRRP_MCASTV4_GROUP);
if (bind(r->sock_rx, (struct sockaddr *)&sa, sizeof(sa))) {
@@ -1106,6 +1129,7 @@ static int vrrp_socket(struct vrrp_router *r)
/* Join Rx socket to VRRP IPv4 multicast group */
struct connected *c = listhead(r->vr->ifp->connected)->data;
struct in_addr v4 = c->address->u.prefix4;
+
ret = setsockopt_ipv4_multicast(r->sock_rx, IP_ADD_MEMBERSHIP,
v4, htonl(VRRP_MCASTV4_GROUP),
r->vr->ifp->ifindex);
@@ -1123,6 +1147,7 @@ static int vrrp_socket(struct vrrp_router *r)
/* Set outgoing interface for advertisements */
struct ip_mreqn mreqn = {};
+
mreqn.imr_ifindex = r->mvl_ifp->ifindex;
ret = setsockopt(r->sock_tx, IPPROTO_IP, IP_MULTICAST_IF,
(void *)&mreqn, sizeof(mreqn));
@@ -1195,6 +1220,7 @@ static int vrrp_socket(struct vrrp_router *r)
/* Bind Rx socket to v6 multicast address */
struct sockaddr_in6 sa = {0};
+
sa.sin6_family = AF_INET6;
inet_pton(AF_INET6, VRRP_MCASTV6_GROUP_STR, &sa.sin6_addr);
if (bind(r->sock_rx, (struct sockaddr *)&sa, sizeof(sa))) {
@@ -1213,6 +1239,7 @@ static int vrrp_socket(struct vrrp_router *r)
/* Join VRRP IPv6 multicast group */
struct ipv6_mreq mreq;
+
inet_pton(AF_INET6, VRRP_MCASTV6_GROUP_STR,
&mreq.ipv6mr_multiaddr);
mreq.ipv6mr_interface = r->vr->ifp->ifindex;
@@ -1271,7 +1298,7 @@ done:
/* State machine ----------------------------------------------------------- */
-DEFINE_HOOK(vrrp_change_state_hook, (struct vrrp_router * r, int to), (r, to));
+DEFINE_HOOK(vrrp_change_state_hook, (struct vrrp_router *r, int to), (r, to));
/*
* Handle any necessary actions during state change to MASTER state.
@@ -1490,6 +1517,7 @@ static int vrrp_startup(struct vrrp_router *r)
/* Create socket */
if (r->sock_rx < 0 || r->sock_tx < 0) {
int ret = vrrp_socket(r);
+
if (ret < 0 || r->sock_tx < 0 || r->sock_rx < 0)
return ret;
}
@@ -1499,8 +1527,8 @@ static int vrrp_startup(struct vrrp_router *r)
/* Configure effective priority */
struct ipaddr *primary = (struct ipaddr *)listhead(r->addrs)->data;
-
char ipbuf[INET6_ADDRSTRLEN];
+
inet_ntop(r->family, &primary->ip.addr, ipbuf, sizeof(ipbuf));
if (r->vr->priority == VRRP_PRIO_MASTER
@@ -2191,9 +2219,8 @@ void vrrp_if_address_del(struct interface *ifp)
* in this function should be protected by a check that the interface
* is up.
*/
- if (if_is_operative(ifp)) {
+ if (if_is_operative(ifp))
vrrp_autoconfig_if_address_del(ifp);
- }
}
/* Other ------------------------------------------------------------------- */
@@ -2240,6 +2267,7 @@ int vrrp_config_write_interface(struct vty *vty)
for (ALL_LIST_ELEMENTS_RO(vr->v4->addrs, ipln, ip)) {
char ipbuf[INET6_ADDRSTRLEN];
+
ipaddr2str(ip, ipbuf, sizeof(ipbuf));
vty_out(vty, " vrrp %" PRIu8 " ip %s\n", vr->vrid,
ipbuf);
@@ -2248,6 +2276,7 @@ int vrrp_config_write_interface(struct vty *vty)
for (ALL_LIST_ELEMENTS_RO(vr->v6->addrs, ipln, ip)) {
char ipbuf[INET6_ADDRSTRLEN];
+
ipaddr2str(ip, ipbuf, sizeof(ipbuf));
vty_out(vty, " vrrp %" PRIu8 " ipv6 %s\n", vr->vrid,
ipbuf);
@@ -2293,8 +2322,8 @@ int vrrp_config_write_global(struct vty *vty)
static unsigned int vrrp_hash_key(void *arg)
{
struct vrrp_vrouter *vr = arg;
-
char key[IFNAMSIZ + 64];
+
snprintf(key, sizeof(key), "%s@%" PRIu8, vr->ifp->name, vr->vrid);
return string_hash_make(key);
diff --git a/vrrpd/vrrp.h b/vrrpd/vrrp.h
index 08ef84ec1..ee2a8249a 100644
--- a/vrrpd/vrrp.h
+++ b/vrrpd/vrrp.h
@@ -464,7 +464,7 @@ extern const char *vrrp_event_names[2];
* Use this if you need to react to state changes to perform non-critical
* tasks. Critical tasks should go in the internal state change handlers.
*/
-DECLARE_HOOK(vrrp_change_state_hook, (struct vrrp_router * r, int to), (r, to));
+DECLARE_HOOK(vrrp_change_state_hook, (struct vrrp_router *r, int to), (r, to));
/*
* Trigger a VRRP event on a given Virtual Router..
diff --git a/vrrpd/vrrp_debug.c b/vrrpd/vrrp_debug.c
index b841bca78..09d5e780c 100644
--- a/vrrpd/vrrp_debug.c
+++ b/vrrpd/vrrp_debug.c
@@ -35,7 +35,7 @@ struct debug vrrp_dbg_sock = {0, "VRRP sockets"};
struct debug vrrp_dbg_zebra = {0, "VRRP Zebra events"};
struct debug *vrrp_debugs[] = {
- &vrrp_dbg_arp,
+ &vrrp_dbg_arp,
&vrrp_dbg_auto,
&vrrp_dbg_ndisc,
&vrrp_dbg_pkt,
diff --git a/vrrpd/vrrp_main.c b/vrrpd/vrrp_main.c
index 8e2b6249f..d6a43be8e 100644
--- a/vrrpd/vrrp_main.c
+++ b/vrrpd/vrrp_main.c
@@ -57,7 +57,7 @@ struct zebra_privs_t vrrp_privs = {
.cap_num_p = array_size(_caps_p),
.cap_num_i = 0};
-struct option longopts[] = {{0}};
+struct option longopts[] = {};
/* Master of threads. */
struct thread_master *master;
diff --git a/vrrpd/vrrp_ndisc.c b/vrrpd/vrrp_ndisc.c
index a9b15a1d1..8a439e97c 100644
--- a/vrrpd/vrrp_ndisc.c
+++ b/vrrpd/vrrp_ndisc.c
@@ -4,7 +4,7 @@
* Quentin Young
*
* Portions:
- * Copyright (C) 2001-2017 Alexandre Cassen
+ * Copyright (C) 2001-2017 Alexandre Cassen
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -134,6 +134,7 @@ static int vrrp_ndisc_una_build(struct interface *ifp, struct ipaddr *ip,
uint32_t len = sizeof(struct nd_neighbor_advert)
+ sizeof(struct nd_opt_hdr) + ETH_ALEN;
struct ipv6_ph ph = {};
+
ph.src = ip6h->ip6_src;
ph.dst = ip6h->ip6_dst;
ph.ulpl = htonl(len);
@@ -149,8 +150,8 @@ int vrrp_ndisc_una_send(struct vrrp_router *r, struct ipaddr *ip)
int ret = 0;
struct interface *ifp = r->mvl_ifp;
-
uint8_t buf[VRRP_NDISC_SIZE];
+
ret = vrrp_ndisc_una_build(ifp, ip, buf, sizeof(buf));
if (ret == -1)
@@ -167,6 +168,7 @@ int vrrp_ndisc_una_send(struct vrrp_router *r, struct ipaddr *ip)
sll.sll_ifindex = (int)ifp->ifindex;
char ipbuf[INET6_ADDRSTRLEN];
+
ipaddr2str(ip, ipbuf, sizeof(ipbuf));
DEBUGD(&vrrp_dbg_ndisc,
diff --git a/vrrpd/vrrp_packet.c b/vrrpd/vrrp_packet.c
index fcbea8f69..c3f2afba4 100644
--- a/vrrpd/vrrp_packet.c
+++ b/vrrpd/vrrp_packet.c
@@ -76,10 +76,12 @@ static uint16_t vrrp_pkt_checksum(struct vrrp_pkt *pkt, size_t pktsize,
bool v6 = (src->ipa_type == IPADDR_V6);
uint16_t chksum_pre = pkt->hdr.chksum;
+
pkt->hdr.chksum = 0;
if (v6) {
struct ipv6_ph ph = {};
+
ph.src = src->ipaddr_v6;
inet_pton(AF_INET6, VRRP_MCASTV6_GROUP_STR, &ph.dst);
ph.ulpl = htons(pktsize);
@@ -87,6 +89,7 @@ static uint16_t vrrp_pkt_checksum(struct vrrp_pkt *pkt, size_t pktsize,
chksum = in_cksum_with_ph6(&ph, pkt, pktsize);
} else if (!v6 && ((pkt->hdr.vertype >> 4) == 3)) {
struct ipv4_ph ph = {};
+
ph.src = src->ipaddr_v4;
inet_pton(AF_INET, VRRP_MCASTV4_GROUP_STR, &ph.dst);
ph.proto = 112;
@@ -121,6 +124,7 @@ ssize_t vrrp_pkt_adver_build(struct vrrp_pkt **pkt, struct ipaddr *src,
assert(!(version == 2 && v6));
size_t pktsize = VRRP_PKT_SIZE(v6 ? AF_INET6 : AF_INET, version, numip);
+
*pkt = XCALLOC(MTYPE_VRRP_PKT, pktsize);
(*pkt)->hdr.vertype |= version << 4;
@@ -229,10 +233,12 @@ ssize_t vrrp_pkt_parse_datagram(int family, int version, struct msghdr *m,
/* Extract source address */
struct sockaddr_in *sa = m->msg_name;
+
src->ipa_type = IPADDR_V4;
src->ipaddr_v4 = sa->sin_addr;
} else if (family == AF_INET6) {
struct cmsghdr *c;
+
for (c = CMSG_FIRSTHDR(m); c != NULL; CMSG_NXTHDR(m, c)) {
if (c->cmsg_level == IPPROTO_IPV6
&& c->cmsg_type == IPV6_HOPLIMIT)
@@ -242,6 +248,7 @@ ssize_t vrrp_pkt_parse_datagram(int family, int version, struct msghdr *m,
VRRP_PKT_VCHECK(!!c, "IPv6 Hop Limit not received");
uint8_t *hoplimit = CMSG_DATA(c);
+
VRRP_PKT_VCHECK(*hoplimit == 255,
"IPv6 Hop Limit is %" PRIu8 "; should be 255",
*hoplimit);
@@ -251,6 +258,7 @@ ssize_t vrrp_pkt_parse_datagram(int family, int version, struct msghdr *m,
/* Extract source address */
struct sockaddr_in6 *sa = m->msg_name;
+
src->ipa_type = IPADDR_V6;
memcpy(&src->ipaddr_v6, &sa->sin6_addr,
sizeof(struct in6_addr));
@@ -272,10 +280,12 @@ ssize_t vrrp_pkt_parse_datagram(int family, int version, struct msghdr *m,
/* Version check */
uint8_t pktver = (*pkt)->hdr.vertype >> 4;
+
VRRP_PKT_VCHECK(pktver == version, "Bad version %u", pktver);
/* Checksum check */
uint16_t chksum = vrrp_pkt_checksum(*pkt, pktsize, src);
+
VRRP_PKT_VCHECK((*pkt)->hdr.chksum == chksum,
"Bad VRRP checksum %" PRIx16 "; should be %" PRIx16 "",
(*pkt)->hdr.chksum, chksum);
@@ -286,6 +296,7 @@ ssize_t vrrp_pkt_parse_datagram(int family, int version, struct msghdr *m,
/* Exact size check */
size_t ves = VRRP_PKT_SIZE(family, pktver, (*pkt)->hdr.naddr);
+
VRRP_PKT_VCHECK(pktsize == ves, "Packet has incorrect # addresses%s",
pktver == 2 ? " or missing auth fields" : "");
@@ -298,6 +309,7 @@ ssize_t vrrp_pkt_parse_datagram(int family, int version, struct msghdr *m,
/* Addresses check */
char vbuf[INET6_ADDRSTRLEN];
uint8_t *p = (uint8_t *)(*pkt)->addrs;
+
for (uint8_t i = 0; i < (*pkt)->hdr.naddr; i++) {
VRRP_PKT_VCHECK(inet_ntop(family, p, vbuf, sizeof(vbuf)),
"Bad IP address, #%" PRIu8, i);
diff --git a/vrrpd/vrrp_vty.c b/vrrpd/vrrp_vty.c
index 01cc5b651..0cb33bffe 100644
--- a/vrrpd/vrrp_vty.c
+++ b/vrrpd/vrrp_vty.c
@@ -52,7 +52,7 @@
(unsigned int)_vrid); \
return CMD_WARNING_CONFIG_FAILED; \
} \
- } while (0);
+ } while (0)
/* clang-format off */
@@ -177,19 +177,20 @@ DEFPY(vrrp_ip,
bool activated = false;
bool failed = false;
int ret = CMD_SUCCESS;
+ int oldstate;
VROUTER_GET_VTY(vty, ifp, vrid, vr);
bool will_activate = (vr->v4->fsm.state == VRRP_STATE_INITIALIZE);
if (no) {
- int oldstate = vr->v4->fsm.state;
+ oldstate = vr->v4->fsm.state;
failed = vrrp_del_ipv4(vr, ip);
vrrp_check_start(vr);
deactivated = (vr->v4->fsm.state == VRRP_STATE_INITIALIZE
&& oldstate != VRRP_STATE_INITIALIZE);
} else {
- int oldstate = vr->v4->fsm.state;
+ oldstate = vr->v4->fsm.state;
failed = vrrp_add_ipv4(vr, ip);
vrrp_check_start(vr);
activated = (vr->v4->fsm.state != VRRP_STATE_INITIALIZE
@@ -230,6 +231,7 @@ DEFPY(vrrp_ip6,
bool activated = false;
bool failed = false;
int ret = CMD_SUCCESS;
+ int oldstate;
VROUTER_GET_VTY(vty, ifp, vrid, vr);
@@ -242,13 +244,13 @@ DEFPY(vrrp_ip6,
bool will_activate = (vr->v6->fsm.state == VRRP_STATE_INITIALIZE);
if (no) {
- int oldstate = vr->v6->fsm.state;
+ oldstate = vr->v6->fsm.state;
failed = vrrp_del_ipv6(vr, ipv6);
vrrp_check_start(vr);
deactivated = (vr->v6->fsm.state == VRRP_STATE_INITIALIZE
&& oldstate != VRRP_STATE_INITIALIZE);
} else {
- int oldstate = vr->v6->fsm.state;
+ oldstate = vr->v6->fsm.state;
failed = vrrp_add_ipv6(vr, ipv6);
vrrp_check_start(vr);
activated = (vr->v6->fsm.state != VRRP_STATE_INITIALIZE
@@ -535,6 +537,7 @@ static void vrrp_show(struct vty *vty, struct vrrp_vrouter *vr)
ttable_add_row(tt, "%s|%u", "IPv4 Addresses", vr->v4->addrs->count);
char fill[35];
+
memset(fill, '.', sizeof(fill));
fill[sizeof(fill) - 1] = 0x00;
if (vr->v4->addrs->count) {
@@ -556,6 +559,7 @@ static void vrrp_show(struct vty *vty, struct vrrp_vrouter *vr)
}
char *table = ttable_dump(tt, "\n");
+
vty_out(vty, "\n%s\n", table);
XFREE(MTYPE_TMP, table);
ttable_del(tt);
diff --git a/vrrpd/vrrp_zebra.c b/vrrpd/vrrp_zebra.c
index 223d61001..8d5a6453e 100644
--- a/vrrpd/vrrp_zebra.c
+++ b/vrrpd/vrrp_zebra.c
@@ -32,7 +32,7 @@
#define VRRP_LOGPFX "[ZEBRA] "
-static struct zclient *zclient = NULL;
+static struct zclient *zclient;
static void vrrp_zebra_debug_if_state(struct interface *ifp, vrf_id_t vrf_id,
const char *func)