2005-09-21 Paul Jakma <paul.jakma@sun.com>

	* zebra_rib.c: (static_uninstall_ipv{4,6}) Fix regression wrt
	  removal of static routes with multiple-hops introduced with
	  the workqueue conversion. We should free the relevant
	  nexthop and then get rib_process to run, otherwise we just
	  get same static route back again (with no way to unconfigure
          it, because its already deleted from configuration).
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 6d947c8..6cb686b 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -1557,7 +1557,9 @@
     {
       if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
         rib_uninstall (rn, rib);
-      rib_queue_add (&zebrad, rn, rib);
+      nexthop_delete (rib, nexthop);
+      nexthop_free (nexthop);
+      rib_queue_add (&zebrad, rn, NULL);
     }
   /* Unlock node. */
   route_unlock_node (rn);
@@ -2106,7 +2108,9 @@
     {
       if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
         rib_uninstall (rn, rib);
-      rib_queue_add (&zebrad, rn, rib);
+      nexthop_delete (rib, nexthop);
+      nexthop_free (nexthop);
+      rib_queue_add (&zebrad, rn, NULL);
     }
   /* Unlock node. */
   route_unlock_node (rn);