/* Linked list of RIP peer. */
struct list *peer_list;
-static struct rip_peer *
-rip_peer_new (void)
+static struct rip_peer *rip_peer_new(void)
{
- return XCALLOC (MTYPE_RIP_PEER, sizeof (struct rip_peer));
+ return XCALLOC(MTYPE_RIP_PEER, sizeof(struct rip_peer));
}
-static void
-rip_peer_free (struct rip_peer *peer)
+static void rip_peer_free(struct rip_peer *peer)
{
- XFREE (MTYPE_RIP_PEER, peer);
+ XFREE(MTYPE_RIP_PEER, peer);
}
-struct rip_peer *
-rip_peer_lookup (struct in_addr *addr)
+struct rip_peer *rip_peer_lookup(struct in_addr *addr)
{
- struct rip_peer *peer;
- struct listnode *node, *nnode;
-
- for (ALL_LIST_ELEMENTS (peer_list, node, nnode, peer))
- {
- if (IPV4_ADDR_SAME (&peer->addr, addr))
- return peer;
- }
- return NULL;
+ struct rip_peer *peer;
+ struct listnode *node, *nnode;
+
+ for (ALL_LIST_ELEMENTS(peer_list, node, nnode, peer)) {
+ if (IPV4_ADDR_SAME(&peer->addr, addr))
+ return peer;
+ }
+ return NULL;
}
-struct rip_peer *
-rip_peer_lookup_next (struct in_addr *addr)
+struct rip_peer *rip_peer_lookup_next(struct in_addr *addr)
{
- struct rip_peer *peer;
- struct listnode *node, *nnode;
-
- for (ALL_LIST_ELEMENTS (peer_list, node, nnode, peer))
- {
- if (htonl (peer->addr.s_addr) > htonl (addr->s_addr))
- return peer;
- }
- return NULL;
+ struct rip_peer *peer;
+ struct listnode *node, *nnode;
+
+ for (ALL_LIST_ELEMENTS(peer_list, node, nnode, peer)) {
+ if (htonl(peer->addr.s_addr) > htonl(addr->s_addr))
+ return peer;
+ }
+ return NULL;
}
/* RIP peer is timeout. */
-static int
-rip_peer_timeout (struct thread *t)
+static int rip_peer_timeout(struct thread *t)
{
- struct rip_peer *peer;
+ struct rip_peer *peer;
- peer = THREAD_ARG (t);
- listnode_delete (peer_list, peer);
- rip_peer_free (peer);
+ peer = THREAD_ARG(t);
+ listnode_delete(peer_list, peer);
+ rip_peer_free(peer);
- return 0;
+ return 0;
}
/* Get RIP peer. At the same time update timeout thread. */
-static struct rip_peer *
-rip_peer_get (struct in_addr *addr)
+static struct rip_peer *rip_peer_get(struct in_addr *addr)
{
- struct rip_peer *peer;
-
- peer = rip_peer_lookup (addr);
-
- if (peer)
- {
- if (peer->t_timeout)
- thread_cancel (peer->t_timeout);
- }
- else
- {
- peer = rip_peer_new ();
- peer->addr = *addr;
- listnode_add_sort (peer_list, peer);
- }
-
- /* Update timeout thread. */
- peer->t_timeout = NULL;
- thread_add_timer(master, rip_peer_timeout, peer, RIP_PEER_TIMER_DEFAULT,
- &peer->t_timeout);
-
- /* Last update time set. */
- time (&peer->uptime);
-
- return peer;
+ struct rip_peer *peer;
+
+ peer = rip_peer_lookup(addr);
+
+ if (peer) {
+ if (peer->t_timeout)
+ thread_cancel(peer->t_timeout);
+ } else {
+ peer = rip_peer_new();
+ peer->addr = *addr;
+ listnode_add_sort(peer_list, peer);
+ }
+
+ /* Update timeout thread. */
+ peer->t_timeout = NULL;
+ thread_add_timer(master, rip_peer_timeout, peer, RIP_PEER_TIMER_DEFAULT,
+ &peer->t_timeout);
+
+ /* Last update time set. */
+ time(&peer->uptime);
+
+ return peer;
}
-void
-rip_peer_update (struct sockaddr_in *from, u_char version)
+void rip_peer_update(struct sockaddr_in *from, u_char version)
{
- struct rip_peer *peer;
- peer = rip_peer_get (&from->sin_addr);
- peer->version = version;
+ struct rip_peer *peer;
+ peer = rip_peer_get(&from->sin_addr);
+ peer->version = version;
}
-void
-rip_peer_bad_route (struct sockaddr_in *from)
+void rip_peer_bad_route(struct sockaddr_in *from)
{
- struct rip_peer *peer;
- peer = rip_peer_get (&from->sin_addr);
- peer->recv_badroutes++;
+ struct rip_peer *peer;
+ peer = rip_peer_get(&from->sin_addr);
+ peer->recv_badroutes++;
}
-void
-rip_peer_bad_packet (struct sockaddr_in *from)
+void rip_peer_bad_packet(struct sockaddr_in *from)
{
- struct rip_peer *peer;
- peer = rip_peer_get (&from->sin_addr);
- peer->recv_badpackets++;
+ struct rip_peer *peer;
+ peer = rip_peer_get(&from->sin_addr);
+ peer->recv_badpackets++;
}
/* Display peer uptime. */
-static char *
-rip_peer_uptime (struct rip_peer *peer, char *buf, size_t len)
+static char *rip_peer_uptime(struct rip_peer *peer, char *buf, size_t len)
{
- time_t uptime;
- struct tm *tm;
-
- /* If there is no connection has been done before print `never'. */
- if (peer->uptime == 0)
- {
- snprintf (buf, len, "never ");
- return buf;
- }
-
- /* Get current time. */
- uptime = time (NULL);
- uptime -= peer->uptime;
- tm = gmtime (&uptime);
-
- /* Making formatted timer strings. */
-#define ONE_DAY_SECOND 60*60*24
-#define ONE_WEEK_SECOND 60*60*24*7
-
- if (uptime < ONE_DAY_SECOND)
- snprintf (buf, len, "%02d:%02d:%02d",
- tm->tm_hour, tm->tm_min, tm->tm_sec);
- else if (uptime < ONE_WEEK_SECOND)
- snprintf (buf, len, "%dd%02dh%02dm",
- tm->tm_yday, tm->tm_hour, tm->tm_min);
- else
- snprintf (buf, len, "%02dw%dd%02dh",
- tm->tm_yday/7, tm->tm_yday - ((tm->tm_yday/7) * 7), tm->tm_hour);
- return buf;
+ time_t uptime;
+ struct tm *tm;
+
+ /* If there is no connection has been done before print `never'. */
+ if (peer->uptime == 0) {
+ snprintf(buf, len, "never ");
+ return buf;
+ }
+
+ /* Get current time. */
+ uptime = time(NULL);
+ uptime -= peer->uptime;
+ tm = gmtime(&uptime);
+
+ if (uptime < ONE_DAY_SECOND)
+ snprintf(buf, len, "%02d:%02d:%02d", tm->tm_hour, tm->tm_min,
+ tm->tm_sec);
+ else if (uptime < ONE_WEEK_SECOND)
+ snprintf(buf, len, "%dd%02dh%02dm", tm->tm_yday, tm->tm_hour,
+ tm->tm_min);
+ else
+ snprintf(buf, len, "%02dw%dd%02dh", tm->tm_yday / 7,
+ tm->tm_yday - ((tm->tm_yday / 7) * 7), tm->tm_hour);
+ return buf;
}
-void
-rip_peer_display (struct vty *vty)
+void rip_peer_display(struct vty *vty)
{
- struct rip_peer *peer;
- struct listnode *node, *nnode;
+ struct rip_peer *peer;
+ struct listnode *node, *nnode;
#define RIP_UPTIME_LEN 25
- char timebuf[RIP_UPTIME_LEN];
-
- for (ALL_LIST_ELEMENTS (peer_list, node, nnode, peer))
- {
- vty_out (vty, " %-16s %9d %9d %9d %s%s", inet_ntoa (peer->addr),
- peer->recv_badpackets, peer->recv_badroutes,
- ZEBRA_RIP_DISTANCE_DEFAULT,
- rip_peer_uptime (peer, timebuf, RIP_UPTIME_LEN),
- VTY_NEWLINE);
- }
+ char timebuf[RIP_UPTIME_LEN];
+
+ for (ALL_LIST_ELEMENTS(peer_list, node, nnode, peer)) {
+ vty_out(vty, " %-16s %9d %9d %9d %s\n",
+ inet_ntoa(peer->addr), peer->recv_badpackets,
+ peer->recv_badroutes, ZEBRA_RIP_DISTANCE_DEFAULT,
+ rip_peer_uptime(peer, timebuf, RIP_UPTIME_LEN));
+ }
}
-static int
-rip_peer_list_cmp (struct rip_peer *p1, struct rip_peer *p2)
+static int rip_peer_list_cmp(struct rip_peer *p1, struct rip_peer *p2)
{
- return htonl (p1->addr.s_addr) > htonl (p2->addr.s_addr);
+ return htonl(p1->addr.s_addr) > htonl(p2->addr.s_addr);
}
-void
-rip_peer_init (void)
+void rip_peer_init(void)
{
- peer_list = list_new ();
- peer_list->cmp = (int (*)(void *, void *)) rip_peer_list_cmp;
+ peer_list = list_new();
+ peer_list->cmp = (int (*)(void *, void *))rip_peer_list_cmp;
}