X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=eigrpd%2Feigrp_topology.c;h=0cb4e0e9f45c3d2086fd399393f287ab16ebf7d1;hb=91d227b7e3cb53ad8fdbcd9d4cff7f0a666918e3;hp=61eee99f6af67b8458e3c6c4e074fdf96c85669f;hpb=529089b58e930f7b43637a4cc1f950e62d6ba4ac;p=mirror_frr.git diff --git a/eigrpd/eigrp_topology.c b/eigrpd/eigrp_topology.c index 61eee99f6..0cb4e0e9f 100644 --- a/eigrpd/eigrp_topology.c +++ b/eigrpd/eigrp_topology.c @@ -118,16 +118,9 @@ struct eigrp_nexthop_entry *eigrp_nexthop_entry_new() * Freeing topology table list */ void eigrp_topology_free(struct route_table *table) -{ - route_table_finish(table); -} - -/* - * Deleting all topology nodes in table - */ -void eigrp_topology_cleanup(struct route_table *table) { eigrp_topology_delete_all(table); + route_table_finish(table); } /* @@ -171,7 +164,7 @@ void eigrp_nexthop_entry_add(struct eigrp_prefix_entry *node, eigrp_zebra_route_add(node->destination, l); } - list_delete_and_null(&l); + list_delete(&l); } /* @@ -181,6 +174,8 @@ void eigrp_prefix_entry_delete(struct route_table *table, struct eigrp_prefix_entry *pe) { struct eigrp *eigrp = eigrp_lookup(); + struct eigrp_nexthop_entry *ne; + struct listnode *node, *nnode; struct route_node *rn; if (!eigrp) @@ -196,9 +191,12 @@ void eigrp_prefix_entry_delete(struct route_table *table, */ listnode_delete(eigrp->topology_changes_internalIPV4, pe); - list_delete_and_null(&pe->entries); - list_delete_and_null(&pe->rij); + for (ALL_LIST_ELEMENTS(pe->entries, node, nnode, ne)) + eigrp_nexthop_entry_delete(pe, ne); + list_delete(&pe->entries); + list_delete(&pe->rij); eigrp_zebra_route_delete(pe->destination); + prefix_free(pe->destination); rn->info = NULL; route_unlock_node(rn); // Lookup above @@ -237,18 +235,6 @@ void eigrp_topology_delete_all(struct route_table *topology) } } -/* - * Return 0 if topology is not empty - * otherwise return 1 - */ -unsigned int eigrp_topology_table_isempty(struct list *topology) -{ - if (topology->count) - return 1; - else - return 0; -} - struct eigrp_prefix_entry * eigrp_topology_table_lookup_ipv4(struct route_table *table, struct prefix *address) @@ -290,7 +276,7 @@ struct list *eigrp_topology_get_successor(struct eigrp_prefix_entry *table_node) * If we have no successors return NULL */ if (!successors->count) { - list_delete_and_null(&successors); + list_delete(&successors); successors = NULL; } @@ -412,8 +398,8 @@ eigrp_topology_update_distance(struct eigrp_fsm_action_message *msg) } break; default: - flog_err(LIB_ERR_DEVELOPMENT, "%s: Please implement handler", - __PRETTY_FUNCTION__); + flog_err(EC_LIB_DEVELOPMENT, "%s: Please implement handler", + __PRETTY_FUNCTION__); break; } distance_done: @@ -495,7 +481,7 @@ void eigrp_update_routing_table(struct eigrp_prefix_entry *prefix) for (ALL_LIST_ELEMENTS_RO(successors, node, entry)) entry->flags |= EIGRP_NEXTHOP_ENTRY_INTABLE_FLAG; - list_delete_and_null(&successors); + list_delete(&successors); } else { eigrp_zebra_route_delete(prefix->destination); for (ALL_LIST_ELEMENTS_RO(prefix->entries, node, entry))