]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Correctly wait for spice to migrate
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 18 Oct 2012 07:38:41 +0000 (09:38 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 18 Oct 2012 08:31:56 +0000 (10:31 +0200)
Currently we query-spice after the main migration has completed
before moving to next state. Qemu reports this as boolean (not
enclosed within quotes). Therefore it is not correct to use
virJSONValueObjectGetString but virJSONValueObjectGetBoolean instead.

src/qemu/qemu_monitor_json.c

index 2daf8ea197c9028f9abae5f4b8df71d2e6ba8715..8087e4f7d57c4c0d488add2b830fa2ac3d310027 100644 (file)
@@ -2399,7 +2399,6 @@ qemuMonitorJSONSpiceGetMigrationStatusReply(virJSONValuePtr reply,
                                             bool *spice_migrated)
 {
     virJSONValuePtr ret;
-    const char *migrated_str;
 
     if (!(ret = virJSONValueObjectGet(reply, "return"))) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -2407,13 +2406,11 @@ qemuMonitorJSONSpiceGetMigrationStatusReply(virJSONValuePtr reply,
         return -1;
     }
 
-    if (!(migrated_str = virJSONValueObjectGetString(ret, "migrated"))) {
+    if (virJSONValueObjectGetBoolean(ret, "migrated", spice_migrated) < 0) {
         /* Deliberately don't report error here as we are
          * probably dealing with older qemu which doesn't
          * report this yet. Pretend spice is migrated. */
         *spice_migrated = true;
-    } else {
-        *spice_migrated = STREQ(migrated_str, "true");
     }
 
     return 0;