[libvirt] [PATCH] Make QEMU driver use -chardev everywhere when it's available
Daniel P. Berrange
berrange at redhat.com
Mon Nov 16 13:30:30 UTC 2009
On Fri, Nov 13, 2009 at 04:01:44PM +0000, Matthew Booth wrote:
> Change -monitor, -serial and -parallel output to use -chardev if it is
> available.
>
> * src/qemu/qemu_conf.c: Update qemudBuildCommandLine to use -chardev where
> available.
> * tests/qemuxml2argvtest.c tests/qemuxml2argvdata/: Add -chardev equivalents for
> all current serial and parallel tests.
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index c807688..4f4b3db 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -1844,12 +1844,36 @@ int qemudBuildCommandLine(virConnectPtr conn,
> if (monitor_chr) {
> virBuffer buf = VIR_BUFFER_INITIALIZER;
>
> - qemudBuildCommandLineChrDevStr(monitor_chr, &buf);
> - if (virBufferError(&buf))
> - goto error;
> + /* Use -chardev if it's available */
> + if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) {
> + char id[16];
> +
> + if (snprintf(id, sizeof(id), "monitor%i", i) > sizeof(id))
> + goto error;
This is using 'i' uninitialized I believe. Its a little overkill to do
a printf here at all since there's only ever a single monitor called
'monitor0'
>
> - ADD_ARG_LIT("-monitor");
> - ADD_ARG(virBufferContentAndReset(&buf));
> + qemudBuildCommandLineChrDevChardevStr(monitor_chr, id, &buf);
> + if (virBufferError(&buf))
> + goto error;
> +
> + ADD_ARG_LIT("-chardev");
> + ADD_ARG(virBufferContentAndReset(&buf));
> +
> + virBufferVSprintf(&buf, "chardev:%s", id);
> + if (virBufferError(&buf))
> + goto error;
> +
> + ADD_ARG_LIT("-monitor");
> + ADD_ARG(virBufferContentAndReset(&buf));
> + }
> +
> + else {
> + qemudBuildCommandLineChrDevStr(monitor_chr, &buf);
> + if (virBufferError(&buf))
> + goto error;
> +
> + ADD_ARG_LIT("-monitor");
> + ADD_ARG(virBufferContentAndReset(&buf));
> + }
> }
Regards,
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list