diff options
Diffstat (limited to 'eigrpd/eigrp_topology.c')
| -rw-r--r-- | eigrpd/eigrp_topology.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/eigrpd/eigrp_topology.c b/eigrpd/eigrp_topology.c index f17be8f4b7..e59dcacb7c 100644 --- a/eigrpd/eigrp_topology.c +++ b/eigrpd/eigrp_topology.c @@ -68,7 +68,6 @@ struct eigrp_prefix_descriptor *eigrp_prefix_descriptor_new(void) new->rij = list_new(); new->entries->cmp = (int (*)(void *, void *))eigrp_route_descriptor_cmp; new->distance = new->fdistance = new->rdistance = EIGRP_MAX_METRIC; - new->destination = NULL; return new; } @@ -120,12 +119,11 @@ void eigrp_prefix_descriptor_add(struct route_table *topology, { struct route_node *rn; - rn = route_node_get(topology, pe->destination); + rn = route_node_get(topology, &pe->destination); if (rn->info) { if (IS_DEBUG_EIGRP_EVENT) - zlog_debug( - "%s: %pFX Should we have found this entry in the topo table?", - __func__, pe->destination); + zlog_debug("%s: %pFX Should we have found this entry in the topo table?", + __func__, &pe->destination); route_unlock_node(rn); } @@ -147,8 +145,7 @@ void eigrp_route_descriptor_add(struct eigrp *eigrp, listnode_add_sort(node->entries, entry); entry->prefix = node; - eigrp_zebra_route_add(eigrp, node->destination, - l, node->fdistance); + eigrp_zebra_route_add(eigrp, &node->destination, l, node->fdistance); } list_delete(&l); @@ -168,7 +165,7 @@ void eigrp_prefix_descriptor_delete(struct eigrp *eigrp, if (!eigrp) return; - rn = route_node_lookup(table, pe->destination); + rn = route_node_lookup(table, &pe->destination); if (!rn) return; @@ -182,8 +179,7 @@ void eigrp_prefix_descriptor_delete(struct eigrp *eigrp, eigrp_route_descriptor_delete(eigrp, pe, ne); list_delete(&pe->entries); list_delete(&pe->rij); - eigrp_zebra_route_delete(eigrp, pe->destination); - prefix_free(&pe->destination); + eigrp_zebra_route_delete(eigrp, &pe->destination); rn->info = NULL; route_unlock_node(rn); // Lookup above @@ -200,7 +196,7 @@ void eigrp_route_descriptor_delete(struct eigrp *eigrp, { if (listnode_lookup(node->entries, entry) != NULL) { listnode_delete(node->entries, entry); - eigrp_zebra_route_delete(eigrp, node->destination); + eigrp_zebra_route_delete(eigrp, &node->destination); XFREE(MTYPE_EIGRP_ROUTE_DESCRIPTOR, entry); } } @@ -462,14 +458,13 @@ void eigrp_update_routing_table(struct eigrp *eigrp, successors = eigrp_topology_get_successor_max(prefix, eigrp->max_paths); if (successors) { - eigrp_zebra_route_add(eigrp, prefix->destination, successors, - prefix->fdistance); + eigrp_zebra_route_add(eigrp, &prefix->destination, successors, prefix->fdistance); for (ALL_LIST_ELEMENTS_RO(successors, node, entry)) entry->flags |= EIGRP_ROUTE_DESCRIPTOR_INTABLE_FLAG; list_delete(&successors); } else { - eigrp_zebra_route_delete(eigrp, prefix->destination); + eigrp_zebra_route_delete(eigrp, &prefix->destination); for (ALL_LIST_ELEMENTS_RO(prefix->entries, node, entry)) entry->flags &= ~EIGRP_ROUTE_DESCRIPTOR_INTABLE_FLAG; } |
