* ospf_apiserver.c (ospf_apiserver_term): Obtain struct
ospf_apiserver * from listnode. Remove unused variables. Follows
suggestion from Jay Fenlason.
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index afa92c7..4125655 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,8 +1,8 @@
2004-12-09 Greg Troxel <gdt@fnord.ir.bbn.com>
- * ospf_apiserver.c (ospf_apiserver_term): Remove unused variable
- nnode to fix warning.
- (ospf_apiserver_term): add comment about obviously wrong code.
+ * ospf_apiserver.c (ospf_apiserver_term): Obtain struct
+ ospf_apiserver * from listnode. Remove unused variables. Follows
+ suggestion from Jay Fenlason.
2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
diff --git a/ospfd/ospf_apiserver.c b/ospfd/ospf_apiserver.c
index 07b8f21..89af2a3 100644
--- a/ospfd/ospf_apiserver.c
+++ b/ospfd/ospf_apiserver.c
@@ -180,20 +180,17 @@
void
ospf_apiserver_term (void)
{
- struct listnode *node;
struct ospf_apiserver *apiserv;
/* Unregister wildcard [0/0] type */
ospf_delete_opaque_functab (0 /* all LSAs */,
0 /* all opaque types */);
- /* Free all client instances */
- while ( (node = listhead (apiserver_list)) != NULL)
- /*
- * XXX: this is just plain odd/wrong. Is there a missing
- * apiserv = (struct ospf_apiserver *) node;
- * ?
- */
+ /*
+ * Free all client instances. ospf_apiserver_free removes the node
+ * from the list, so we examine the head of the list anew each time.
+ */
+ while ( (apiserv = getdata (listhead (apiserver_list))) != NULL)
ospf_apiserver_free (apiserv);
/* Free client list itself */