[zebra] IRDP: Move stream_free to where its created, probably fixing a leak

2006-08-01 Paul Jakma <paul.jakma@sun.com>

	* irdp_main.c: (irdp_advertisement) free the stream here, when done,
	  right under where it was allocated so it's blindingly obvious
	  it's correct. This possibly fixes a very slow leak of streams in
	  zebra.
	* irdp_packet.c: (send_packet) don't free the stream here as
	  it's hard to tell if right, plus an error case seemed to
	  returning before free anyway.
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index dced676..b7f7112 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -8,6 +8,16 @@
 	* misc_null.c: Must include header files to get older versions of gcc
 	  to process the #pragma statements properly.
 
+2006-08-01 Paul Jakma <paul.jakma@sun.com>
+
+	* irdp_main.c: (irdp_advertisement) free the stream here, when done,
+	  right under where it was allocated so it's blindingly obvious
+	  it's correct. This possibly fixes a very slow leak of streams in
+	  zebra.
+	* irdp_packet.c: (send_packet) don't free the stream here as
+	  it's hard to tell if right, plus an error case seemed to
+	  returning before free anyway.
+
 2006-07-27 Paul Jakma <paul.jakma@sun.com>
 
 	* {ioctl,kernel}_null.c: Dummy/Null kernel method implementations,
diff --git a/zebra/irdp_main.c b/zebra/irdp_main.c
index 04f12f1..e4e71cf 100644
--- a/zebra/irdp_main.c
+++ b/zebra/irdp_main.c
@@ -224,7 +224,8 @@
   struct stream *s;
   s = stream_new (128);
   make_advertisement_packet (ifp, p, s);
-  irdp_send(ifp, p, s); 
+  irdp_send(ifp, p, s);
+  stream_free (s);
 }
 
 int irdp_send_thread(struct thread *t_advert)
diff --git a/zebra/irdp_packet.c b/zebra/irdp_packet.c
index 74c75ab..3c5f155 100644
--- a/zebra/irdp_packet.c
+++ b/zebra/irdp_packet.c
@@ -286,7 +286,7 @@
   u_long src;
   int on;
  
-  if (!(ifp->flags & IFF_UP)) 
+  if (!(ifp->flags & IFF_UP))
     return;
 
   if (!p) 
@@ -311,7 +311,6 @@
 
   /* icmp->checksum is already calculated */
   ip->ip_len  = sizeof(struct ip) + stream_get_endp(s);
-  stream_free(s); 
 
   on = 1;
   if (setsockopt(irdp_sock, IPPROTO_IP, IP_HDRINCL,