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
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index ac1f018..c4cc07b 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -1967,7 +1967,8 @@
 }
 
 struct ospf_interface *
-ospf_associate_packet_vl (struct interface *ifp, struct ospf_interface *oi,
+ospf_associate_packet_vl (struct ospf *ospf,
+			  struct interface *ifp, struct ospf_interface *oi,
 			  struct ip *iph, struct ospf_header *ospfh)
 {
   struct ospf_interface *rcv_oi;
@@ -1981,17 +1982,17 @@
 
   if ((rcv_oi = oi) == NULL)
     {
-     if ((rcv_oi = ospf_if_lookup_by_local_addr (oi->ospf, ifp,
+     if ((rcv_oi = ospf_if_lookup_by_local_addr (ospf, ifp,
 						 iph->ip_dst)) == NULL)
        return NULL;
     }
 
-  for (node = listhead (oi->ospf->vlinks); node; nextnode (node))
+  for (node = listhead (ospf->vlinks); node; nextnode (node))
     {
       if ((vl_data = getdata (node)) == NULL)
 	continue;
       
-      vl_area = ospf_area_lookup_by_area_id (oi->ospf, vl_data->vl_area_id);
+      vl_area = ospf_area_lookup_by_area_id (ospf, vl_data->vl_area_id);
       if (!vl_area)
 	continue;
       
@@ -2242,7 +2243,7 @@
       return 0;
     }
   
-  if ((oi = ospf_associate_packet_vl (ifp, oi, iph, ospfh)) == NULL)
+  if ((oi = ospf_associate_packet_vl (ospf, ifp, oi, iph, ospfh)) == NULL)
     {
       stream_free (ibuf);
       return 0;
@@ -2778,7 +2779,7 @@
   ospf_packet_add (oi, op);
 
   /* Hook thread to write packet. */
-  OSPF_ISM_WRITE_ON ();
+  OSPF_ISM_WRITE_ON (oi->ospf);
 }
 
 void
@@ -2913,7 +2914,7 @@
 		  /* Add packet to the interface output queue. */
 		  ospf_packet_add (oi, op_dup);
 
-		  OSPF_ISM_WRITE_ON ();
+		  OSPF_ISM_WRITE_ON (oi->ospf);
 		}
 
 	      }
@@ -2931,7 +2932,7 @@
       ospf_packet_add (oi, op);
 
       /* Hook thread to write packet. */
-      OSPF_ISM_WRITE_ON ();
+      OSPF_ISM_WRITE_ON (oi->ospf);
     }
 }
 
@@ -2965,7 +2966,7 @@
   ospf_packet_add (oi, op);
 
   /* Hook thread to write packet. */
-  OSPF_ISM_WRITE_ON ();
+  OSPF_ISM_WRITE_ON (oi->ospf);
 
   /* Remove old DD packet, then copy new one and keep in neighbor structure. */
   if (nbr->last_send)
@@ -2986,7 +2987,7 @@
   ospf_packet_add (oi, ospf_packet_dup (nbr->last_send));
 
   /* Hook thread to write packet. */
-  OSPF_ISM_WRITE_ON ();
+  OSPF_ISM_WRITE_ON (oi->ospf);
 }
 
 /* Send Link State Request. */
@@ -3024,7 +3025,7 @@
   ospf_packet_add (oi, op);
 
   /* Hook thread to write packet. */
-  OSPF_ISM_WRITE_ON ();
+  OSPF_ISM_WRITE_ON (oi->ospf);
 
   /* Add Link State Request Retransmission Timer. */
   OSPF_NSM_TIMER_ON (nbr->t_ls_req, ospf_ls_req_timer, nbr->v_ls_req);
@@ -3077,7 +3078,7 @@
   ospf_packet_add (oi, op);
 
   /* Hook thread to write packet. */
-  OSPF_ISM_WRITE_ON ();
+  OSPF_ISM_WRITE_ON (oi->ospf);
 }
 
 static int
@@ -3186,7 +3187,7 @@
   ospf_packet_add (oi, op);
 
   /* Hook thread to write packet. */
-  OSPF_ISM_WRITE_ON ();
+  OSPF_ISM_WRITE_ON (oi->ospf);
 }
 
 static int