diff options
author | paul <paul> | 2003-04-04 02:44:16 +0000 |
---|---|---|
committer | paul <paul> | 2003-04-04 02:44:16 +0000 |
commit | 020709f9939c542e96b12f06522ad5e33d8cf445 (patch) | |
tree | 767b3cb9a8a17913d8395c8d5ecf7485ae882b8e /ospfd/ospf_opaque.c | |
parent | d18258304a79b459fe768e63f27efd17aa1fa78f (diff) |
2003-04-04 Paul Jakma <paul@dishone.st>
* Sync to Zebra CVS
* Fix lib/thread.h leak
* Fix small Opaque LSA leak
* Do not configure OSPF interfaces for secondary addresses
* vtysh fixes from Hasso
* Dave Watson's missing ntohs fix
Diffstat (limited to 'ospfd/ospf_opaque.c')
-rw-r--r-- | ospfd/ospf_opaque.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/ospfd/ospf_opaque.c b/ospfd/ospf_opaque.c index b8ba5184..f1fe783c 100644 --- a/ospfd/ospf_opaque.c +++ b/ospfd/ospf_opaque.c @@ -544,7 +544,7 @@ register_opaque_info_per_type (struct ospf_opaque_functab *functab, listnode_add (new->area->opaque_lsa_self, oipt); break; case OSPF_OPAQUE_AS_LSA: - top = ospf_top; + top = ospf_lookup (); if (new->area != NULL && (top = new->area->ospf) == NULL) { free_opaque_info_per_type ((void *) oipt); @@ -652,7 +652,7 @@ lookup_opaque_info_by_type (struct ospf_lsa *lsa) zlog_warn ("Type-10 Opaque-LSA: Reference to AREA is missing?"); break; case OSPF_OPAQUE_AS_LSA: - top = ospf_top; + top = ospf_lookup (); if ((area = lsa->area) != NULL && (top = area->ospf) == NULL) { zlog_warn ("Type-11 Opaque-LSA: Reference to OSPF is missing?"); @@ -1179,7 +1179,8 @@ show_opaque_info_detail (struct vty *vty, struct ospf_lsa *lsa) /* Switch output functionality by vty address. */ if (vty != NULL) { - vty_out (vty, " Opaque-Type %u (%s)%s", opaque_type, ospf_opaque_type_name (opaque_type), VTY_NEWLINE); + vty_out (vty, " Opaque-Type %u (%s)%s", opaque_type, + ospf_opaque_type_name (opaque_type), VTY_NEWLINE); vty_out (vty, " Opaque-ID 0x%x%s", opaque_id, VTY_NEWLINE); vty_out (vty, " Opaque-Info: %u octets of data%s%s", @@ -1189,7 +1190,8 @@ show_opaque_info_detail (struct vty *vty, struct ospf_lsa *lsa) } else { - zlog_info (" Opaque-Type %u (%s)", opaque_type, ospf_opaque_type_name (opaque_type)); + zlog_info (" Opaque-Type %u (%s)", opaque_type, + ospf_opaque_type_name (opaque_type)); zlog_info (" Opaque-ID 0x%x", opaque_id); zlog_info (" Opaque-Info: %u octets of data%s", @@ -1580,7 +1582,7 @@ ospf_opaque_lsa_install (struct ospf_lsa *lsa, int rt_recalc) } break; case OSPF_OPAQUE_AS_LSA: - top = ospf_top; + top = ospf_lookup (); if (lsa->area != NULL && (top = lsa->area->ospf) == NULL) { /* Above conditions must have passed. */ @@ -1603,9 +1605,11 @@ out: void ospf_opaque_lsa_refresh (struct ospf_lsa *lsa) { - struct ospf *ospf = ospf_top; + struct ospf *ospf; struct ospf_opaque_functab *functab; + ospf = ospf_lookup (); + if ((functab = ospf_opaque_functab_lookup (lsa)) == NULL || functab->lsa_refresher == NULL) { @@ -1948,12 +1952,14 @@ extern int ospf_lsa_refresh_delay (struct ospf_lsa *); /* ospf_lsa.c */ void ospf_opaque_lsa_refresh_schedule (struct ospf_lsa *lsa0) { - struct ospf *ospf = ospf_top; + struct ospf *ospf = ospf; struct opaque_info_per_type *oipt; struct opaque_info_per_id *oipi; struct ospf_lsa *lsa; int delay; + ospf = ospf_lookup (); + if ((oipt = lookup_opaque_info_by_type (lsa0)) == NULL || (oipi = lookup_opaque_info_by_id (oipt, lsa0)) == NULL) { @@ -2025,11 +2031,13 @@ ospf_opaque_lsa_refresh_timer (struct thread *t) void ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa0) { - struct ospf *ospf = ospf_top; + struct ospf *ospf = ospf; struct opaque_info_per_type *oipt; struct opaque_info_per_id *oipi; struct ospf_lsa *lsa; + ospf = ospf_lookup (); + if ((oipt = lookup_opaque_info_by_type (lsa0)) == NULL || (oipi = lookup_opaque_info_by_id (oipt, lsa0)) == NULL) { |