]> xenbits.xensource.com Git - libvirt.git/commitdiff
Convert guestfwd to -device, and add -sdl explicit args
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 14 Dec 2009 19:47:47 +0000 (19:47 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 18 Jan 2010 13:55:57 +0000 (13:55 +0000)
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
tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args

index d3b19529b98c1f94f3daf150f1d2a14626f74520..316aa38d8c6471c96b5332041e24bcb5dc10cf19 100644 (file)
@@ -3284,9 +3284,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;
             }
 
@@ -3302,8 +3303,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);
 
@@ -3312,7 +3314,6 @@ int qemudBuildCommandLine(virConnectPtr conn,
                 goto no_memory;
             }
 
-            ADD_ARG_LIT("-net");
             ADD_ARG(virBufferContentAndReset(&buf));
         }
     }
index c3148dfe40190c0c8fb12bdb4eb7345682e09088..e93e9349e3e68a39ff496333acca117e495159d1 100644 (file)
@@ -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