static void ripng_peer_free(struct ripng_peer *peer)
{
+ RIPNG_TIMER_OFF(peer->t_timeout);
XFREE(MTYPE_RIPNG_PEER, peer);
}
{
return memcmp(&p1->addr, &p2->addr, sizeof(struct in6_addr));
}
+
+void ripng_peer_list_del(void *arg)
+{
+ ripng_peer_free(arg);
+}
ripng->table = agg_table_init();
ripng->peer_list = list_new();
ripng->peer_list->cmp = (int (*)(void *, void *))ripng_peer_list_cmp;
+ ripng->peer_list->del = ripng_peer_list_del;
ripng->enable_if = vector_init(1);
ripng->enable_network = agg_table_init();
ripng->passive_interface = vector_init(1);
free(ripng->route_map[i].name);
agg_table_finish(ripng->table);
+ list_delete(&ripng->peer_list);
distribute_list_delete(&ripng->distribute_ctx);
stream_free(ripng->ibuf);
extern struct ripng_peer *ripng_peer_lookup(struct in6_addr *);
extern struct ripng_peer *ripng_peer_lookup_next(struct in6_addr *);
extern int ripng_peer_list_cmp(struct ripng_peer *p1, struct ripng_peer *p2);
+extern void ripng_peer_list_del(void *arg);
extern struct ripng_offset_list *ripng_offset_list_new(const char *ifname);
extern void ripng_offset_list_del(struct ripng_offset_list *offset);