connmgr: Free controller info in the same module where it's allocated.
authorAndrew Evans <aevans@nicira.com>
Fri, 1 Jul 2011 01:08:59 +0000 (18:08 -0700)
committerAndrew Evans <aevans@nicira.com>
Fri, 1 Jul 2011 17:38:35 +0000 (10:38 -0700)
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
ofproto/connmgr.h
ofproto/ofproto.c

index 7c043a4aa8265bdf74b7bd5d6edc37bba02ab29f..7776c8898798779e911cd2f41cc4d8eba2e96c5d 100644 (file)
@@ -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
index 58b1ae3fe3904c15a8543ef516f285d48207969d..31416a1f8b05fb225582a091cffef4dbdfe2eee4 100644 (file)
@@ -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 *);
index efa3686e04503330c533f797289536340fb49296..ac243cf053b79f08edf4b42519ead2da3279d240 100644 (file)
@@ -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'. */