Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
src/qemu/qemu_agent.c | 14 ++++----------
src/qemu/qemu_agent.h | 4 +---
src/qemu/qemu_driver.c | 2 +-
tests/qemuagenttest.c | 39 ++++++++++++++++-----------------------
4 files changed, 22 insertions(+), 37 deletions(-)
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index 27efb4b389..e158b3d7ab 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -2311,9 +2311,7 @@ qemuAgentGetOSInfo(qemuAgent *agent,
*/
int
qemuAgentGetTimezone(qemuAgent *agent,
- virTypedParameterPtr *params,
- int *nparams,
- int *maxparams,
+ virTypedParamList *list,
bool report_unsupported)
{
g_autoptr(virJSONValue) cmd = NULL;
@@ -2336,10 +2334,8 @@ qemuAgentGetTimezone(qemuAgent *agent,
return -1;
}
- if ((name = virJSONValueObjectGetString(data, "zone")) &&
- virTypedParamsAddString(params, nparams, maxparams,
- "timezone.name", name) < 0)
- return -1;
+ if ((name = virJSONValueObjectGetString(data, "zone")))
+ virTypedParamListAddString(list, name, "timezone.name");
if ((virJSONValueObjectGetNumberInt(data, "offset", &offset)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -2347,9 +2343,7 @@ qemuAgentGetTimezone(qemuAgent *agent,
return -1;
}
- if (virTypedParamsAddInt(params, nparams, maxparams,
- "timezone.offset", offset) < 0)
- return -1;
+ virTypedParamListAddInt(list, offset, "timezone.offset");
return 0;
}
diff --git a/src/qemu/qemu_agent.h b/src/qemu/qemu_agent.h
index cd17a98d39..3f25f0e5a6 100644
--- a/src/qemu/qemu_agent.h
+++ b/src/qemu/qemu_agent.h
@@ -169,9 +169,7 @@ int qemuAgentGetOSInfo(qemuAgent *mon,
bool report_unsupported);
int qemuAgentGetTimezone(qemuAgent *mon,
- virTypedParameterPtr *params,
- int *nparams,
- int *maxparams,
+ virTypedParamList *list,
bool report_unsupported);
void qemuAgentSetResponseTimeout(qemuAgent *mon,
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 0d88f182b8..53be46ce0a 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19408,7 +19408,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
goto exitagent;
if (supportedTypes & VIR_DOMAIN_GUEST_INFO_TIMEZONE &&
- qemuAgentGetTimezone(agent, params, nparams, &maxparams, report_unsupported) == -1)
+ qemuAgentGetTimezone(agent, list, report_unsupported) == -1)
goto exitagent;
if (supportedTypes & VIR_DOMAIN_GUEST_INFO_HOSTNAME &&
diff --git a/tests/qemuagenttest.c b/tests/qemuagenttest.c
index 566571cf11..5fd4d70a70 100644
--- a/tests/qemuagenttest.c
+++ b/tests/qemuagenttest.c
@@ -1291,57 +1291,54 @@ testQemuAgentTimezone(const void *data)
{
virDomainXMLOption *xmlopt = (virDomainXMLOption *)data;
g_autoptr(qemuMonitorTest) test = qemuMonitorTestNewAgent(xmlopt);
- virTypedParameterPtr params = NULL;
- int nparams = 0;
- int ret = -1;
if (!test)
return -1;
if (qemuMonitorTestAddAgentSyncResponse(test) < 0)
- goto cleanup;
+ return -1;
#define VALIDATE_TIMEZONE(response_, expected_name_, expected_offset_) \
do { \
- int maxparams_ = 0; \
+ g_autoptr(virTypedParamList) list = virTypedParamListNew(); \
+ virTypedParameterPtr params; \
+ size_t nparams; \
const char *name_ = NULL; \
int offset_; \
if (qemuMonitorTestAddItem(test, "guest-get-timezone", \
response_) < 0) \
- goto cleanup; \
- virTypedParamsFree(params, nparams); \
- params = NULL; \
- nparams = 0; \
- if (qemuAgentGetTimezone(qemuMonitorTestGetAgent(test), \
- ¶ms, &nparams, &maxparams_, true) < 0) \
- goto cleanup; \
+ return -1; \
+ if (qemuAgentGetTimezone(qemuMonitorTestGetAgent(test), list, true) < 0) \
+ return -1; \
+ if (virTypedParamListFetch(list, ¶ms, &nparams) < 0) \
+ return -1; \
if (nparams != 2) { \
virReportError(VIR_ERR_INTERNAL_ERROR, \
- "Expected 2 params, got %d", nparams); \
- goto cleanup; \
+ "Expected 2 params, got %zu", nparams); \
+ return -1; \
} \
if (virTypedParamsGetString(params, nparams, \
"timezone.name", &name_) < 0) { \
virReportError(VIR_ERR_INTERNAL_ERROR, "missing param '%s'", \
"tiemzone.name"); \
- goto cleanup; \
+ return -1; \
} \
if (STRNEQ(name_, expected_name_)) { \
virReportError(VIR_ERR_INTERNAL_ERROR, \
"Expected name '%s', got '%s'", expected_name_, name_); \
- goto cleanup; \
+ return -1; \
} \
if (virTypedParamsGetInt(params, nparams, \
"timezone.offset", &offset_) < 0) { \
virReportError(VIR_ERR_INTERNAL_ERROR, "missing param '%s'", \
"tiemzone.offset"); \
- goto cleanup; \
+ return -1; \
} \
if (offset_ != expected_offset_) { \
virReportError(VIR_ERR_INTERNAL_ERROR, \
"Expected offset '%i', got '%i'", offset_, \
expected_offset_); \
- goto cleanup; \
+ return -1; \
} \
} while (0)
@@ -1350,11 +1347,7 @@ testQemuAgentTimezone(const void *data)
VALIDATE_TIMEZONE(testQemuAgentTimezoneResponse3, "NDT", -9000);
VALIDATE_TIMEZONE(testQemuAgentTimezoneResponse4, "PDT", -25200);
- ret = 0;
-
- cleanup:
- virTypedParamsFree(params, nparams);
- return ret;
+ return 0;
}
--
2.48.1