Remove usage of evil list and listnode typedefs.
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 461519f..3a0b134 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,7 @@
+2004-09-23 Hasso Tepper <hasso at quagga.net>
+
+	* *.[c|h]: list -> struct list *, listnode -> struct listnode *.
+
 2004-09-12 Paul Jakma <paul@dishone.st>
 
 	* ospf_packet.c: Fix bugzilla #107
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index 21bd673..9f3a587 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -174,7 +174,7 @@
 ospf_area_range_match_any (struct ospf *ospf, struct prefix_ipv4 *p)
 {
   struct ospf_area_range *range;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (ospf->areas); node; nextnode (node))
     if ((range = ospf_area_range_match (node->data, p)))
@@ -407,7 +407,7 @@
 ospf_abr_nssa_check_status (struct ospf *ospf)
 {
   struct ospf_area *area;
-  listnode lnode;
+  struct listnode *lnode;
     
   LIST_LOOP (ospf->areas, area, lnode)
     {
@@ -477,7 +477,7 @@
 ospf_check_abr_status (struct ospf *ospf)
 {
   struct ospf_area *area;
-  listnode node;
+  struct listnode *node;
   int bb_configured = 0;
   int bb_act_attached = 0;
   int areas_configured = 0;
@@ -774,7 +774,7 @@
 ospf_abr_nexthops_belong_to_area (struct ospf_route *or,
 				  struct ospf_area *area)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_path *path;
 
   LIST_LOOP (or->paths, path, node)
@@ -843,7 +843,7 @@
 {
   struct ospf_area_range *range;
   struct ospf_area *area, *or_area;
-  listnode node;
+  struct listnode *node;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("ospf_abr_announce_network(): Start");
@@ -950,7 +950,7 @@
      flood install as approved in Type-5 LSDB with XLATE Flag on
      later, do same for all aggregates...  At end, DISCARD all
      remaining UNAPPROVED Type-5's (Aggregate is for future ) */
-  listnode node;
+  struct listnode *node;
   struct ospf_area *area;
   struct route_node *rn;
   struct ospf_lsa *lsa;
@@ -1142,7 +1142,7 @@
 ospf_abr_announce_rtr (struct ospf *ospf,
 		       struct prefix_ipv4 *p, struct ospf_route *or)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_area *area;
 
   if (IS_DEBUG_OSPF_EVENT)
@@ -1205,7 +1205,7 @@
 
   for (rn = route_top (rt); rn; rn = route_next (rn))
     {
-      listnode node;
+      struct listnode *node;
       char flag = 0;
       struct ospf_route *best = NULL;
 
@@ -1326,7 +1326,7 @@
 void
 ospf_abr_unapprove_summaries (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_area *area;
   struct route_node *rn;
   struct ospf_lsa *lsa;
@@ -1369,7 +1369,7 @@
 void
 ospf_abr_prepare_aggregates (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct route_node *rn;
   struct ospf_area_range *range;
 
@@ -1399,7 +1399,7 @@
   struct ospf_area_range *range;
   struct route_node *rn;
   struct prefix p;
-  listnode node, n;
+  struct listnode *node, *n;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("ospf_abr_announce_aggregates(): Start");
@@ -1479,7 +1479,7 @@
 void
 ospf_abr_send_nssa_aggregates (struct ospf *ospf) /* temporarily turned off */
 {
-  listnode node; /*, n; */
+  struct listnode *node; /*, n; */
   struct ospf_area *area; /*, *ar; */
   struct route_node *rn;
   struct ospf_area_range *range;
@@ -1550,7 +1550,7 @@
 void
 ospf_abr_announce_nssa_defaults (struct ospf *ospf) /* By ABR-Translator */
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_area *area;
 
   if (! IS_OSPF_ABR (ospf))
@@ -1587,7 +1587,7 @@
 void
 ospf_abr_announce_stub_defaults (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_area *area;
   struct prefix_ipv4 p;
 
@@ -1667,7 +1667,7 @@
 void
 ospf_abr_remove_unapproved_summaries (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_area *area;
   struct route_node *rn;
   struct ospf_lsa *lsa;
@@ -1701,7 +1701,7 @@
 void
 ospf_abr_manage_discard_routes (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct route_node *rn;
   struct ospf_area *area;
   struct ospf_area_range *range;
diff --git a/ospfd/ospf_ase.c b/ospfd/ospf_ase.c
index c7b343c..43951e9 100644
--- a/ospfd/ospf_ase.c
+++ b/ospfd/ospf_ase.c
@@ -54,8 +54,8 @@
 {
   struct route_node *rn;
   struct ospf_route *or, *best = NULL;
-  listnode node;
-  list chosen;
+  struct listnode *node;
+  struct list *chosen;
 
   /* Sanity check. */
   if (rtrs == NULL)
@@ -71,7 +71,7 @@
 
   /* First try to find intra-area non-bb paths. */
   if (!CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
-    for (node = listhead ((list) rn->info); node; nextnode (node))
+    for (node = listhead ((struct list *) rn->info); node; nextnode (node))
       if ((or = getdata (node)) != NULL)
 	if (or->cost < OSPF_LS_INFINITY)
 	  if (!OSPF_IS_AREA_ID_BACKBONE (or->u.std.area_id) &&
@@ -121,12 +121,12 @@
  
   if (rn)
     {
-      listnode node;
+      struct listnode *node;
       struct ospf_route *or;
 
       route_unlock_node (rn);
 
-      for (node = listhead ((list) rn->info); node; nextnode (node))
+      for (node = listhead ((struct list *) rn->info); node; nextnode (node))
 	if ((or = getdata (node)) != NULL)
 	  if (IPV4_ADDR_SAME (&or->u.std.area_id, &area->area_id))
 	    return or;
@@ -138,7 +138,7 @@
 void
 ospf_ase_complete_direct_routes (struct ospf_route *ro, struct in_addr nexthop)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_path *op;
 
   for (node = listhead (ro->paths); node; nextnode (node))
@@ -150,7 +150,7 @@
 int
 ospf_ase_forward_address_check (struct ospf *ospf, struct in_addr fwd_addr)
 {
-  listnode ifn;
+  struct listnode *ifn;
   struct ospf_interface *oi;
 
   for (ifn = listhead (ospf->oiflist); ifn; nextnode (ifn))
@@ -530,8 +530,8 @@
   struct ospf_route *or;
   struct ospf_path *op;
   struct ospf_path *newop;
-  listnode n1;
-  listnode n2;
+  struct listnode *n1;
+  struct listnode *n2;
 
   if (! rt || ! prefix)
     return 0;
@@ -611,7 +611,7 @@
   struct ospf *ospf;
   struct ospf_lsa *lsa;
   struct route_node *rn;
-  listnode node;
+  struct listnode *node;
   struct ospf_area *area;
 
   ospf = THREAD_ARG (t);
@@ -680,7 +680,7 @@
 {
   struct route_node *rn;
   struct prefix_ipv4 p;
-  list lst;
+  struct list *lst;
   struct as_external_lsa *al;
 
   al = (struct as_external_lsa *) lsa->data;
@@ -704,7 +704,7 @@
 {
   struct route_node *rn;
   struct prefix_ipv4 p;
-  list lst;
+  struct list *lst;
   struct as_external_lsa *al;
 
   al = (struct as_external_lsa *) lsa->data;
@@ -734,8 +734,8 @@
 {
   struct route_node *rn;
   struct ospf_lsa *lsa;
-  list lst;
-  listnode node;
+  struct list *lst;
+  struct listnode *node;
   
   for (rn = route_top (rt); rn; rn = route_next (rn))
     if ((lst = rn->info) != NULL)
@@ -752,8 +752,8 @@
 void
 ospf_ase_incremental_update (struct ospf *ospf, struct ospf_lsa *lsa)
 {
-  list lsas;
-  listnode node;
+  struct list *lsas;
+  struct listnode *node;
   struct route_node *rn, *rn2;
   struct prefix_ipv4 p;
   struct route_table *tmp_old;
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c
index b706279..c1d2131 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -116,7 +116,7 @@
 {
   struct ospf_interface *oi;
   struct external_info *ei;
-  listnode node;
+  struct listnode *node;
   
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("LSA[Type%d:%s]: Process self-originated LSA seq 0x%x",
@@ -569,7 +569,7 @@
 ospf_flood_through_area (struct ospf_area *area,
 			 struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
 {
-  listnode node;
+  struct listnode *node;
   int lsa_ack_flag = 0;
 
   /* All other types are specific to a single area (Area A).  The
@@ -608,7 +608,7 @@
 ospf_flood_through_as (struct ospf *ospf, struct ospf_neighbor *inbr,
 		       struct ospf_lsa *lsa)
 {
-  listnode node;
+  struct listnode *node;
   int lsa_ack_flag;
 
   lsa_ack_flag = 0;
@@ -632,7 +632,7 @@
     {
       int continue_flag = 0;
       struct ospf_area *area = getdata (node);
-      listnode if_node;
+      struct listnode *if_node;
 
       switch (area->external_routing)
 	{
@@ -965,7 +965,7 @@
 ospf_ls_retransmit_delete_nbr_area (struct ospf_area *area,
 				    struct ospf_lsa *lsa)
 {
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (area->oiflist); node; nextnode (node))
     ospf_ls_retransmit_delete_nbr_if (getdata (node), lsa);
@@ -974,7 +974,7 @@
 void
 ospf_ls_retransmit_delete_nbr_as (struct ospf *ospf, struct ospf_lsa *lsa)
 {
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (ospf->oiflist); node; nextnode (node))
     ospf_ls_retransmit_delete_nbr_if (getdata (node), lsa);
diff --git a/ospfd/ospf_ia.c b/ospfd/ospf_ia.c
index bea2657..ff47f4f 100644
--- a/ospfd/ospf_ia.c
+++ b/ospfd/ospf_ia.c
@@ -55,14 +55,14 @@
 {
   struct route_node *rn;
   struct ospf_route *or;
-  listnode node;
+  struct listnode *node;
 
   if ((rn = route_node_lookup (rtrs, (struct prefix *) abr)) == NULL)
     return NULL;
 
   route_unlock_node (rn);
 
-  for (node = listhead ((list) rn->info); node; nextnode (node))
+  for (node = listhead ((struct list *) rn->info); node; nextnode (node))
     if ((or = getdata (node)) != NULL)
       if (IPV4_ADDR_SAME (&or->u.std.area_id, &area->area_id) && (or->u.std.flags & ROUTER_LSA_BORDER))
 	return or;
@@ -611,7 +611,7 @@
 
   if (IS_OSPF_ABR (ospf))
     {
-      listnode node; 
+      struct listnode *node; 
       struct ospf_area *area;
 
       switch (ospf->abr_type)
@@ -622,7 +622,7 @@
 
           if ((area = ospf->backbone))
             {
-              listnode node;
+              struct listnode *node;
 
 	      if (IS_DEBUG_OSPF_EVENT)
 		{
@@ -707,7 +707,7 @@
     }
   else 
     {
-      listnode node;
+      struct listnode *node;
 
       if (IS_DEBUG_OSPF_EVENT)
 	zlog_info ("ospf_ia_routing():not ABR, considering all areas");
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index f7e200c..277d508 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -239,7 +239,7 @@
 ospf_if_cleanup (struct ospf_interface *oi)
 {
   struct route_node *rn;
-  listnode node;
+  struct listnode *node;
   struct ospf_neighbor *nbr;
 
   /* oi->nbrs and oi->nbr_nbma should be deletete on InterafceDown event */
@@ -343,7 +343,7 @@
 struct ospf_interface *
 ospf_if_is_configured (struct ospf *ospf, struct in_addr *address)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_interface *oi;
   struct prefix *addr;
   
@@ -371,7 +371,7 @@
 struct ospf_interface *
 ospf_if_exists (struct ospf_interface *oic)
 { 
-  listnode node;
+  struct listnode *node;
   struct ospf *ospf;
   struct ospf_interface *oi;
 
@@ -389,7 +389,7 @@
 ospf_if_lookup_by_local_addr (struct ospf *ospf,
 			      struct interface *ifp, struct in_addr address)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_interface *oi;
   
   for (node = listhead (ospf->oiflist); node; nextnode (node))
@@ -408,7 +408,7 @@
 struct ospf_interface *
 ospf_if_lookup_by_prefix (struct ospf *ospf, struct prefix_ipv4 *p)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_interface *oi;
   struct prefix ptmp;
   
@@ -437,7 +437,7 @@
 struct ospf_interface *
 ospf_if_lookup_recv_if (struct ospf *ospf, struct in_addr src)
 {
-  listnode node;
+  struct listnode *node;
   struct prefix_ipv4 addr;
   struct ospf_interface *oi, *match;
 
@@ -854,7 +854,7 @@
 ospf_vl_lookup (struct ospf_area *area, struct in_addr vl_peer)
 {
   struct ospf_vl_data *vl_data;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (area->ospf->vlinks); node; nextnode (node))
     if ((vl_data = getdata (node)) != NULL)
@@ -909,7 +909,7 @@
 {
   int changed = 0;
   struct ospf_interface *voi;
-  listnode node;
+  struct listnode *node;
   struct vertex_nexthop *nh;
   int i;
   struct router_lsa *rl;
@@ -994,7 +994,7 @@
                   struct vertex *v)
 {
   struct ospf *ospf = area->ospf;
-  listnode node;
+  struct listnode *node;
   struct ospf_vl_data *vl_data;
   struct ospf_interface *oi;
 
@@ -1053,7 +1053,7 @@
 void
 ospf_vl_unapprove (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_vl_data *vl_data;
 
   for (node = listhead (ospf->vlinks); node; nextnode (node))
@@ -1064,7 +1064,7 @@
 void
 ospf_vl_shut_unapproved (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_vl_data *vl_data;
 
   for (node = listhead (ospf->vlinks); node; nextnode (node))
@@ -1089,7 +1089,7 @@
 int
 ospf_vls_in_area (struct ospf_area *area)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_vl_data *vl_data;
   int c = 0;
 
@@ -1114,15 +1114,15 @@
 }
 
 void
-ospf_crypt_key_add (list crypt, struct crypt_key *ck)
+ospf_crypt_key_add (struct list *crypt, struct crypt_key *ck)
 {
   listnode_add (crypt, ck);
 }
 
 struct crypt_key *
-ospf_crypt_key_lookup (list auth_crypt, u_char key_id)
+ospf_crypt_key_lookup (struct list *auth_crypt, u_char key_id)
 {
-  listnode node;
+  struct listnode *node;
   struct crypt_key *ck;
 
   for (node = listhead (auth_crypt); node; nextnode (node))
@@ -1136,9 +1136,9 @@
 }
 
 int
-ospf_crypt_key_delete (list auth_crypt, u_char key_id)
+ospf_crypt_key_delete (struct list *auth_crypt, u_char key_id)
 {
-  listnode node;
+  struct listnode *node;
   struct crypt_key *ck;
 
   for (node = listhead (auth_crypt); node; nextnode (node))
diff --git a/ospfd/ospf_interface.h b/ospfd/ospf_interface.h
index 6f54618..cdab122 100644
--- a/ospfd/ospf_interface.h
+++ b/ospfd/ospf_interface.h
@@ -58,7 +58,7 @@
   u_char auth_simple[OSPF_AUTH_SIMPLE_SIZE + 1];       /* Simple password. */
   u_char auth_simple__config:1;
   
-  DECLARE_IF_PARAM (list, auth_crypt);                 /* List of Auth cryptographic data. */
+  DECLARE_IF_PARAM (struct list *, auth_crypt);    /* List of Auth cryptographic data. */
   DECLARE_IF_PARAM (int, auth_type);               /* OSPF authentication type */
 };
 
@@ -141,7 +141,7 @@
 #define PRIORITY(I)		((I)->nbr_self->priority)
 
   /* List of configured NBMA neighbor. */
-  list nbr_nbma;
+  struct list *nbr_nbma;
 
   /* self-originated LSAs. */
   struct ospf_lsa *network_lsa_self;	/* network-LSA. */
@@ -151,11 +151,11 @@
 
   struct route_table *ls_upd_queue;
 
-  list ls_ack;				/* Link State Acknowledgment list. */
+  struct list *ls_ack;			/* Link State Acknowledgment list. */
   
   struct
   {
-    list ls_ack;
+    struct list *ls_ack;
     struct in_addr dst;
   } ls_ack_direct;
 
@@ -242,9 +242,9 @@
 int ospf_full_virtual_nbrs (struct ospf_area *);
 int ospf_vls_in_area (struct ospf_area *);
 
-struct crypt_key *ospf_crypt_key_lookup (list, u_char);
+struct crypt_key *ospf_crypt_key_lookup (struct list *, u_char);
 struct crypt_key *ospf_crypt_key_new ();
-void ospf_crypt_key_add (list, struct crypt_key *);
-int ospf_crypt_key_delete (list, u_char);
+void ospf_crypt_key_add (struct list *, struct crypt_key *);
+int ospf_crypt_key_delete (struct list *, u_char);
 
 #endif /* _ZEBRA_OSPF_INTERFACE_H */
diff --git a/ospfd/ospf_ism.c b/ospfd/ospf_ism.c
index 5f4d546..7fa8b46 100644
--- a/ospfd/ospf_ism.c
+++ b/ospfd/ospf_ism.c
@@ -46,9 +46,9 @@
 
 /* elect DR and BDR. Refer to RFC2319 section 9.4 */
 struct ospf_neighbor *
-ospf_dr_election_sub (list routers)
+ospf_dr_election_sub (struct list *routers)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_neighbor *nbr, *max = NULL;
 
   /* Choose highest router priority.
@@ -73,10 +73,10 @@
 }
 
 struct ospf_neighbor *
-ospf_elect_dr (struct ospf_interface *oi, list el_list)
+ospf_elect_dr (struct ospf_interface *oi, struct list *el_list)
 {
-  list dr_list;
-  listnode node;
+  struct list *dr_list;
+  struct listnode *node;
   struct ospf_neighbor *nbr, *dr = NULL, *bdr = NULL;
 
   dr_list = list_new ();
@@ -116,10 +116,10 @@
 }
 
 struct ospf_neighbor *
-ospf_elect_bdr (struct ospf_interface *oi, list el_list)
+ospf_elect_bdr (struct ospf_interface *oi, struct list *el_list)
 {
-  list bdr_list, no_dr_list;
-  listnode node;
+  struct list *bdr_list, *no_dr_list;
+  struct listnode *node;
   struct ospf_neighbor *nbr, *bdr = NULL;
 
   bdr_list = list_new ();
@@ -174,7 +174,7 @@
 }
 
 void
-ospf_dr_eligible_routers (struct route_table *nbrs, list el_list)
+ospf_dr_eligible_routers (struct route_table *nbrs, struct list *el_list)
 {
   struct route_node *rn;
   struct ospf_neighbor *nbr;
@@ -213,7 +213,7 @@
 {
   struct in_addr old_dr, old_bdr;
   int old_state, new_state;
-  list el_list;
+  struct list *el_list;
   struct ospf_neighbor *dr, *bdr;
 
   /* backup current values. */
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 60c7aad..34d71b6 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -364,7 +364,7 @@
 dump_lsa_key (struct ospf_lsa *lsa)
 {
   static char buf[] = {
-    "Type255,id(255.255.255.255),ar(255.255.255.255)",
+    "Type255,id(255.255.255.255),ar(255.255.255.255)"
   };
   struct lsa_header *lsah;
 
@@ -655,7 +655,7 @@
 int
 router_lsa_link_set (struct stream *s, struct ospf_area *area)
 {
-  listnode node;
+  struct listnode *node;
   int links = 0;
 
   for (node = listhead (area->oiflist); node; node = nextnode (node))
@@ -890,7 +890,7 @@
 ospf_router_lsa_update_timer (struct thread *thread)
 {
   struct ospf *ospf = THREAD_ARG (thread);
-  listnode node;
+  struct listnode *node;
 
   if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
     zlog_info ("Timer[router-LSA Update]: (timer expire)");
@@ -1396,7 +1396,7 @@
 {
   struct in_addr fwd;
   struct prefix nh;
-  listnode n1;
+  struct listnode *n1;
 
   fwd.s_addr = 0;
 
@@ -1444,7 +1444,7 @@
 {
   struct in_addr fwd;
   struct in_addr best_default;
-  listnode n1;
+  struct listnode *n1;
 
   fwd.s_addr = 0;
   best_default.s_addr = 0;
@@ -1618,7 +1618,7 @@
 {
   struct ospf_lsa *new;
   struct as_external_lsa *extlsa;
-  listnode node;
+  struct listnode *node;
 
   /* LSA may be a Type-5 originated via translation of a Type-7 LSA
    * which originated from an NSSA area. In which case it should not be 
@@ -1863,7 +1863,7 @@
       /* find the type-7 from which supplied type-5 was translated,
        * ie find first type-7 with same LSA Id.
        */
-      listnode ln;
+      struct listnode *ln;
       struct route_node *rn;
       struct ospf_lsa *lsa;
       struct ospf_area *area;
@@ -2749,7 +2749,7 @@
 int
 ospf_check_nbr_status (struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (ospf->oiflist); node; node = nextnode (node))
     {
@@ -2805,8 +2805,8 @@
 ospf_maxage_lsa_remover (struct thread *thread)
 {
   struct ospf *ospf = THREAD_ARG (thread);
-  listnode node;
-  listnode next;
+  struct listnode *node;
+  struct listnode *next;
   int reschedule = 0;
 
   ospf->t_maxage = NULL;
@@ -2871,7 +2871,7 @@
 int
 ospf_lsa_maxage_exist (struct ospf *ospf, struct ospf_lsa *new)
 {
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (ospf->maxage_lsa); node; nextnode (node))
     if (((struct ospf_lsa *) node->data) == new)
@@ -2883,7 +2883,7 @@
 void
 ospf_lsa_maxage_delete (struct ospf *ospf, struct ospf_lsa *lsa)
 {
-  listnode n;
+  struct listnode *n;
 
   if ((n = listnode_lookup (ospf->maxage_lsa, lsa)))
     {
@@ -2965,7 +2965,7 @@
   struct ospf *ospf = THREAD_ARG (thread);
   struct route_node *rn;
   struct ospf_lsa *lsa;
-  listnode node;
+  struct listnode *node;
 
   ospf->t_maxage_walker = NULL;
 
@@ -3292,7 +3292,7 @@
 void
 ospf_flush_self_originated_lsas_now (struct ospf *ospf)
 {
-  listnode n1, n2;
+  struct listnode *n1, *n2;
   struct ospf_area *area;
   struct ospf_interface *oi;
   struct ospf_lsa *lsa;
@@ -3379,7 +3379,7 @@
 int 
 ospf_lsa_is_self_originated (struct ospf *ospf, struct ospf_lsa *lsa)
 {
-  listnode node;
+  struct listnode *node;
 
   /* This LSA is already checked. */
   if (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF_CHECKED))
@@ -3646,7 +3646,7 @@
   assert (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF));
   if (lsa->refresh_list >= 0)
     {
-      list refresh_list = ospf->lsa_refresh_queue.qs[lsa->refresh_list];
+      struct list *refresh_list = ospf->lsa_refresh_queue.qs[lsa->refresh_list];
       listnode_delete (refresh_list, lsa);
       if (!listcount (refresh_list))
 	{
@@ -3661,11 +3661,11 @@
 int
 ospf_lsa_refresh_walker (struct thread *t)
 {
-  list refresh_list;
-  listnode node;
+  struct list *refresh_list;
+  struct listnode *node;
   struct ospf *ospf = THREAD_ARG (t);
   int i;
-  list lsa_to_refresh = list_new ();
+  struct list *lsa_to_refresh = list_new ();
 
   if (IS_DEBUG_OSPF (lsa, LSA_REFRESH))
     zlog_info ("LSA[Refresh]:ospf_lsa_refresh_walker(): start");
@@ -3697,7 +3697,7 @@
 	{
 	  for (node = listhead (refresh_list); node;)
 	    {
-	      listnode next;
+	      struct listnode *next;
 	      struct ospf_lsa *lsa = getdata (node);
 	      next = node->next;
 	      
diff --git a/ospfd/ospf_neighbor.c b/ospfd/ospf_neighbor.c
index 6f2d4a0..511b292 100644
--- a/ospfd/ospf_neighbor.c
+++ b/ospfd/ospf_neighbor.c
@@ -294,7 +294,7 @@
 void
 ospf_renegotiate_optional_capabilities (struct ospf *top)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_interface *oi;
   struct route_table *nbrs;
   struct route_node *rn;
@@ -353,7 +353,7 @@
   if (oi->type == OSPF_IFTYPE_NBMA)
     {
       struct ospf_nbr_nbma *nbr_nbma;
-      listnode node;
+      struct listnode *node;
 
       for (node = listhead (oi->nbr_nbma); node; nextnode (node))
         {
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index a41627f..c4ecb79 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -48,7 +48,7 @@
 #include "ospfd/ospf_flood.h"
 #include "ospfd/ospf_dump.h"
 
-static void ospf_ls_ack_send_list (struct ospf_interface *, list,
+static void ospf_ls_ack_send_list (struct ospf_interface *, struct list *,
 				   struct in_addr);
 
 /* Packet Type String. */
@@ -418,7 +418,7 @@
   /* Send Link State Update. */
   if (ospf_ls_retransmit_count (nbr) > 0)
     {
-      list update;
+      struct list *update;
       struct ospf_lsdb *lsdb;
       int i;
       struct timeval now;
@@ -520,7 +520,7 @@
   u_char type;
   int ret;
   int flags = 0;
-  listnode node;
+  struct listnode *node;
   static u_int16_t ipid = 0;
   u_int16_t maxdatasize, offset;
 #define OSPF_WRITE_IPHL_SHIFT 2
@@ -1328,7 +1328,7 @@
   struct in_addr ls_id;
   struct in_addr adv_router;
   struct ospf_lsa *find;
-  list ls_upd;
+  struct list *ls_upd;
   int length;
 
   /* Increment statistics. */
@@ -1417,7 +1417,7 @@
 
 /* Get the list of LSAs from Link State Update packet.
    And process some validation -- RFC2328 Section 13. (1)-(2). */
-static list
+static struct list *
 ospf_ls_upd_list_lsa (struct ospf_neighbor *nbr, struct stream *s,
                       struct ospf_interface *oi, size_t size)
 {
@@ -1425,7 +1425,7 @@
   u_int32_t length;
   struct lsa_header *lsah;
   struct ospf_lsa *lsa;
-  list lsas;
+  struct list *lsas;
 
   lsas = list_new ();
 
@@ -1536,9 +1536,9 @@
 
 /* Cleanup Update list. */
 void
-ospf_upd_list_clean (list lsas)
+ospf_upd_list_clean (struct list *lsas)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_lsa *lsa;
 
   for (node = listhead (lsas); node; nextnode (node))
@@ -1554,11 +1554,11 @@
 	     struct stream *s, struct ospf_interface *oi, u_int16_t size)
 {
   struct ospf_neighbor *nbr;
-  list lsas;
+  struct list *lsas;
 #ifdef HAVE_OPAQUE_LSA
-  list mylsa_acks, mylsa_upds;
+  struct list *mylsa_acks, *mylsa_upds;
 #endif /* HAVE_OPAQUE_LSA */
-  listnode node, next;
+  struct listnode *node, *next;
   struct ospf_lsa *lsa = NULL;
   /* unsigned long ls_req_found = 0; */
 
@@ -1750,7 +1750,7 @@
 
       if(lsa->data->type == OSPF_NETWORK_LSA)
       {
-        listnode oi_node;
+        struct listnode *oi_node;
         int Flag = 0;
 
         for(oi_node = listhead(oi->ospf->oiflist); oi_node; oi_node = nextnode(oi_node))
@@ -2070,7 +2070,7 @@
   struct ospf_interface *rcv_oi;
   struct ospf_vl_data *vl_data;
   struct ospf_area *vl_area;
-  listnode node;
+  struct listnode *node;
 
   if (IN_MULTICAST (ntohl (iph->ip_dst.s_addr)) ||
       !OSPF_IS_AREA_BACKBONE (ospfh))
@@ -2786,10 +2786,10 @@
 }
 
 int
-ospf_make_ls_upd (struct ospf_interface *oi, list update, struct stream *s)
+ospf_make_ls_upd (struct ospf_interface *oi, struct list *update, struct stream *s)
 {
   struct ospf_lsa *lsa;
-  listnode node;
+  struct listnode *node;
   u_int16_t length = OSPF_LS_UPD_MIN_SIZE;
   unsigned long delta = stream_get_putp (s);
   unsigned long pp;
@@ -2848,10 +2848,10 @@
 }
 
 int
-ospf_make_ls_ack (struct ospf_interface *oi, list ack, struct stream *s)
+ospf_make_ls_ack (struct ospf_interface *oi, struct list *ack, struct stream *s)
 {
-  list rm_list;
-  listnode node;
+  struct list *rm_list;
+  struct listnode *node;
   u_int16_t length = OSPF_LS_ACK_MIN_SIZE;
   unsigned long delta = stream_get_putp(s) + 24;
   struct ospf_lsa *lsa;
@@ -3169,7 +3169,7 @@
 ospf_ls_upd_send_lsa (struct ospf_neighbor *nbr, struct ospf_lsa *lsa,
 		      int flag)
 {
-  list update;
+  struct list *update;
 
   update = list_new ();
 
@@ -3242,7 +3242,7 @@
 }
 
 static void
-ospf_ls_upd_queue_send (struct ospf_interface *oi, list update,
+ospf_ls_upd_queue_send (struct ospf_interface *oi, struct list *update,
 			struct in_addr addr)
 {
   struct ospf_packet *op;
@@ -3329,12 +3329,12 @@
 }
 
 void
-ospf_ls_upd_send (struct ospf_neighbor *nbr, list update, int flag)
+ospf_ls_upd_send (struct ospf_neighbor *nbr, struct list *update, int flag)
 {
   struct ospf_interface *oi;
   struct prefix_ipv4 p;
   struct route_node *rn;
-  listnode n;
+  struct listnode *n;
   
   oi = nbr->oi;
 
@@ -3378,7 +3378,8 @@
 }
 
 static void
-ospf_ls_ack_send_list (struct ospf_interface *oi, list ack, struct in_addr dst)
+ospf_ls_ack_send_list (struct ospf_interface *oi, struct list *ack,
+		       struct in_addr dst)
 {
   struct ospf_packet *op;
   u_int16_t length = OSPF_HEADER_SIZE;
diff --git a/ospfd/ospf_packet.h b/ospfd/ospf_packet.h
index a439aa3..48f4e13 100644
--- a/ospfd/ospf_packet.h
+++ b/ospfd/ospf_packet.h
@@ -153,7 +153,7 @@
 void ospf_db_desc_resend (struct ospf_neighbor *);
 void ospf_ls_req_send (struct ospf_neighbor *);
 void ospf_ls_upd_send_lsa (struct ospf_neighbor *, struct ospf_lsa *, int);
-void ospf_ls_upd_send (struct ospf_neighbor *, list, int);
+void ospf_ls_upd_send (struct ospf_neighbor *, struct list *, int);
 void ospf_ls_ack_send (struct ospf_neighbor *, struct ospf_lsa *);
 void ospf_ls_ack_send_delayed (struct ospf_interface *);
 void ospf_ls_retransmit (struct ospf_interface *, struct ospf_lsa *);
diff --git a/ospfd/ospf_route.c b/ospfd/ospf_route.c
index 9f3efb1..9280767 100644
--- a/ospfd/ospf_route.c
+++ b/ospfd/ospf_route.c
@@ -136,8 +136,8 @@
   struct ospf_route *or;
   struct ospf_path *op;
   struct ospf_path *newop;
-  listnode n1;
-  listnode n2;
+  struct listnode *n1;
+  struct listnode *n2;
 
   if (! rt || ! prefix)
     return 0;
@@ -279,7 +279,7 @@
   struct prefix_ipv4 p;
   struct ospf_path *path;
   struct vertex_nexthop *nexthop;
-  listnode nnode;
+  struct listnode *nnode;
 
   p.family = AF_INET;
   p.prefix = v->id;
@@ -656,7 +656,7 @@
   struct ospf_route *or;
   char buf1[BUFSIZ];
   char buf2[BUFSIZ];
-  listnode pnode;
+  struct listnode *pnode;
   struct ospf_path *path;
 
 #if 0
@@ -698,7 +698,7 @@
 ospf_terminate ()
 {
   struct ospf *ospf;
-  listnode node;
+  struct listnode *node;
 
   LIST_LOOP (om->ospf, ospf, node)
     {
@@ -786,7 +786,7 @@
 ospf_path_exist (struct list *plist, struct in_addr nexthop,
 		 struct ospf_interface *oi)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_path *path;
 
   for (node = listhead (plist); node; nextnode (node))
@@ -803,7 +803,7 @@
 ospf_route_copy_nexthops_from_vertex (struct ospf_route *to,
 				      struct vertex *v)
 {
-  listnode nnode;
+  struct listnode *nnode;
   struct ospf_path *path;
   struct vertex_nexthop *nexthop;
 
@@ -827,9 +827,9 @@
 }
 
 struct ospf_path *
-ospf_path_lookup (list plist, struct ospf_path *path)
+ospf_path_lookup (struct list *plist, struct ospf_path *path)
 {
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (plist); node; nextnode (node))
     {
@@ -844,9 +844,9 @@
 }
 
 void
-ospf_route_copy_nexthops (struct ospf_route *to, list from)
+ospf_route_copy_nexthops (struct ospf_route *to, struct list *from)
 {
-  listnode node;
+  struct listnode *node;
 
   assert (to->paths);
 
@@ -857,7 +857,7 @@
 }
 
 void
-ospf_route_subst_nexthops (struct ospf_route *to, list from)
+ospf_route_subst_nexthops (struct ospf_route *to, struct list *from)
 {
 
   list_delete_all_node (to->paths);
@@ -931,8 +931,8 @@
 {
   struct route_node *rn, *next;
   struct ospf_route *or;
-  listnode node, nnext;
-  list paths;
+  struct listnode *node, *nnext;
+  struct list *paths;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("Pruning unreachable routers");
diff --git a/ospfd/ospf_route.h b/ospfd/ospf_route.h
index 802aac6..8aee559 100644
--- a/ospfd/ospf_route.h
+++ b/ospfd/ospf_route.h
@@ -108,7 +108,7 @@
   u_char path_type;
 
   /* List of Paths. */
-  list paths;
+  struct list *paths;
 
   /* Link State Cost. */
   u_int32_t cost;		/* i.e. metric. */
@@ -123,7 +123,7 @@
 
 struct ospf_path *ospf_path_new ();
 void ospf_path_free (struct ospf_path *);
-struct ospf_path *ospf_path_lookup (list, struct ospf_path *);
+struct ospf_path *ospf_path_lookup (struct list *, struct ospf_path *);
 struct ospf_route *ospf_route_new ();
 void ospf_route_free (struct ospf_route *);
 void ospf_route_delete (struct route_table *);
@@ -142,7 +142,7 @@
  		          struct vertex *, struct ospf_area *);
 
 int ospf_route_cmp (struct ospf *, struct ospf_route *, struct ospf_route *);
-void ospf_route_copy_nexthops (struct ospf_route *, list);
+void ospf_route_copy_nexthops (struct ospf_route *, struct list *);
 void ospf_route_copy_nexthops_from_vertex (struct ospf_route *,
 					   struct vertex * );
 
@@ -151,7 +151,7 @@
 void ospf_route_add (struct route_table *, struct prefix_ipv4 *,
 		     struct ospf_route *, struct ospf_route *);
 
-void ospf_route_subst_nexthops (struct ospf_route *, list);
+void ospf_route_subst_nexthops (struct ospf_route *, struct list *);
 void ospf_prune_unreachable_networks (struct route_table *);
 void ospf_prune_unreachable_routers (struct route_table *);
 int ospf_add_discard_route (struct route_table *, struct ospf_area *, 
diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c
index 5288531..0fd39fa 100644
--- a/ospfd/ospf_spf.c
+++ b/ospfd/ospf_spf.c
@@ -101,7 +101,7 @@
 void
 ospf_vertex_free (struct vertex *v)
 {
-  listnode node;
+  struct listnode *node;
 
   list_delete (v->child);
 
@@ -131,7 +131,7 @@
 
   if (print_nexthops)
     {
-      listnode nnode;
+      struct listnode *nnode;
       for (nnode = listhead (v->nexthop); nnode; nextnode (nnode))
         {
 	  char buf1[BUFSIZ];
@@ -154,7 +154,7 @@
 
   if (print_children)
     {
-      listnode cnode;
+      struct listnode *cnode;
       for (cnode = listhead (v->child); cnode; nextnode (cnode))
         {
           struct vertex *cv = getdata (cnode);
@@ -170,7 +170,7 @@
 ospf_vertex_add_parent (struct vertex *v)
 {
   struct vertex_nexthop *nh;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (v->nexthop); node; nextnode (node))
     {
@@ -225,10 +225,10 @@
 /* Find the vertex specified by the given id and LSA type
  * in vlist (the candidate list).
  */
-listnode
-ospf_vertex_lookup (list vlist, struct in_addr id, int type)
+struct listnode *
+ospf_vertex_lookup (struct list *vlist, struct in_addr id, int type)
 {
-  listnode node;
+  struct listnode *node;
   struct vertex *v;
 
   for (node = listhead (vlist); node; nextnode (node))
@@ -310,10 +310,10 @@
  * If it's not unique, free the nexthop entry.
  */
 void
-ospf_nexthop_add_unique (struct vertex_nexthop *new, list nexthop)
+ospf_nexthop_add_unique (struct vertex_nexthop *new, struct list *nexthop)
 {
   struct vertex_nexthop *nh;
-  listnode node;
+  struct listnode *node;
   int match;
 
   match = 0;
@@ -343,7 +343,7 @@
 
 /* Merge entries in list b into list a. */
 void
-ospf_nexthop_merge (list a, list b)
+ospf_nexthop_merge (struct list *a, struct list *b)
 {
   struct listnode *n;
 
@@ -460,7 +460,7 @@
 ospf_nexthop_calculation (struct ospf_area *area,
                           struct vertex *v, struct vertex *w)
 {
-  listnode node;
+  struct listnode *node;
   struct vertex_nexthop *nh, *x;
   struct ospf_interface *oi = NULL;
   struct router_lsa_link *l = NULL;
@@ -647,9 +647,9 @@
 
 /* Add a vertex to the SPF candidate list. */
 void
-ospf_install_candidate (list candidate, struct vertex *w)
+ospf_install_candidate (struct list *candidate, struct vertex *w)
 {
-  listnode node;
+  struct listnode *node;
   struct vertex *cw;
 
   ospf_vertex_dump("ospf_install_candidate(): add to candidate list", w, 1, 1);
@@ -694,7 +694,8 @@
  */
 void
 ospf_spf_next (struct vertex *v, struct ospf_area *area,
-               list candidate, struct route_table *rv, struct route_table *nv)
+               struct list *candidate, struct route_table *rv,
+	       struct route_table *nv)
 {
   struct ospf_lsa *w_lsa = NULL;
   struct vertex *w, *cw;
@@ -702,7 +703,7 @@
   u_char *lim;
   struct router_lsa_link *l = NULL;
   struct in_addr *r;
-  listnode node;
+  struct listnode *node;
   int type = 0;
 
   /* If this is a router-LSA, and bit V of the router-LSA (see Section
@@ -923,8 +924,8 @@
 void
 ospf_spf_dump (struct vertex *v, int i)
 {
-  listnode cnode;
-  listnode nnode;
+  struct listnode *cnode;
+  struct listnode *nnode;
   struct vertex_nexthop *nexthop;
 
   if (v->type == OSPF_VERTEX_ROUTER)
@@ -961,7 +962,7 @@
 ospf_spf_process_stubs (struct ospf_area *area, struct vertex *v,
                         struct route_table *rt)
 {
-  listnode cnode;
+  struct listnode *cnode;
   struct vertex *child;
 
   if (IS_DEBUG_OSPF_EVENT)
@@ -1017,8 +1018,8 @@
 ospf_rtrs_free (struct route_table *rtrs)
 {
   struct route_node *rn;
-  list or_list;
-  listnode node;
+  struct list *or_list;
+  struct listnode *node;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("Route: Router Routing Table free");
@@ -1042,9 +1043,9 @@
 ospf_rtrs_print (struct route_table *rtrs)
 {
   struct route_node *rn;
-  list or_list;
-  listnode ln;
-  listnode pnode;
+  struct list *or_list;
+  struct listnode *ln;
+  struct listnode *pnode;
   struct ospf_route *or;
   struct ospf_path *path;
   char buf1[BUFSIZ];
@@ -1105,8 +1106,8 @@
 ospf_spf_calculate (struct ospf_area *area, struct route_table *new_table,
                     struct route_table *new_rtrs)
 {
-  list candidate;
-  listnode node;
+  struct list *candidate;
+  struct listnode *node;
   struct vertex *v;
   struct route_table *rv;
   struct route_table *nv;
@@ -1221,7 +1222,7 @@
 {
   struct ospf *ospf = THREAD_ARG (thread);
   struct route_table *new_table, *new_rtrs;
-  listnode node;
+  struct listnode *node;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("SPF: Timer (SPF calculation expire)");
diff --git a/ospfd/ospf_spf.h b/ospfd/ospf_spf.h
index 928d98b..25b1d79 100644
--- a/ospfd/ospf_spf.h
+++ b/ospfd/ospf_spf.h
@@ -38,8 +38,8 @@
   struct lsa_header *lsa; /* Router or Network LSA */
   u_int32_t distance;	/* from root to this vertex */
   int backlink;        /* link index of back-link */
-  list child;		/* list of vertex: children in SPF tree*/
-  list nexthop;		/* list of vertex_nexthop from root to this vertex */
+  struct list *child;		/* list of vertex: children in SPF tree*/
+  struct list *nexthop;		/* list of vertex_nexthop from root to this vertex */
 };
 
 /* A nexthop taken on the root node to get to this (parent) vertex */
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 461574a..6b0dabb 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -2279,7 +2279,7 @@
 {
   struct ospf *ospf = vty->index;
   u_int32_t refbw;
-  listnode node;
+  struct listnode *node;
 
   refbw = strtol (argv[0], NULL, 10);
   if (refbw < 1 || refbw > 4294967)
@@ -2310,7 +2310,7 @@
        "Use reference bandwidth method to assign OSPF cost\n")
 {
   struct ospf *ospf = vty->index;
-  listnode node;
+  struct listnode *node;
 
   if (ospf->ref_bandwidth == OSPF_DEFAULT_REF_BANDWIDTH)
     return CMD_SUCCESS;
@@ -2438,7 +2438,7 @@
        IP_STR
        "OSPF information\n")
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_area * area;
   struct ospf *ospf;
 
@@ -2625,7 +2625,7 @@
 {
   struct interface *ifp;
   struct ospf *ospf;
-  listnode node;
+  struct listnode *node;
 
   ospf = ospf_lookup ();
 
@@ -2687,7 +2687,7 @@
        "Neighbor list\n")
 {
   struct ospf *ospf;
-  listnode node;
+  struct listnode *node;
 
   ospf = ospf_lookup ();
   if (ospf == NULL)
@@ -2717,7 +2717,7 @@
        "include down status neighbor\n")
 {
   struct ospf *ospf = vty->index;
-  listnode node;
+  struct listnode *node;
 
   if (ospf == NULL)
     {
@@ -2733,7 +2733,7 @@
   for (node = listhead (ospf->oiflist); node; nextnode (node))
     {
       struct ospf_interface *oi = getdata (node);
-      listnode nbr_node;
+      struct listnode *nbr_node;
 
       show_ip_ospf_neighbor_sub (vty, oi);
 
@@ -2901,7 +2901,7 @@
        "Neighbor ID\n")
 {
   struct ospf *ospf;
-  listnode node;
+  struct listnode *node;
   struct ospf_neighbor *nbr;
   struct in_addr router_id;
   int ret;
@@ -2945,7 +2945,7 @@
        "detail of all neighbors\n")
 {
   struct ospf *ospf;
-  listnode node;
+  struct listnode *node;
 
   ospf = ospf_lookup ();
   if (ospf == NULL)
@@ -2981,7 +2981,7 @@
        "include down status neighbor\n")
 {
   struct ospf *ospf;
-  listnode node;
+  struct listnode *node;
 
   ospf = ospf_lookup ();
   if (ospf == NULL)
@@ -3004,7 +3004,7 @@
 
       if (oi->type == OSPF_IFTYPE_NBMA)
 	{
-	  listnode nd;
+	  struct listnode *nd;
 
 	  for (nd = listhead (oi->nbr_nbma); nd; nextnode (nd))
 	    {
@@ -3530,7 +3530,7 @@
 show_lsa_detail (struct vty *vty, struct ospf *ospf, int type,
 		 struct in_addr *id, struct in_addr *adv_router)
 {
-  listnode node;
+  struct listnode *node;
 
   switch (type)
     {
@@ -3579,7 +3579,7 @@
 show_lsa_detail_adv_router (struct vty *vty, struct ospf *ospf, int type,
 			    struct in_addr *adv_router)
 {
-  listnode node;
+  struct listnode *node;
 
   switch (type)
     {
@@ -3612,7 +3612,7 @@
 {
   struct ospf_lsa *lsa;
   struct route_node *rn;
-  listnode node;
+  struct listnode *node;
   int type;
 
   for (node = listhead (ospf->areas); node; nextnode (node))
@@ -3681,7 +3681,7 @@
 void
 show_ip_ospf_database_maxage (struct vty *vty, struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_lsa *lsa;
 
   vty_out (vty, "%s                MaxAge Link States:%s%s",
@@ -6431,7 +6431,7 @@
 {
   struct route_node *rn;
   struct ospf_route *or;
-  listnode pnode;
+  struct listnode *pnode;
   struct ospf_path *path;
 
   vty_out (vty, "============ OSPF network routing table ============%s",
@@ -6484,7 +6484,7 @@
 {
   struct route_node *rn;
   struct ospf_route *or;
-  listnode pn, nn;
+  struct listnode *pn, *nn;
   struct ospf_path *path;
 
   vty_out (vty, "============ OSPF router routing table =============%s",
@@ -6496,7 +6496,7 @@
 
 	vty_out (vty, "R    %-15s    ", inet_ntoa (rn->p.u.prefix4));
 
-	for (nn = listhead ((list) rn->info); nn; nextnode (nn))
+	for (nn = listhead ((struct list *) rn->info); nn; nextnode (nn))
 	  if ((or = getdata (nn)) != NULL)
 	    {
 	      if (flag++)
@@ -6532,7 +6532,7 @@
 {
   struct route_node *rn;
   struct ospf_route *er;
-  listnode pnode;
+  struct listnode *pnode;
   struct ospf_path *path;
 
   vty_out (vty, "============ OSPF external routing table ===========%s",
@@ -6685,7 +6685,7 @@
 int
 config_write_interface (struct vty *vty)
 {
-  listnode n1, n2;
+  struct listnode *n1, *n2;
   struct interface *ifp;
   struct crypt_key *ck;
   int write = 0;
@@ -6899,7 +6899,7 @@
 int
 config_write_ospf_area (struct vty *vty, struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   u_char buf[INET_ADDRSTRLEN];
 
   /* Area configuration print. */
@@ -7025,13 +7025,13 @@
 int
 config_write_virtual_link (struct vty *vty, struct ospf *ospf)
 {
-  listnode node;
+  struct listnode *node;
   u_char buf[INET_ADDRSTRLEN];
 
   /* Virtual-Link print */
   for (node = listhead (ospf->vlinks); node; nextnode (node))
     {
-      listnode n2;
+      struct listnode *n2;
       struct crypt_key *ck;
       struct ospf_vl_data *vl_data = getdata (node);
       struct ospf_interface *oi;
@@ -7204,7 +7204,7 @@
 ospf_config_write (struct vty *vty)
 {
   struct ospf *ospf;
-  listnode node;
+  struct listnode *node;
   int write = 0;
 
   ospf = ospf_lookup ();
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index e42373c..5520c08 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -315,7 +315,7 @@
   int psize;
   struct stream *s;
   struct ospf_path *path;
-  listnode node;
+  struct listnode *node;
 
   if (zclient->redist[ZEBRA_ROUTE_OSPF])
     {
@@ -403,7 +403,7 @@
   struct zapi_ipv4 api;
   struct ospf_path *path;
   struct in_addr *nexthop;
-  listnode node;
+  struct listnode *node;
 
   if (zclient->redist[ZEBRA_ROUTE_OSPF])
     {
@@ -980,7 +980,7 @@
   int type;
   int abr_inv = 0;
   struct ospf_area *area;
-  listnode node;
+  struct listnode *node;
 
   /* If OSPF instatnce does not exist, return right now. */
   ospf = ospf_lookup ();
@@ -1048,7 +1048,7 @@
   int type;
   int abr_inv = 0;
   struct ospf_area *area;
-  listnode node;
+  struct listnode *node;
 
   /* If OSPF instatnce does not exist, return right now. */
   ospf = ospf_lookup ();
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 04b34fb..bfde503 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -70,9 +70,9 @@
 
 /* Get Router ID from ospf interface list. */
 struct in_addr
-ospf_router_id_get (list if_list)
+ospf_router_id_get (struct list *if_list)
 {
-  listnode node;
+  struct listnode *node;
   struct in_addr router_id;
 
   memset (&router_id, 0, sizeof (struct in_addr));
@@ -101,7 +101,7 @@
 ospf_router_id_update (struct ospf *ospf)
 {
   struct in_addr router_id, router_id_old;
-  listnode node;
+  struct listnode *node;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("Router-ID[OLD:%s]: Update", inet_ntoa (ospf->router_id));
@@ -287,7 +287,7 @@
   struct route_node *rn;
   struct ospf_nbr_nbma *nbr_nbma;
   struct ospf_lsa *lsa;
-  listnode node;
+  struct listnode *node;
   int i;
 
 #ifdef HAVE_OPAQUE_LSA
@@ -578,7 +578,7 @@
 ospf_area_lookup_by_area_id (struct ospf *ospf, struct in_addr area_id)
 {
   struct ospf_area *area;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (ospf->areas); node; nextnode (node))
     {
@@ -743,7 +743,7 @@
 ospf_network_run (struct ospf *ospf, struct prefix *p, struct ospf_area *area)
 {
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
 
   /* Schedule Router ID Update. */
   if (ospf->router_id_static.s_addr == 0)
@@ -756,7 +756,7 @@
   /* Get target interface. */
   for (node = listhead (om->iflist); node; nextnode (node))
     {
-      listnode cn;
+      struct listnode *cn;
       
       if ((ifp = getdata (node)) == NULL)
 	continue;
@@ -844,14 +844,14 @@
 ospf_ls_upd_queue_empty (struct ospf_interface *oi)
 {
   struct route_node *rn;
-  listnode node;
-  list lst;
+  struct listnode *node;
+  struct list *lst;
   struct ospf_lsa *lsa;
 
   /* empty ls update queue */
   for (rn = route_top (oi->ls_upd_queue); rn;
        rn = route_next (rn))
-    if ((lst = (list) rn->info))
+    if ((lst = (struct list *) rn->info))
       {
 	for (node = listhead (lst); node; nextnode (node))
 	  if ((lsa = getdata (node)))
@@ -872,8 +872,8 @@
 ospf_if_update (struct ospf *ospf)
 {
   struct route_node *rn;
-  listnode node;
-  listnode next;
+  struct listnode *node;
+  struct listnode *next;
   struct ospf_network *network;
   struct ospf_area *area;
 
@@ -931,7 +931,7 @@
 void
 ospf_remove_vls_through_area (struct ospf *ospf, struct ospf_area *area)
 {
-  listnode node, next;
+  struct listnode *node, *next;
   struct ospf_vl_data *vl_data;
 
   for (node = listhead (ospf->vlinks); node; node = next)
@@ -955,7 +955,7 @@
 void
 ospf_area_type_set (struct ospf_area *area, int type)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf_interface *oi;
 
   if (area->external_routing == type)
@@ -1046,7 +1046,7 @@
 ospf_area_vlink_count (struct ospf *ospf, struct ospf_area *area)
 {
   struct ospf_vl_data *vl;
-  listnode node;
+  struct listnode *node;
   int count = 0;
 
   for (node = listhead (ospf->vlinks); node; nextnode (node))
@@ -1480,7 +1480,7 @@
 {
 #if 0
   struct ospf_nbr_nbma *nbr_nbma;
-  listnode node;
+  struct listnode *node;
 #endif
 
   if (ospf == NULL)
@@ -1513,7 +1513,7 @@
   struct ospf_interface *oi;
   struct prefix_ipv4 p;
   struct route_node *rn;
-  listnode node;
+  struct listnode *node;
 
   nbr_nbma = ospf_nbr_nbma_lookup (ospf, nbr_addr);
   if (nbr_nbma)
diff --git a/ospfd/ospfd.h b/ospfd/ospfd.h
index 988f438..6910d39 100644
--- a/ospfd/ospfd.h
+++ b/ospfd/ospfd.h
@@ -193,12 +193,12 @@
 #define DEFAULT_ORIGINATE_ALWAYS	2
   u_int32_t ref_bandwidth;		/* Reference Bandwidth (Kbps). */
   struct route_table *networks;         /* OSPF config networks. */
-  list vlinks;                          /* Configured Virtual-Links. */
-  list areas;                           /* OSPF areas. */
+  struct list *vlinks;                  /* Configured Virtual-Links. */
+  struct list *areas;                   /* OSPF areas. */
   struct route_table *nbr_nbma;
   struct ospf_area *backbone;           /* Pointer to the Backbone Area. */
 
-  list oiflist;                         /* ospf interfaces */
+  struct list *oiflist;                 /* ospf interfaces */
 
   /* LSDB of AS-external-LSAs. */
   struct ospf_lsdb *lsdb;
@@ -208,7 +208,7 @@
   int ase_calc;				/* ASE calculation flag. */
 
 #ifdef HAVE_OPAQUE_LSA
-  list opaque_lsa_self;			/* Type-11 Opaque-LSAs */
+  struct list *opaque_lsa_self;		/* Type-11 Opaque-LSAs */
 #endif /* HAVE_OPAQUE_LSA */
 
   /* Routing tables. */
@@ -227,7 +227,7 @@
   /* Time stamps. */
   time_t ts_spf;			/* SPF calculation time stamp. */
 
-  list maxage_lsa;                      /* List of MaxAge LSA for deletion. */
+  struct list *maxage_lsa;              /* List of MaxAge LSA for deletion. */
   int redistribute;                     /* Num of redistributed protocols. */
 
   /* Threads. */
@@ -248,7 +248,7 @@
   struct thread *t_write;
   struct thread *t_read;
   int fd;
-  list oi_write_q;
+  struct list *oi_write_q;
   
   /* Distribute lists out of other route sources. */
   struct 
@@ -284,7 +284,7 @@
   struct
   {
     u_int16_t index;
-    list qs[OSPF_LSA_REFRESHER_SLOTS];
+    struct list *qs[OSPF_LSA_REFRESHER_SLOTS];
   } lsa_refresh_queue;
   
   struct thread *t_lsa_refresher;
@@ -314,7 +314,7 @@
   struct ospf *ospf;
 
   /* Zebra interface list belonging to the area. */
-  list oiflist;
+  struct list *oiflist;
 
   /* Area ID. */
   struct in_addr area_id;
@@ -325,7 +325,7 @@
 #define OSPF_AREA_ID_FORMAT_DECIMAL         2
 
   /* Address range. */
-  list address_range;
+  struct list *address_range;
 
   /* Configured variables. */
   int external_routing;                 /* ExternalRoutingCapability. */
@@ -362,7 +362,7 @@
   /* Self-originated LSAs. */
   struct ospf_lsa *router_lsa_self;
 #ifdef HAVE_OPAQUE_LSA
-  list opaque_lsa_self;			/* Type-10 Opaque-LSAs */
+  struct list *opaque_lsa_self;		/* Type-10 Opaque-LSAs */
 #endif /* HAVE_OPAQUE_LSA */
 
   /* Area announce list. */