diff options
author | paul <paul> | 2005-11-20 14:54:12 +0000 |
---|---|---|
committer | paul <paul> | 2005-11-20 14:54:12 +0000 |
commit | c24d602e82d31a2fcbccb4cc3b66f8d0a79d5f22 (patch) | |
tree | 55abf96bbb7899029d542b0714e666159484dbb2 /ospfd/ospf_abr.c | |
parent | b29800a676b7c3cf00d8a4086b7783ccb7e2f29f (diff) |
2005-11-20 Paul Jakma <paul.jakma@sun.com>
* ospf_abr.c: (ospf_abr_announce_network_to_area) check
returned LSA of ospf_summary_lsa_refresh and print warning if
it failed.
(ospf_abr_announce_network_to_area) similar
(ospf_abr_announce_rtr_to_area) similar
* ospf_lsa.c: (ospf_router_lsa_new) check LSA returned is valid.
(ospf_router_lsa_originate) similar
(ospf_router_lsa_refresh, ospf_network_lsa_new) similar
(ospf_summary_lsa_new) Check ID is valid.
(ospf_summary_lsa_originate) ditto, and check returned LSA from
previous function is !NULL.
(ospf_summary_lsa_refresh) check ospf_summary_lsa_new return
is !NULL.
(ospf_summary_asbr_lsa_new) ID valid check.
(ospf_summary_asbr_lsa_originate) similar.
Diffstat (limited to 'ospfd/ospf_abr.c')
-rw-r--r-- | ospfd/ospf_abr.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c index 2d47efec..8f365da7 100644 --- a/ospfd/ospf_abr.c +++ b/ospfd/ospf_abr.c @@ -748,6 +748,19 @@ ospf_abr_announce_network_to_area (struct prefix_ipv4 *p, u_int32_t cost, "refreshing summary"); set_metric (old, cost); lsa = ospf_summary_lsa_refresh (area->ospf, old); + + if (!lsa) + { + char buf[INET_ADDRSTRLEN + 3]; /* ipv4 and /XX */ + + prefix2str ((struct prefix *) p, buf, sizeof(buf)); + zlog_warn ("%s: Could not refresh %s to %s", + __func__, + buf, + inet_ntoa (area->area_id)); + return; + } + SET_FLAG (lsa->flags, OSPF_LSA_APPROVED); /* This will flood through area. */ } @@ -760,6 +773,18 @@ ospf_abr_announce_network_to_area (struct prefix_ipv4 *p, u_int32_t cost, lsa = ospf_summary_lsa_originate ( (struct prefix_ipv4 *)p, cost, area); /* This will flood through area. */ + if (!lsa) + { + char buf[INET_ADDRSTRLEN + 3]; /* ipv4 and /XX */ + + prefix2str ((struct prefix *)p, buf, sizeof(buf)); + zlog_warn ("%s: Could not originate %s to %s", + __func__, + buf, + inet_ntoa (area->area_id)); + return; + } + SET_FLAG (lsa->flags, OSPF_LSA_APPROVED); if (IS_DEBUG_OSPF_EVENT) zlog_debug ("ospf_abr_announce_network_to_area(): " @@ -1117,10 +1142,22 @@ ospf_abr_announce_rtr_to_area (struct prefix_ipv4 *p, u_int32_t cost, } else lsa = ospf_summary_asbr_lsa_originate (p, cost, area); - + if (!lsa) + { + char buf[INET_ADDRSTRLEN + 3]; /* ipv4 and /XX */ + + prefix2str ((struct prefix *)p, buf, sizeof(buf)); + zlog_warn ("%s: Could not refresh/originate %s to %s", + __func__, + buf, + inet_ntoa (area->area_id)); + return; + } + if (IS_DEBUG_OSPF_EVENT) zlog_debug ("ospf_abr_announce_rtr_to_area(): " "flooding new version of summary"); + /* zlog_info ("ospf_abr_announce_rtr_to_area(): creating new summary"); lsa = ospf_summary_asbr_lsa (p, cost, area, old); */ |