1
0

admin: convert admin server code to use auto free macros

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2019-10-01 15:29:39 +01:00
parent f80c8dab85
commit 29ef351db6

View File

@ -75,15 +75,13 @@ adminServerGetThreadPoolParameters(virNetServerPtr srv,
int *nparams, int *nparams,
unsigned int flags) unsigned int flags)
{ {
int ret = -1;
int maxparams = 0;
size_t minWorkers; size_t minWorkers;
size_t maxWorkers; size_t maxWorkers;
size_t nWorkers; size_t nWorkers;
size_t freeWorkers; size_t freeWorkers;
size_t nPrioWorkers; size_t nPrioWorkers;
size_t jobQueueDepth; size_t jobQueueDepth;
virTypedParameterPtr tmpparams = NULL; g_autoptr(virTypedParamList) paramlist = g_new0(virTypedParamList, 1);
virCheckFlags(0, -1); virCheckFlags(0, -1);
@ -93,46 +91,36 @@ adminServerGetThreadPoolParameters(virNetServerPtr srv,
&jobQueueDepth) < 0) { &jobQueueDepth) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unable to retrieve threadpool parameters")); _("Unable to retrieve threadpool parameters"));
goto cleanup; return -1;
} }
if (virTypedParamsAddUInt(&tmpparams, nparams, if (virTypedParamListAddUInt(paramlist, minWorkers,
&maxparams, VIR_THREADPOOL_WORKERS_MIN, "%s", VIR_THREADPOOL_WORKERS_MIN) < 0)
minWorkers) < 0) return -1;
goto cleanup;
if (virTypedParamsAddUInt(&tmpparams, nparams, if (virTypedParamListAddUInt(paramlist, maxWorkers,
&maxparams, VIR_THREADPOOL_WORKERS_MAX, "%s", VIR_THREADPOOL_WORKERS_MAX) < 0)
maxWorkers) < 0) return -1;
goto cleanup;
if (virTypedParamsAddUInt(&tmpparams, nparams, if (virTypedParamListAddUInt(paramlist, nWorkers,
&maxparams, VIR_THREADPOOL_WORKERS_CURRENT, "%s", VIR_THREADPOOL_WORKERS_CURRENT) < 0)
nWorkers) < 0) return -1;
goto cleanup;
if (virTypedParamsAddUInt(&tmpparams, nparams, if (virTypedParamListAddUInt(paramlist, freeWorkers,
&maxparams, VIR_THREADPOOL_WORKERS_FREE, "%s", VIR_THREADPOOL_WORKERS_FREE) < 0)
freeWorkers) < 0) return -1;
goto cleanup;
if (virTypedParamsAddUInt(&tmpparams, nparams, if (virTypedParamListAddUInt(paramlist, nPrioWorkers,
&maxparams, VIR_THREADPOOL_WORKERS_PRIORITY, "%s", VIR_THREADPOOL_WORKERS_PRIORITY) < 0)
nPrioWorkers) < 0) return -1;
goto cleanup;
if (virTypedParamsAddUInt(&tmpparams, nparams, if (virTypedParamListAddUInt(paramlist, jobQueueDepth,
&maxparams, VIR_THREADPOOL_JOB_QUEUE_DEPTH, "%s", VIR_THREADPOOL_JOB_QUEUE_DEPTH) < 0)
jobQueueDepth) < 0) return -1;
goto cleanup;
*params = tmpparams; *nparams = virTypedParamListStealParams(paramlist, params);
tmpparams = NULL;
ret = 0;
cleanup: return 0;
virTypedParamsFree(tmpparams, *nparams);
return ret;
} }
int int
@ -215,106 +203,90 @@ adminClientGetInfo(virNetServerClientPtr client,
int *nparams, int *nparams,
unsigned int flags) unsigned int flags)
{ {
int ret = -1;
int maxparams = 0;
bool readonly; bool readonly;
char *sock_addr = NULL; g_autofree char *sock_addr = NULL;
const char *attr = NULL; const char *attr = NULL;
virTypedParameterPtr tmpparams = NULL; g_autoptr(virTypedParamList) paramlist = g_new0(virTypedParamList, 1);
virIdentityPtr identity = NULL; g_autoptr(virIdentity) identity = NULL;
int rc; int rc;
virCheckFlags(0, -1); virCheckFlags(0, -1);
if (virNetServerClientGetInfo(client, &readonly, if (virNetServerClientGetInfo(client, &readonly,
&sock_addr, &identity) < 0) &sock_addr, &identity) < 0)
goto cleanup; return -1;
if (virTypedParamsAddBoolean(&tmpparams, nparams, &maxparams, if (virTypedParamListAddBoolean(paramlist, readonly,
VIR_CLIENT_INFO_READONLY, "%s", VIR_CLIENT_INFO_READONLY) < 0)
readonly) < 0) return -1;
goto cleanup;
if ((rc = virIdentityGetSASLUserName(identity, &attr)) < 0) if ((rc = virIdentityGetSASLUserName(identity, &attr)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddString(&tmpparams, nparams, &maxparams, virTypedParamListAddString(paramlist, attr,
VIR_CLIENT_INFO_SASL_USER_NAME, "%s", VIR_CLIENT_INFO_SASL_USER_NAME) < 0)
attr) < 0) return -1;
goto cleanup;
if (!virNetServerClientIsLocal(client)) { if (!virNetServerClientIsLocal(client)) {
if (virTypedParamsAddString(&tmpparams, nparams, &maxparams, if (virTypedParamListAddString(paramlist, sock_addr,
VIR_CLIENT_INFO_SOCKET_ADDR, "%s", VIR_CLIENT_INFO_SOCKET_ADDR) < 0)
sock_addr) < 0) return -1;
goto cleanup;
if ((rc = virIdentityGetX509DName(identity, &attr)) < 0) if ((rc = virIdentityGetX509DName(identity, &attr)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddString(&tmpparams, nparams, &maxparams, virTypedParamListAddString(paramlist, attr,
VIR_CLIENT_INFO_X509_DISTINGUISHED_NAME, "%s", VIR_CLIENT_INFO_X509_DISTINGUISHED_NAME) < 0)
attr) < 0) return -1;
goto cleanup;
} else { } else {
pid_t pid; pid_t pid;
uid_t uid; uid_t uid;
gid_t gid; gid_t gid;
if ((rc = virIdentityGetUNIXUserID(identity, &uid)) < 0) if ((rc = virIdentityGetUNIXUserID(identity, &uid)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddInt(&tmpparams, nparams, &maxparams, virTypedParamListAddInt(paramlist, uid,
VIR_CLIENT_INFO_UNIX_USER_ID, uid) < 0) "%s", VIR_CLIENT_INFO_UNIX_USER_ID) < 0)
goto cleanup; return -1;
if ((rc = virIdentityGetUserName(identity, &attr)) < 0) if ((rc = virIdentityGetUserName(identity, &attr)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddString(&tmpparams, nparams, &maxparams, virTypedParamListAddString(paramlist, attr,
VIR_CLIENT_INFO_UNIX_USER_NAME, "%s", VIR_CLIENT_INFO_UNIX_USER_NAME) < 0)
attr) < 0) return -1;
goto cleanup;
if ((rc = virIdentityGetUNIXGroupID(identity, &gid)) < 0) if ((rc = virIdentityGetUNIXGroupID(identity, &gid)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddInt(&tmpparams, nparams, &maxparams, virTypedParamListAddInt(paramlist, gid,
VIR_CLIENT_INFO_UNIX_GROUP_ID, gid) < 0) "%s", VIR_CLIENT_INFO_UNIX_GROUP_ID) < 0)
goto cleanup; return -1;
if ((rc = virIdentityGetGroupName(identity, &attr)) < 0) if ((rc = virIdentityGetGroupName(identity, &attr)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddString(&tmpparams, nparams, &maxparams, virTypedParamListAddString(paramlist, attr,
VIR_CLIENT_INFO_UNIX_GROUP_NAME, "%s", VIR_CLIENT_INFO_UNIX_GROUP_NAME) < 0)
attr) < 0) return -1;
goto cleanup;
if ((rc = virIdentityGetProcessID(identity, &pid)) < 0) if ((rc = virIdentityGetProcessID(identity, &pid)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddInt(&tmpparams, nparams, &maxparams, virTypedParamListAddInt(paramlist, pid,
VIR_CLIENT_INFO_UNIX_PROCESS_ID, pid) < 0) "%s", VIR_CLIENT_INFO_UNIX_PROCESS_ID) < 0)
goto cleanup; return -1;
} }
if ((rc = virIdentityGetSELinuxContext(identity, &attr)) < 0) if ((rc = virIdentityGetSELinuxContext(identity, &attr)) < 0)
goto cleanup; return -1;
if (rc == 1 && if (rc == 1 &&
virTypedParamsAddString(&tmpparams, nparams, &maxparams, virTypedParamListAddString(paramlist, attr,
VIR_CLIENT_INFO_SELINUX_CONTEXT, attr) < 0) "%s", VIR_CLIENT_INFO_SELINUX_CONTEXT) < 0)
goto cleanup; return -1;
*params = tmpparams; *nparams = virTypedParamListStealParams(paramlist, params);
tmpparams = NULL; return 0;
ret = 0;
cleanup:
if (tmpparams)
virTypedParamsFree(tmpparams, *nparams);
virObjectUnref(identity);
VIR_FREE(sock_addr);
return ret;
} }
int adminClientClose(virNetServerClientPtr client, int adminClientClose(virNetServerClientPtr client,
@ -332,39 +304,33 @@ adminServerGetClientLimits(virNetServerPtr srv,
int *nparams, int *nparams,
unsigned int flags) unsigned int flags)
{ {
int ret = -1; g_autoptr(virTypedParamList) paramlist = g_new0(virTypedParamList, 1);
int maxparams = 0;
virTypedParameterPtr tmpparams = NULL;
virCheckFlags(0, -1); virCheckFlags(0, -1);
if (virTypedParamsAddUInt(&tmpparams, nparams, &maxparams, if (virTypedParamListAddUInt(paramlist,
VIR_SERVER_CLIENTS_MAX, virNetServerGetMaxClients(srv),
virNetServerGetMaxClients(srv)) < 0) "%s", VIR_SERVER_CLIENTS_MAX) < 0)
goto cleanup; return -1;
if (virTypedParamsAddUInt(&tmpparams, nparams, &maxparams, if (virTypedParamListAddUInt(paramlist,
VIR_SERVER_CLIENTS_CURRENT, virNetServerGetCurrentClients(srv),
virNetServerGetCurrentClients(srv)) < 0) "%s", VIR_SERVER_CLIENTS_CURRENT) < 0)
goto cleanup; return -1;
if (virTypedParamsAddUInt(&tmpparams, nparams, &maxparams, if (virTypedParamListAddUInt(paramlist,
VIR_SERVER_CLIENTS_UNAUTH_MAX, virNetServerGetMaxUnauthClients(srv),
virNetServerGetMaxUnauthClients(srv)) < 0) "%s", VIR_SERVER_CLIENTS_UNAUTH_MAX) < 0)
goto cleanup; return -1;
if (virTypedParamsAddUInt(&tmpparams, nparams, &maxparams, if (virTypedParamListAddUInt(paramlist,
VIR_SERVER_CLIENTS_UNAUTH_CURRENT, virNetServerGetCurrentUnauthClients(srv),
virNetServerGetCurrentUnauthClients(srv)) < 0) "%s", VIR_SERVER_CLIENTS_UNAUTH_CURRENT) < 0)
goto cleanup; return -1;
*params = tmpparams; *nparams = virTypedParamListStealParams(paramlist, params);
tmpparams = NULL;
ret = 0;
cleanup: return 0;
virTypedParamsFree(tmpparams, *nparams);
return ret;
} }
int int