* ospf_apiserver.c (ospf_apiserver_term): Obtain struct
ospf_apiserver * from listnode. Remove unused variables. Follows
suggestion from Jay Fenlason.
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 */