]> xenbits.xensource.com Git - libvirt.git/commitdiff
virIdentityGetParameters: Return 'virTypedParamList'
authorPeter Krempa <pkrempa@redhat.com>
Wed, 18 May 2022 09:12:30 +0000 (11:12 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 18 May 2022 11:46:30 +0000 (13:46 +0200)
Refactor the code to use virTypedParamList which simplifies cleanup.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/driver.c
src/remote/remote_daemon_dispatch.c
src/util/viridentity.c
src/util/viridentity.h

index d4136c438fe179b7dd4ca98c47f2e5503f18eef2..cea74bdf95c6c3dbc4df5a741f809ada793b8e7e 100644 (file)
@@ -160,20 +160,16 @@ virGetConnectGeneric(virThreadLocal *threadPtr, const char *name)
 
         if (conn->driver->connectSetIdentity != NULL) {
             g_autoptr(virIdentity) ident = NULL;
-            g_autoptr(virTypedParamList) paramlist = NULL;
-            virTypedParameterPtr identparams = NULL;
-            int nidentparams = 0;
+            g_autoptr(virTypedParamList) identparams = NULL;
 
             VIR_DEBUG("Attempting to delegate current identity");
             if (!(ident = virIdentityGetCurrent()))
                 goto error;
 
-            if (virIdentityGetParameters(ident, &identparams, &nidentparams) < 0)
+            if (!(identparams = virIdentityGetParameters(ident)))
                 goto error;
 
-            paramlist = virTypedParamListFromParams(&identparams, nidentparams);
-
-            if (virConnectSetIdentity(conn, paramlist->par, paramlist->npar, 0) < 0)
+            if (virConnectSetIdentity(conn, identparams->par, identparams->npar, 0) < 0)
                 goto error;
         }
     }
index 2463386e39cc6c0ebf102c29f6a02a46579b4dfd..39953f46cff2b7e5f2c4e54b4f9ea46d76e7be58 100644 (file)
@@ -1793,8 +1793,7 @@ remoteOpenConn(const char *uri,
                bool preserveIdentity,
                virConnectPtr *conn)
 {
-    virTypedParameterPtr params = NULL;
-    int nparams = 0;
+    g_autoptr(virTypedParamList) identparams = NULL;
     int ret = -1;
 
     VIR_DEBUG("Getting secondary uri=%s readonly=%d preserveIdent=%d conn=%p",
@@ -1814,7 +1813,7 @@ remoteOpenConn(const char *uri,
         if (!(ident = virIdentityGetCurrent()))
             return -1;
 
-        if (virIdentityGetParameters(ident, &params, &nparams) < 0)
+        if (!(identparams = virIdentityGetParameters(ident)))
             goto error;
     }
 
@@ -1828,7 +1827,7 @@ remoteOpenConn(const char *uri,
     VIR_DEBUG("Opened driver %p", *conn);
 
     if (preserveIdentity) {
-        if (virConnectSetIdentity(*conn, params, nparams, 0) < 0)
+        if (virConnectSetIdentity(*conn, identparams->par, identparams->npar, 0) < 0)
             goto error;
 
         VIR_DEBUG("Forwarded current identity to secondary driver");
@@ -1836,7 +1835,6 @@ remoteOpenConn(const char *uri,
 
     ret = 0;
  cleanup:
-    virTypedParamsFree(params, nparams);
     return ret;
 
  error:
index 70843ecf9f3a5b5e5bf0bb02335cfa4f5428d8d7..e3a9cbb661b603b7954207c55d18680b31b7b9ec 100644 (file)
@@ -838,17 +838,12 @@ int virIdentitySetParameters(virIdentity *ident,
 }
 
 
-int virIdentityGetParameters(virIdentity *ident,
-                             virTypedParameterPtr *params,
-                             int *nparams)
+virTypedParamList *virIdentityGetParameters(virIdentity *ident)
 {
-    *params = NULL;
-    *nparams = 0;
+    virTypedParameter *tmp = NULL;
 
-    if (virTypedParamsCopy(params, ident->params, ident->nparams) < 0)
-        return -1;
-
-    *nparams = ident->nparams;
+    if (virTypedParamsCopy(&tmp, ident->params, ident->nparams) < 0)
+        return NULL;
 
-    return 0;
+    return virTypedParamListFromParams(&tmp, ident->nparams);
 }
index 6da6d0c55792e843d3a736958c7957b86c9cf0e7..5f87d7268b5f6d9e4055ddb4db5a8c6f2a5ed5f5 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "internal.h"
 #include <glib-object.h>
+#include "virtypedparam.h"
 
 #define VIR_TYPE_IDENTITY vir_identity_get_type()
 G_DECLARE_FINAL_TYPE(virIdentity, vir_identity, VIR, IDENTITY, GObject);
@@ -88,6 +89,4 @@ int virIdentitySetParameters(virIdentity *ident,
                              virTypedParameterPtr params,
                              int nparams);
 
-int virIdentityGetParameters(virIdentity *ident,
-                             virTypedParameterPtr *params,
-                             int *nparams);
+virTypedParamList *virIdentityGetParameters(virIdentity *ident);