return NULL;
}
+/*
+ * Processing helper functions
+ */
+void isis_area_adj_del_addr(void *val)
+{
+ XFREE(MTYPE_ISIS_TMP, val);
+}
+
void isis_delete_adj(void *arg)
{
struct isis_adjacency *adj = arg;
/* remove from SPF trees */
spftree_area_adj_del(adj->circuit->area, adj);
- if (adj->area_addrs)
+ if (adj->area_addrs) {
+ adj->area_addrs->del = isis_area_adj_del_addr;
list_delete(adj->area_addrs);
- if (adj->ipv4_addrs)
+ }
+ if (adj->ipv4_addrs) {
+ adj->ipv4_addrs->del = isis_area_adj_del_addr;
list_delete(adj->ipv4_addrs);
- if (adj->ipv6_addrs)
+ }
+ if (adj->ipv6_addrs) {
+ adj->ipv6_addrs->del = isis_area_adj_del_addr;
list_delete(adj->ipv6_addrs);
+ }
XFREE(MTYPE_ISIS_ADJACENCY, adj);
return;
void isis_adj_build_neigh_list(struct list *adjdb, struct list *list);
void isis_adj_build_up_list(struct list *adjdb, struct list *list);
+void isis_area_adj_del_addr(void *val);
#endif /* ISIS_ADJACENCY_H */
return retval;
}
-/*
- * Processing helper functions
- */
-static void del_addr(void *val)
-{
- XFREE(MTYPE_ISIS_TMP, val);
-}
-
static void tlvs_to_adj_area_addrs(struct tlvs *tlvs,
struct isis_adjacency *adj)
{
struct area_addr *area_addr, *malloced;
if (adj->area_addrs) {
- adj->area_addrs->del = del_addr;
+ adj->area_addrs->del = isis_area_adj_del_addr;
list_delete(adj->area_addrs);
}
adj->area_addrs = list_new();
struct in_addr *ipv4_addr, *malloced;
if (adj->ipv4_addrs) {
- adj->ipv4_addrs->del = del_addr;
+ adj->ipv4_addrs->del = isis_area_adj_del_addr;
list_delete(adj->ipv4_addrs);
}
adj->ipv4_addrs = list_new();
struct in6_addr *ipv6_addr, *malloced;
if (adj->ipv6_addrs) {
- adj->ipv6_addrs->del = del_addr;
+ adj->ipv6_addrs->del = isis_area_adj_del_addr;
list_delete(adj->ipv6_addrs);
}
adj->ipv6_addrs = list_new();