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=ID,id=user-ID
---
src/qemu/qemu_conf.c | 11 ++++++-----
.../qemuxml2argv-channel-guestfwd.args | 2 +-
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index a09fb62..9cd53f9 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -3283,9 +3283,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
switch(channel->targetType) {
case VIR_DOMAIN_CHR_TARGET_TYPE_GUESTFWD:
- if (!(qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV)) {
+ if (!(qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) ||
+ !(qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE)) {
qemudReportError(conn, NULL, NULL, VIR_ERR_NO_SUPPORT,
- "%s", _("guestfwd requires QEMU to support
-chardev"));
+ "%s", _("guestfwd requires QEMU to support -chardev
& -device"));
goto error;
}
@@ -3301,8 +3302,9 @@ 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, channel->info.alias);
+ ADD_ARG_LIT("-netdev");
+ virBufferVSprintf(&buf,
"user,guestfwd=tcp:%s:%i,chardev=%s,id=user-%s",
+ addr, port, channel->info.alias,
channel->info.alias);
VIR_FREE(addr);
@@ -3311,7 +3313,6 @@ int qemudBuildCommandLine(virConnectPtr conn,
goto no_memory;
}
- ADD_ARG_LIT("-net");
ADD_ARG(virBufferContentAndReset(&buf));
}
}
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args
b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args
index c3148df..e93e934 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args
@@ -1 +1 @@
-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214
-smp 1 -nographic -nodefaults -chardev
socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline
-no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev pipe,id=channel0,path=/tmp/guestfwd
-net user,guestfwd=tcp:10.0.2.1:4600-chardev:channel0 -usb
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214
-smp 1 -nographic -nodefaults -chardev
socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline
-no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev pipe,id=channel0,path=/tmp/guestfwd
-netdev user,guestfwd=tcp:10.0.2.1:4600,chardev=channel0,id=user-channel0 -usb
--
1.6.5.2