[libvirt] [PATCH] conf: add localtime support in guest clock with variable attibute
Michal Privoznik
mprivozn at redhat.com
Wed Feb 5 14:33:11 UTC 2014
On 24.12.2013 07:31, Jincheng Miao wrote:
> commit b8bf79a, which add clock=variable, forgets to check localtime
> basis in qemuBuildClockArgStr(). So that localtime basis could not
> be used, like this bug:
> https://bugzilla.redhat.com/show_bug.cgi?id=1046192
> ---
> src/qemu/qemu_command.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index d723dc8..749ad54 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -6490,15 +6490,21 @@ qemuBuildClockArgStr(virDomainClockDefPtr def)
> time_t now = time(NULL);
> struct tm nowbits;
>
> - if (def->data.variable.basis != VIR_DOMAIN_CLOCK_BASIS_UTC) {
> + if (def->data.variable.basis == VIR_DOMAIN_CLOCK_BASIS_UTC) {
> + now += def->data.variable.adjustment;
> + gmtime_r(&now, &nowbits);
> + }
> + else if (def->data.variable.basis == VIR_DOMAIN_CLOCK_BASIS_LOCALTIME) {
> + now += def->data.variable.adjustment;
> + localtime_r(&now, &nowbits);
> + }
> + else {
> virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> _("unsupported clock basis '%s'"),
> virDomainClockBasisTypeToString(def->data.variable.basis));
> goto error;
> }
> - now += def->data.variable.adjustment;
> - gmtime_r(&now, &nowbits);
> -
> +
> /* Store the guest's basedate */
> def->data.variable.basedate = now;
>
>
I've changed the patch to use switch instead of if-else and introduced a
test:
https://www.redhat.com/archives/libvir-list/2014-February/msg00250.html
Michal
More information about the libvir-list
mailing list