Make ofproto_free_ofproto_controller_info() just a passthrough to
connmgr_free_controller_info() so the allocation and freeing of memory in the
controller info structure is done in the same place.
---
 ofproto/connmgr.c |   15 +++++++++++++++
 ofproto/connmgr.h |    1 +
 ofproto/ofproto.c |   11 +----------
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c
index 7c043a4..7776c88 100644
--- a/ofproto/connmgr.c
+++ b/ofproto/connmgr.c
@@ -416,6 +416,21 @@ connmgr_get_controller_info(struct connmgr *mgr, struct 
shash *info)
     }
 }
 
+void
+connmgr_free_controller_info(struct shash *info)
+{
+    struct shash_node *node;
+
+    SHASH_FOR_EACH (node, info) {
+        struct ofproto_controller_info *cinfo = node->data;
+        while (cinfo->pairs.n) {
+            free((char *) cinfo->pairs.values[--cinfo->pairs.n]);
+        }
+        free(cinfo);
+    }
+    shash_destroy(info);
+}
+
 /* Changes 'mgr''s set of controllers to the 'n_controllers' controllers in
  * 'controllers'. */
 void
diff --git a/ofproto/connmgr.h b/ofproto/connmgr.h
index 58b1ae3..31416a1 100644
--- a/ofproto/connmgr.h
+++ b/ofproto/connmgr.h
@@ -66,6 +66,7 @@ void connmgr_retry(struct connmgr *);
 /* OpenFlow configuration. */
 bool connmgr_has_controllers(const struct connmgr *);
 void connmgr_get_controller_info(struct connmgr *, struct shash *);
+void connmgr_free_controller_info(struct shash *);
 void connmgr_set_controllers(struct connmgr *,
                              const struct ofproto_controller[], size_t n);
 void connmgr_reconnect(const struct connmgr *);
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 27c370e..fd9c0f3 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -845,16 +845,7 @@ ofproto_get_ofproto_controller_info(const struct ofproto 
*ofproto,
 void
 ofproto_free_ofproto_controller_info(struct shash *info)
 {
-    struct shash_node *node;
-
-    SHASH_FOR_EACH (node, info) {
-        struct ofproto_controller_info *cinfo = node->data;
-        while (cinfo->pairs.n) {
-            free((char *) cinfo->pairs.values[--cinfo->pairs.n]);
-        }
-        free(cinfo);
-    }
-    shash_destroy(info);
+    connmgr_free_controller_info(info);
 }
 
 /* Makes a deep copy of 'old' into 'port'. */
-- 
1.7.4.1

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to