]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Reject SDL graphic if it's not supported by qemu
authorOsier Yang <jyang@redhat.com>
Wed, 12 Jan 2011 14:44:00 +0000 (22:44 +0800)
committerEric Blake <eblake@redhat.com>
Wed, 12 Jan 2011 16:52:51 +0000 (09:52 -0700)
If the emulator doesn't support SDL graphic, we should reject
the use of SDL graphic xml with error messages, but not ignore
it silently, and pretend things are fine.

"-sdl" flag was exposed explicitly by qemu since 0.10.0, more detail:
http://www.redhat.com/archives/libvir-list/2011-January/msg00442.html

And we already have capability flag "QEMUD_CMD_FLAG_0_10", which
could be used to prevent the patch affecting the older versions
of QEMU.

* src/qemu/qemu_command.c

src/qemu/qemu_command.c

index a0075a4ea8306f5eb212606c47d8781f99be3c1c..86c5bb590d95849ba07defff1758ecf9218da230 100644 (file)
@@ -3568,6 +3568,14 @@ qemuBuildCommandLine(virConnectPtr conn,
         }
     } else if ((def->ngraphics == 1) &&
                def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) {
+        if ((qemuCmdFlags & QEMUD_CMD_FLAG_0_10) &&
+            !(qemuCmdFlags & QEMUD_CMD_FLAG_SDL)) {
+            qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                            _("sdl not supported by '%s'"),
+                            def->emulator);
+            goto error;
+        }
+
         if (def->graphics[0]->data.sdl.xauth)
             virCommandAddEnvPair(cmd, "XAUTHORITY",
                                  def->graphics[0]->data.sdl.xauth);