On Tue, Dec 15, 2009 at 03:14:50PM +0000, Daniel P. Berrange wrote: > The old syntax was > > -chardev SOMECONFIG > -nic user,guestfwd=tcp:IP:PORT-chardev:CHARDEV > > The new syntax is > > -chardev SOMECONFIG > -netdev user,guestfwd=tcp:IP:PORT,chardev=CHARDEV > --- > src/qemu/qemu_conf.c | 41 ++++++++++++++++++++++++++++++++--------- > src/qemu/qemu_conf.h | 1 + > 2 files changed, 33 insertions(+), 9 deletions(-) > > diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c > index f8c6ae6..3d1cafa 100644 > --- a/src/qemu/qemu_conf.c > +++ b/src/qemu/qemu_conf.c > @@ -911,6 +911,8 @@ static unsigned int qemudComputeCmdFlags(const char *help, > flags |= QEMUD_CMD_FLAG_CHARDEV; > if (strstr(help, "-device")) > flags |= QEMUD_CMD_FLAG_DEVICE; > + if (strstr(help, "-sdl")) > + flags |= QEMUD_CMD_FLAG_SDL; > > if (version >= 9000) > flags |= QEMUD_CMD_FLAG_VNC_COLON; > @@ -2576,18 +2578,33 @@ int qemudBuildCommandLine(virConnectPtr conn, > const char *addr = virSocketFormatAddr(channel->target.addr); > int port = virSocketGetPort(channel->target.addr); > > - virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i-chardev:%s", > - addr, port, id); > + if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) { > + ADD_ARG_LIT("-netdev"); > + virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i,chardev=%s", > + addr, port, id); > > - VIR_FREE(addr); > + VIR_FREE(addr); > > - if (virBufferError(&buf)) { > - virBufferFreeAndReset(&buf); > - goto no_memory; > - } > + if (virBufferError(&buf)) { > + virBufferFreeAndReset(&buf); > + goto no_memory; > + } > > - ADD_ARG_LIT("-net"); > - ADD_ARG(virBufferContentAndReset(&buf)); > + ADD_ARG(virBufferContentAndReset(&buf)); > + } else { > + ADD_ARG_LIT("-net"); > + virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i-chardev:%s", > + addr, port, id); > + > + VIR_FREE(addr); > + > + if (virBufferError(&buf)) { > + virBufferFreeAndReset(&buf); > + goto no_memory; > + } > + > + ADD_ARG(virBufferContentAndReset(&buf)); > + } > } > } > > @@ -2696,6 +2713,12 @@ int qemudBuildCommandLine(virConnectPtr conn, > */ > ADD_ENV_COPY("QEMU_AUDIO_DRV"); > ADD_ENV_COPY("SDL_AUDIODRIVER"); > + > + /* New QEMU has this flag to let us explicitly ask for > + * SDL graphics. This is better than relying on the > + * default, since the default changes :-( */ > + if (qemuCmdFlags & QEMUD_CMD_FLAG_SDL) > + ADD_ARG_LIT("-sdl"); > } > > if (def->nvideos) { > diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h > index 840b749..62f62e5 100644 > --- a/src/qemu/qemu_conf.h > +++ b/src/qemu/qemu_conf.h > @@ -77,6 +77,7 @@ enum qemud_cmd_flags { > QEMUD_CMD_FLAG_0_12 = (1 << 24), > QEMUD_CMD_FLAG_MONITOR_JSON = QEMUD_CMD_FLAG_0_12, /* JSON mode for monitor */ > QEMUD_CMD_FLAG_DEVICE = (1 << 25), /* Is the new -chardev arg available */ > + QEMUD_CMD_FLAG_SDL = (1 << 26), /* Is the new -sdl arg available */ > }; > > /* Main driver state */ ACK, the -sdl option handling feels like a separate change but fine Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list