]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
nwfilter: Free nwfilter hash of virConnectPtr
authorMatthias Bolte <matthias.bolte@googlemail.com>
Sat, 17 Apr 2010 16:20:15 +0000 (18:20 +0200)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Sat, 17 Apr 2010 16:20:15 +0000 (18:20 +0200)
And close the driver on connection close.

src/datatypes.c

index ebcd5384bdb5d33b0c0a4d04f0c8646dc01ed68e..25962a638b4801e5439ae07ffd3ae0bd7f872603 100644 (file)
@@ -128,6 +128,20 @@ virSecretFreeName(void *secret_, const char *name ATTRIBUTE_UNUSED)
     virUnrefSecret(secret);
 }
 
+/**
+ * virNWFilterPoolFreeName:
+ * @pool: a nwfilter pool object
+ *
+ * Destroy the nwfilter pool object, this is just used by the nwfilter pool hash callback.
+ *
+ * Returns 0 in case of success and -1 in case of failure.
+ */
+static int
+virNWFilterPoolFreeName(virNWFilterPtr pool, const char *name ATTRIBUTE_UNUSED)
+{
+    return (virUnrefNWFilter(pool));
+}
+
 /**
  * virDomainSnapshotFreeName:
  * @snapshot: a domain snapshotobject
@@ -212,6 +226,8 @@ failed:
             virHashFree(ret->nodeDevices, (virHashDeallocator) virNodeDeviceFree);
         if (ret->secrets != NULL)
             virHashFree(ret->secrets, virSecretFreeName);
+        if (ret->nwfilterPools != NULL)
+            virHashFree(ret->nwfilterPools, (virHashDeallocator) virNWFilterPoolFreeName);
 
         virMutexDestroy(&ret->lock);
         VIR_FREE(ret);
@@ -245,6 +261,8 @@ virReleaseConnect(virConnectPtr conn) {
         virHashFree(conn->nodeDevices, (virHashDeallocator) virNodeDeviceFree);
     if (conn->secrets != NULL)
         virHashFree(conn->secrets, virSecretFreeName);
+    if (conn->nwfilterPools != NULL)
+        virHashFree(conn->nwfilterPools, (virHashDeallocator) virNWFilterPoolFreeName);
 
     virResetError(&conn->err);
 
@@ -292,6 +310,8 @@ virUnrefConnect(virConnectPtr conn) {
             conn->deviceMonitor->close (conn);
         if (conn->secretDriver)
             conn->secretDriver->close (conn);
+        if (conn->nwfilterDriver)
+            conn->nwfilterDriver->close (conn);
         if (conn->driver)
             conn->driver->close (conn);