[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 2/8] Introduce virDomainInterfaceFree API



This is just a free function for array of virDomainInterfacePtr as
returned by virDomainInterfacesAddresses API.
---
 include/libvirt/libvirt.h.in |  3 +++
 python/generator.py          |  1 +
 src/libvirt.c                | 31 +++++++++++++++++++++++++++++++
 src/libvirt_public.syms      |  1 +
 4 files changed, 36 insertions(+)

diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 3eb7ced..d40c4f8 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -4613,6 +4613,9 @@ int virDomainInterfacesAddresses(virDomainPtr domain,
                                  unsigned int method,
                                  unsigned int flags);
 
+void virDomainInterfaceFree(virDomainInterfacePtr ifaces,
+                            int count);
+
 /**
  * virSchedParameterType:
  *
diff --git a/python/generator.py b/python/generator.py
index e2f3134..1cc1e6e 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -430,6 +430,7 @@ skip_impl = (
     'virNodeSetMemoryParameters',
     'virNodeGetCPUMap',
     'virDomainInterfacesAddresses',
+    'virDomainInterfaceFree',
 )
 
 qemu_skip_impl = (
diff --git a/src/libvirt.c b/src/libvirt.c
index ad0f78c..3188257 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -20495,3 +20495,34 @@ error:
     virDispatchError(domain->conn);
     return -1;
 }
+
+/**
+ * virDomainInterfaceFree:
+ * @ifaces: array of interfaces
+ * @count: count of @ifaces items
+ *
+ * Free the array of interfaces as returned by virDomainInterfacesAddresses.
+ * The @ifaces pointer is freed and should not be used thereafter.
+ */
+void
+virDomainInterfaceFree(virDomainInterfacePtr ifaces,
+                       int count)
+{
+    int i, j;
+
+    VIR_DEBUG("ifaces=%p, count=%d", ifaces, count);
+
+    for (i = 0; i < count; i++) {
+        virDomainInterface tmp = ifaces[i];
+
+        VIR_FREE(tmp.name);
+        VIR_FREE(tmp.hwaddr);
+        for (j = 0; j < tmp.ip_addrs_count; j++) {
+            VIR_FREE(tmp.ip_addrs[j].addr);
+            VIR_FREE(tmp.ip_addrs[j].dstaddr);
+        }
+        VIR_FREE(tmp.ip_addrs);
+    }
+
+    VIR_FREE(ifaces);
+}
diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
index 8e7c5d2..a401363 100644
--- a/src/libvirt_public.syms
+++ b/src/libvirt_public.syms
@@ -583,6 +583,7 @@ LIBVIRT_1.0.1 {
 LIBVIRT_1.0.2 {
     global:
         virDomainInterfacesAddresses;
+        virDomainInterfaceFree;
 } LIBVIRT_1.0.1;
 
 
-- 
1.8.0.2


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]