summaryrefslogtreecommitdiff
path: root/ospfd/ospf_opaque.c
diff options
context:
space:
mode:
authorpaul <paul>2003-04-04 02:44:16 +0000
committerpaul <paul>2003-04-04 02:44:16 +0000
commit020709f9939c542e96b12f06522ad5e33d8cf445 (patch)
tree767b3cb9a8a17913d8395c8d5ecf7485ae882b8e /ospfd/ospf_opaque.c
parentd18258304a79b459fe768e63f27efd17aa1fa78f (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.c24
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)
{