Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- 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