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 <jmiao@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2014-02-05 15:30:11 +01:00
parent 0db9b0883c
commit 51bea5df5d
1 changed files with 11 additions and 7 deletions

View File

@ -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;