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