Re: [libvirt] [PATCH] Make QEMU driver use -chardev everywhere when it's available

2009-11-17 Thread Matthew Booth

On 16/11/09 13:30, Daniel P. Berrange wrote:

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'


Whoops, cut/paste error. It doesn't sound like this is going to be 
merged immediately, so I'll keep the fix locally for the moment.


Thanks,

Matt
--
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team

M:   +44 (0)7977 267231
GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] Make QEMU driver use -chardev everywhere when it's available

2009-11-16 Thread Daniel P. Berrange
On Fri, Nov 13, 2009 at 04:01:44PM +, 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 :|

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH] Make QEMU driver use -chardev everywhere when it's available

2009-11-13 Thread Matthew Booth
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.
---
 src/qemu/qemu_conf.c   |  102 +---
 .../qemuxml2argv-channel-guestfwd.args |2 +-
 .../qemuxml2argv-console-compat-chardev.args   |1 +
 .../qemuxml2argv-console-compat-chardev.xml|   28 ++
 .../qemuxml2argv-parallel-tcp-chardev.args |1 +
 .../qemuxml2argv-parallel-tcp-chardev.xml  |   27 +
 .../qemuxml2argv-serial-dev-chardev.args   |1 +
 .../qemuxml2argv-serial-dev-chardev.xml|   30 ++
 .../qemuxml2argv-serial-file-chardev.args  |1 +
 .../qemuxml2argv-serial-file-chardev.xml   |   30 ++
 .../qemuxml2argv-serial-many-chardev.args  |1 +
 .../qemuxml2argv-serial-many-chardev.xml   |   32 ++
 .../qemuxml2argv-serial-pty-chardev.args   |1 +
 .../qemuxml2argv-serial-pty-chardev.xml|   28 ++
 .../qemuxml2argv-serial-tcp-chardev.args   |1 +
 .../qemuxml2argv-serial-tcp-chardev.xml|   32 ++
 .../qemuxml2argv-serial-tcp-telnet-chardev.args|1 +
 .../qemuxml2argv-serial-tcp-telnet-chardev.xml |   32 ++
 .../qemuxml2argv-serial-udp-chardev.args   |1 +
 .../qemuxml2argv-serial-udp-chardev.xml|   32 ++
 .../qemuxml2argv-serial-unix-chardev.args  |1 +
 .../qemuxml2argv-serial-unix-chardev.xml   |   30 ++
 .../qemuxml2argv-serial-vc-chardev.args|1 +
 .../qemuxml2argv-serial-vc-chardev.xml |   28 ++
 tests/qemuxml2argvtest.c   |   12 +++
 25 files changed, 440 insertions(+), 16 deletions(-)
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.args
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.args
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.xml

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;
 
-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);
+