summaryrefslogtreecommitdiffstats
path: root/ripngd/ripng_peer.c
diff options
context:
space:
mode:
Diffstat (limited to 'ripngd/ripng_peer.c')
-rw-r--r--ripngd/ripng_peer.c234
1 files changed, 107 insertions, 127 deletions
diff --git a/ripngd/ripng_peer.c b/ripngd/ripng_peer.c
index b12e14604..38d8831f5 100644
--- a/ripngd/ripng_peer.c
+++ b/ripngd/ripng_peer.c
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU General Public License
* along with GNU Zebra; see the file COPYING. If not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
+ * 02111-1307, USA.
*/
/* RIPng support added by Vincent Jardin <vincent.jardin@6wind.com>
@@ -39,178 +39,158 @@
/* Linked list of RIPng peer. */
struct list *peer_list;
-static struct ripng_peer *
-ripng_peer_new (void)
+static struct ripng_peer *ripng_peer_new(void)
{
- return XCALLOC (MTYPE_RIPNG_PEER, sizeof (struct ripng_peer));
+ return XCALLOC(MTYPE_RIPNG_PEER, sizeof(struct ripng_peer));
}
-static void
-ripng_peer_free (struct ripng_peer *peer)
+static void ripng_peer_free(struct ripng_peer *peer)
{
- XFREE (MTYPE_RIPNG_PEER, peer);
+ XFREE(MTYPE_RIPNG_PEER, peer);
}
-struct ripng_peer *
-ripng_peer_lookup (struct in6_addr *addr)
+struct ripng_peer *ripng_peer_lookup(struct in6_addr *addr)
{
- struct ripng_peer *peer;
- struct listnode *node, *nnode;
-
- for (ALL_LIST_ELEMENTS (peer_list, node, nnode, peer))
- {
- if (IPV6_ADDR_SAME (&peer->addr, addr))
- return peer;
- }
- return NULL;
+ struct ripng_peer *peer;
+ struct listnode *node, *nnode;
+
+ for (ALL_LIST_ELEMENTS(peer_list, node, nnode, peer)) {
+ if (IPV6_ADDR_SAME(&peer->addr, addr))
+ return peer;
+ }
+ return NULL;
}
-struct ripng_peer *
-ripng_peer_lookup_next (struct in6_addr *addr)
+struct ripng_peer *ripng_peer_lookup_next(struct in6_addr *addr)
{
- struct ripng_peer *peer;
- struct listnode *node, *nnode;
-
- for (ALL_LIST_ELEMENTS (peer_list, node, nnode, peer))
- {
- if (addr6_cmp(&peer->addr, addr) > 0)
- return peer;
- }
- return NULL;
+ struct ripng_peer *peer;
+ struct listnode *node, *nnode;
+
+ for (ALL_LIST_ELEMENTS(peer_list, node, nnode, peer)) {
+ if (addr6_cmp(&peer->addr, addr) > 0)
+ return peer;
+ }
+ return NULL;
}
/* RIPng peer is timeout.
* Garbage collector.
**/
-static int
-ripng_peer_timeout (struct thread *t)
+static int ripng_peer_timeout(struct thread *t)
{
- struct ripng_peer *peer;
+ struct ripng_peer *peer;
- peer = THREAD_ARG (t);
- listnode_delete (peer_list, peer);
- ripng_peer_free (peer);
+ peer = THREAD_ARG(t);
+ listnode_delete(peer_list, peer);
+ ripng_peer_free(peer);
- return 0;
+ return 0;
}
/* Get RIPng peer. At the same time update timeout thread. */
-static struct ripng_peer *
-ripng_peer_get (struct in6_addr *addr)
+static struct ripng_peer *ripng_peer_get(struct in6_addr *addr)
{
- struct ripng_peer *peer;
-
- peer = ripng_peer_lookup (addr);
-
- if (peer)
- {
- if (peer->t_timeout)
- thread_cancel (peer->t_timeout);
- }
- else
- {
- peer = ripng_peer_new ();
- peer->addr = *addr; /* XXX */
- listnode_add_sort (peer_list, peer);
- }
-
- /* Update timeout thread. */
- peer->t_timeout = thread_add_timer (master, ripng_peer_timeout, peer,
- RIPNG_PEER_TIMER_DEFAULT);
-
- /* Last update time set. */
- time (&peer->uptime);
-
- return peer;
+ struct ripng_peer *peer;
+
+ peer = ripng_peer_lookup(addr);
+
+ if (peer) {
+ if (peer->t_timeout)
+ thread_cancel(peer->t_timeout);
+ } else {
+ peer = ripng_peer_new();
+ peer->addr = *addr; /* XXX */
+ listnode_add_sort(peer_list, peer);
+ }
+
+ /* Update timeout thread. */
+ peer->t_timeout = thread_add_timer(master, ripng_peer_timeout, peer,
+ RIPNG_PEER_TIMER_DEFAULT);
+
+ /* Last update time set. */
+ time(&peer->uptime);
+
+ return peer;
}
-void
-ripng_peer_update (struct sockaddr_in6 *from, u_char version)
+void ripng_peer_update(struct sockaddr_in6 *from, u_char version)
{
- struct ripng_peer *peer;
- peer = ripng_peer_get (&from->sin6_addr);
- peer->version = version;
+ struct ripng_peer *peer;
+ peer = ripng_peer_get(&from->sin6_addr);
+ peer->version = version;
}
-void
-ripng_peer_bad_route (struct sockaddr_in6 *from)
+void ripng_peer_bad_route(struct sockaddr_in6 *from)
{
- struct ripng_peer *peer;
- peer = ripng_peer_get (&from->sin6_addr);
- peer->recv_badroutes++;
+ struct ripng_peer *peer;
+ peer = ripng_peer_get(&from->sin6_addr);
+ peer->recv_badroutes++;
}
-void
-ripng_peer_bad_packet (struct sockaddr_in6 *from)
+void ripng_peer_bad_packet(struct sockaddr_in6 *from)
{
- struct ripng_peer *peer;
- peer = ripng_peer_get (&from->sin6_addr);
- peer->recv_badpackets++;
+ struct ripng_peer *peer;
+ peer = ripng_peer_get(&from->sin6_addr);
+ peer->recv_badpackets++;
}
/* Display peer uptime. */
-static char *
-ripng_peer_uptime (struct ripng_peer *peer, char *buf, size_t len)
+static char *ripng_peer_uptime(struct ripng_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. */
+ 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;
+ 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
-ripng_peer_display (struct vty *vty)
+void ripng_peer_display(struct vty *vty)
{
- struct ripng_peer *peer;
- struct listnode *node, *nnode;
+ struct ripng_peer *peer;
+ struct listnode *node, *nnode;
#define RIPNG_UPTIME_LEN 25
- char timebuf[RIPNG_UPTIME_LEN];
-
- for (ALL_LIST_ELEMENTS (peer_list, node, nnode, peer))
- {
- vty_out (vty, " %s %s%14s %10d %10d %10d %s%s", inet6_ntoa (peer->addr),
- VTY_NEWLINE, " ",
- peer->recv_badpackets, peer->recv_badroutes,
- ZEBRA_RIPNG_DISTANCE_DEFAULT,
- ripng_peer_uptime (peer, timebuf, RIPNG_UPTIME_LEN),
- VTY_NEWLINE);
- }
+ char timebuf[RIPNG_UPTIME_LEN];
+
+ for (ALL_LIST_ELEMENTS(peer_list, node, nnode, peer)) {
+ vty_out(vty, " %s %s%14s %10d %10d %10d %s%s",
+ inet6_ntoa(peer->addr), VTY_NEWLINE, " ",
+ peer->recv_badpackets, peer->recv_badroutes,
+ ZEBRA_RIPNG_DISTANCE_DEFAULT,
+ ripng_peer_uptime(peer, timebuf, RIPNG_UPTIME_LEN),
+ VTY_NEWLINE);
+ }
}
-static int
-ripng_peer_list_cmp (struct ripng_peer *p1, struct ripng_peer *p2)
+static int ripng_peer_list_cmp(struct ripng_peer *p1, struct ripng_peer *p2)
{
- return addr6_cmp(&p1->addr, &p2->addr) > 0;
+ return addr6_cmp(&p1->addr, &p2->addr) > 0;
}
-void
-ripng_peer_init ()
+void ripng_peer_init()
{
- peer_list = list_new ();
- peer_list->cmp = (int (*)(void *, void *)) ripng_peer_list_cmp;
+ peer_list = list_new();
+ peer_list->cmp = (int (*)(void *, void *))ripng_peer_list_cmp;
}