]> git.proxmox.com Git - mirror_frr.git/blobdiff - eigrpd/eigrp_topology.c
Merge pull request #3023 from qlyoung/ultimate-warning-reference-cards-rename
[mirror_frr.git] / eigrpd / eigrp_topology.c
index becb29a95faafb530994c6303284b98eeeaf1daf..80814d6d367da49488a6422c20f7ae94a9dca812 100644 (file)
@@ -37,6 +37,7 @@
 #include "log.h"
 #include "linklist.h"
 #include "vty.h"
+#include "lib_errors.h"
 
 #include "eigrpd/eigrp_structs.h"
 #include "eigrpd/eigrpd.h"
@@ -182,6 +183,9 @@ void eigrp_prefix_entry_delete(struct route_table *table,
        struct eigrp *eigrp = eigrp_lookup();
        struct route_node *rn;
 
+       if (!eigrp)
+               return;
+
        rn = route_node_lookup(table, pe->destination);
        if (!rn)
                return;
@@ -408,7 +412,8 @@ eigrp_topology_update_distance(struct eigrp_fsm_action_message *msg)
                }
                break;
        default:
-               zlog_err("%s: Please implement handler", __PRETTY_FUNCTION__);
+               flog_err(EC_LIB_DEVELOPMENT, "%s: Please implement handler",
+                        __PRETTY_FUNCTION__);
                break;
        }
 distance_done:
@@ -426,6 +431,9 @@ void eigrp_topology_update_all_node_flags(struct eigrp *eigrp)
        struct eigrp_prefix_entry *pe;
        struct route_node *rn;
 
+       if (!eigrp)
+               return;
+
        for (rn = route_top(eigrp->topology_table); rn; rn = route_next(rn)) {
                pe = rn->info;
 
@@ -442,6 +450,8 @@ void eigrp_topology_update_node_flags(struct eigrp_prefix_entry *dest)
        struct eigrp_nexthop_entry *entry;
        struct eigrp *eigrp = eigrp_lookup();
 
+       assert(eigrp);
+
        for (ALL_LIST_ELEMENTS_RO(dest->entries, node, entry)) {
                if (entry->reported_distance < dest->fdistance) {
                        // is feasible successor, can be successor
@@ -471,11 +481,15 @@ void eigrp_topology_update_node_flags(struct eigrp_prefix_entry *dest)
 void eigrp_update_routing_table(struct eigrp_prefix_entry *prefix)
 {
        struct eigrp *eigrp = eigrp_lookup();
-       struct list *successors =
-               eigrp_topology_get_successor_max(prefix, eigrp->max_paths);
+       struct list *successors;
        struct listnode *node;
        struct eigrp_nexthop_entry *entry;
 
+       if (!eigrp)
+               return;
+
+       successors = eigrp_topology_get_successor_max(prefix, eigrp->max_paths);
+
        if (successors) {
                eigrp_zebra_route_add(prefix->destination, successors);
                for (ALL_LIST_ELEMENTS_RO(successors, node, entry))