Hi Christophe,
Thanks for reviewing.
> +gboolean gvir_connection_fetch_interfaces(GVirConnection *conn,
> + GCancellable *cancellable,
> + GError **err)
> +{
> + GVirConnectionPrivate *priv;
> + GHashTable *interfaces;
> + gchar **inactive = NULL;
> + gint ninactive = 0;
> + gchar **active = NULL;
> + gint nactive = 0;
> + gboolean ret = FALSE;
> + gint i;
> + virConnectPtr vconn = NULL;
> + GError *lerr = NULL;
> +
> + g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE);
> + g_return_val_if_fail((cancellable == NULL) || G_IS_CANCELLABLE(cancellable),
> + FALSE);
> + g_return_val_if_fail((err == NULL) || (*err == NULL), FALSE);
> +
> + priv = conn->priv;
> + g_mutex_lock(priv->lock);
> + if (!priv->conn) {
> + g_set_error_literal(err, GVIR_CONNECTION_ERROR,
> + 0,
> + _("Connection is not open"));
> + g_mutex_unlock(priv->lock);
> + goto cleanup;
> + }
> + vconn = priv->conn;
> + /* Stop another thread closing the connection just at the minute */
> + virConnectRef(vconn);
> + g_mutex_unlock(priv->lock);
> +
> + if (g_cancellable_set_error_if_cancelled(cancellable, err))
> + goto cleanup;
> +
> + active = fetch_list(vconn,
> + "Interfaces",
> + virConnectNumOfInterfaces,
> + virConnectListInterfaces,
> + cancellable,
> + &nactive,
> + &lerr);
Would it be possible to use virConnectListAllInterfaces() rather than
this awkward split between active/inactive interfaces? (which is also
likely to be racy if one interface becomes active between the 2
fetch_list calls).
Yeah I was just using existing code as bases for this. I'll change
other code too..
> diff --git a/libvirt-gobject/libvirt-gobject.sym
b/libvirt-gobject/libvirt-gobject.sym
> index 29c4349..b7ce1d5 100644
> --- a/libvirt-gobject/libvirt-gobject.sym
> +++ b/libvirt-gobject/libvirt-gobject.sym
> @@ -273,6 +273,11 @@ LIBVIRT_GOBJECT_0.2.1 {
>
> LIBVIRT_GOBJECT_0.2.2 {
> global:
> + gvir_connection_fetch_interfaces;
No async variant ?
Christophe
> + gvir_connection_find_interface_by_mac;
> + gvir_connection_get_interface;
> + gvir_connection_get_interfaces;
> +
> gvir_interface_get_mac;
> } LIBVIRT_GOBJECT_0.2.1;
The existing _fetch() methods don't have async variants so I didn't
add here either. I'll look into adding those..
--
Regards,
Zeeshan Ali (Khattak)
________________________________________
Befriend GNOME:
http://www.gnome.org/friends/