[libvirt] [PATCH] qemu: fix guestfwd chardev option back how it was

Since commit d86c876a66e320b55220d00113027c9ad6199cff we are using guestfwd=tcp:IP:PORT,chardev=ID for guestfwd specification, however, that has not changed in qemu, so guestfwd does not work since. Apart from that, guestfwd is not working with older qemu that doesn't have QEMU_CAPS_DEVICE. Both regressions exist since late 2009 and nobody found that (until now), so I'm only fixing the first one. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1112066 Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- src/qemu/qemu_command.c | 2 +- tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 93d303e..5074aa1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9186,7 +9186,7 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, port = virSocketAddrGetPort(chr->target.addr); if (virAsprintf(deviceStr, - "user,guestfwd=tcp:%s:%i,chardev=char%s,id=user-%s", + "user,guestfwd=tcp:%s:%i-chardev:char%s,id=user-%s", addr, port, chr->info.alias, chr->info.alias) < 0) { virReportOOMError(); goto cleanup; diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args index 7a15369..eb13430 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args +++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args @@ -4,5 +4,5 @@ pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev socket,\ id=charmonitor,path=/tmp/test-monitor,server,nowait -mon chardev=charmonitor,\ id=monitor,mode=readline -no-acpi -boot c -usb -hda /dev/HostVG/QEMUGuest1 -chardev \ pipe,id=charchannel0,path=/tmp/guestfwd -netdev user,\ -guestfwd=tcp:10.0.2.1:4600,chardev=charchannel0,id=user-channel0 -device \ +guestfwd=tcp:10.0.2.1:4600-chardev:charchannel0,id=user-channel0 -device \ virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 -- 2.0.0

On 06/26/2014 04:36 PM, Martin Kletzander wrote:
Since commit d86c876a66e320b55220d00113027c9ad6199cff we are using guestfwd=tcp:IP:PORT,chardev=ID for guestfwd specification, however, that has not changed in qemu, so guestfwd does not work since.
Apart from that, guestfwd is not working with older qemu that doesn't have QEMU_CAPS_DEVICE.
Both regressions exist since late 2009 and nobody found that (until now), so I'm only fixing the first one.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1112066
Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- src/qemu/qemu_command.c | 2 +- tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
ACK
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 93d303e..5074aa1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9186,7 +9186,7 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, port = virSocketAddrGetPort(chr->target.addr);
if (virAsprintf(deviceStr, - "user,guestfwd=tcp:%s:%i,chardev=char%s,id=user-%s", + "user,guestfwd=tcp:%s:%i-chardev:char%s,id=user-%s", addr, port, chr->info.alias, chr->info.alias) < 0) { virReportOOMError();
The OOM error is redundant here and right above it in qemuBuildParallelChrDeviceStr.

On Thu, Jun 26, 2014 at 04:48:23PM +0200, Ján Tomko wrote:
On 06/26/2014 04:36 PM, Martin Kletzander wrote:
Since commit d86c876a66e320b55220d00113027c9ad6199cff we are using guestfwd=tcp:IP:PORT,chardev=ID for guestfwd specification, however, that has not changed in qemu, so guestfwd does not work since.
Apart from that, guestfwd is not working with older qemu that doesn't have QEMU_CAPS_DEVICE.
Both regressions exist since late 2009 and nobody found that (until now), so I'm only fixing the first one.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1112066
Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- src/qemu/qemu_command.c | 2 +- tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
ACK
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 93d303e..5074aa1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9186,7 +9186,7 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, port = virSocketAddrGetPort(chr->target.addr);
if (virAsprintf(deviceStr, - "user,guestfwd=tcp:%s:%i,chardev=char%s,id=user-%s", + "user,guestfwd=tcp:%s:%i-chardev:char%s,id=user-%s", addr, port, chr->info.alias, chr->info.alias) < 0) { virReportOOMError();
The OOM error is redundant here and right above it in qemuBuildParallelChrDeviceStr.
And few other places all over the code as well. Since this is pre-existing and not related to this code I won't change it in this patch, but cleanup for more of these would be nice. 'git grep virReportOOMError src/ tests/' reports 273 matching lines and I'm _pretty_ certain we don't have that many allocation functions. Thanks, pushed. Martin
participants (2)
-
Ján Tomko
-
Martin Kletzander