<br><tt><font size=2>libvir-list-bounces@redhat.com wrote on 04/17/2010
12:23:24 PM:<br>
<br>
<br>
> libvir-list-bounces@redhat.com</font></tt>
<br><tt><font size=2>> <br>
> And close the driver on connection close.<br>
> ---<br>
>  src/datatypes.c |   20 ++++++++++++++++++++<br>
>  1 files changed, 20 insertions(+), 0 deletions(-)<br>
> <br>
> diff --git a/src/datatypes.c b/src/datatypes.c<br>
> index ebcd538..25962a6 100644<br>
> --- a/src/datatypes.c<br>
> +++ b/src/datatypes.c<br>
> @@ -129,6 +129,20 @@ virSecretFreeName(void *secret_, const char <br>
> *name ATTRIBUTE_UNUSED)<br>
>  }<br>
>  <br>
>  /**<br>
> + * virNWFilterPoolFreeName:<br>
> + * @pool: a nwfilter pool object<br>
> + *<br>
> + * Destroy the nwfilter pool object, this is just used by the <br>
> nwfilter pool hash callback.<br>
> + *<br>
> + * Returns 0 in case of success and -1 in case of failure.<br>
> + */<br>
> +static int<br>
> +virNWFilterPoolFreeName(virNWFilterPtr pool, const char *name <br>
> ATTRIBUTE_UNUSED)<br>
> +{<br>
> +    return (virUnrefNWFilter(pool));<br>
> +}<br>
> +<br>
> +/**<br>
>   * virDomainSnapshotFreeName:<br>
>   * @snapshot: a domain snapshotobject<br>
>   *<br>
> @@ -212,6 +226,8 @@ failed:<br>
>              virHashFree(ret->nodeDevices,
(virHashDeallocator) <br>
> virNodeDeviceFree);<br>
>          if (ret->secrets != NULL)<br>
>              virHashFree(ret->secrets,
virSecretFreeName);<br>
> +        if (ret->nwfilterPools != NULL)<br>
> +            virHashFree(ret->nwfilterPools,
(virHashDeallocator) <br>
> virNWFilterPoolFreeName);<br>
>  <br>
>          virMutexDestroy(&ret->lock);<br>
>          VIR_FREE(ret);<br>
> @@ -245,6 +261,8 @@ virReleaseConnect(virConnectPtr conn) {<br>
>          virHashFree(conn->nodeDevices,
(virHashDeallocator) <br>
> virNodeDeviceFree);<br>
>      if (conn->secrets != NULL)<br>
>          virHashFree(conn->secrets, virSecretFreeName);<br>
> +    if (conn->nwfilterPools != NULL)<br>
> +        virHashFree(conn->nwfilterPools, (virHashDeallocator)
<br>
> virNWFilterPoolFreeName);<br>
>  <br>
>      virResetError(&conn->err);<br>
>  <br>
> @@ -292,6 +310,8 @@ virUnrefConnect(virConnectPtr conn) {<br>
>              conn->deviceMonitor->close
(conn);<br>
>          if (conn->secretDriver)<br>
>              conn->secretDriver->close
(conn);<br>
> +        if (conn->nwfilterDriver)<br>
> +            conn->nwfilterDriver->close
(conn);<br>
>          if (conn->driver)<br>
>              conn->driver->close
(conn);</font></tt>
<br>
<br><tt><font size=2>Ack, please push.</font></tt>
<br>
<br><tt><font size=2>  Stefan</font></tt>
<br>