From: Michal Privoznik Date: Wed, 5 Feb 2014 14:30:11 +0000 (+0100) Subject: qemuBuildClockArgStr: Allow localtime clock basis X-Git-Tag: v1.2.2-rc1~172 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51bea5df5d21093bb30e4883aff19f935e811725;p=thirdparty%2Flibvirt.git qemuBuildClockArgStr: Allow localtime clock basis https://bugzilla.redhat.com/show_bug.cgi?id=1046192 Commit b8bf79a, which adds clock='variable', forgets to check localtime basis in qemuBuildClockArgStr(). So that localtime basis could not be used. Reported-by: Jincheng Miao Signed-off-by: Michal Privoznik --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5b94de1375..6cc32f9fc2 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6491,14 +6491,18 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) time_t now = time(NULL); struct tm nowbits; - if (def->data.variable.basis != VIR_DOMAIN_CLOCK_BASIS_UTC) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported clock basis '%s'"), - virDomainClockBasisTypeToString(def->data.variable.basis)); - goto error; + switch ((enum virDomainClockBasis) def->data.variable.basis) { + case VIR_DOMAIN_CLOCK_BASIS_UTC: + now += def->data.variable.adjustment; + gmtime_r(&now, &nowbits); + break; + case VIR_DOMAIN_CLOCK_BASIS_LOCALTIME: + now += def->data.variable.adjustment; + localtime_r(&now, &nowbits); + break; + case VIR_DOMAIN_CLOCK_BASIS_LAST: + break; } - now += def->data.variable.adjustment; - gmtime_r(&now, &nowbits); /* Store the guest's basedate */ def->data.variable.basedate = now;