[libvirt] [Patch]: spice agent-mouse support

Zhou Peng ailvpeng25 at gmail.com
Thu Mar 1 03:54:30 UTC 2012


Signed-off-by: Zhou Peng <zhoupeng at nfs.iscas.ac.cn>

spice agent-mouse support

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f9654f1..79d5ac9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -852,6 +852,7 @@ void virDomainGraphicsDefFree(virDomainGraphicsDefPtr def)
         break;

     case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
+        VIR_FREE(def->data.spice.agentmouse);
         VIR_FREE(def->data.spice.keymap);
         virDomainGraphicsAuthDefClear(&def->data.spice.auth);
         break;
@@ -5543,6 +5544,8 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
             VIR_FREE(autoport);
         }

+        def->data.spice.agentmouse = virXMLPropString(node, "agentmouse");
+
         def->data.spice.keymap = virXMLPropString(node, "keymap");

         if (virDomainGraphicsAuthDefParseXML(node, &def->data.spice.auth,
@@ -11364,6 +11367,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
         if (listenAddr)
             virBufferAsprintf(buf, " listen='%s'", listenAddr);

+        if (def->data.spice.agentmouse)
+            virBufferEscapeString(buf, " agentmouse='%s'",
+                                  def->data.spice.agentmouse);
+
         if (def->data.spice.keymap)
             virBufferEscapeString(buf, " keymap='%s'",
                                   def->data.spice.keymap);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 596be4d..e55995c 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1072,6 +1072,7 @@ struct _virDomainGraphicsDef {
         struct {
             int port;
             int tlsPort;
+            char *agentmouse;
             char *keymap;
             virDomainGraphicsAuthDef auth;
             unsigned int autoport :1;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 01adf0d..531ecbe 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5391,6 +5391,10 @@ qemuBuildCommandLine(virConnectPtr conn,

         VIR_FREE(netAddr);

+        if (def->graphics[0]->data.spice.agentmouse)
+            virBufferAsprintf(&opt, ",agent-mouse=%s",
+                              def->graphics[0]->data.spice.agentmouse);
+
         /* In the password case we set it via monitor command, to avoid
          * making it visible on CLI, so there's no use of password=XXX
          * in this bit of the code */
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.args
b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.args
index 681f7c2..746c116 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.args
@@ -5,5 +5,5 @@ virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0xa -hda \
 /dev/HostVG/QEMUGuest1 -chardev spicevmc,id=charchannel0,name=vdagent -device \
 virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0\
 ,name=com.redhat.spice.0 -usb -spice port=5903,tls-port=5904,addr=127.0.0.1,\
-x509-dir=/etc/pki/libvirt-spice,tls-channel=main -device \
+agent-mouse=off,x509-dir=/etc/pki/libvirt-spice,tls-channel=main -device \
 virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml
b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml
index 6505b55..266a4ed 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc.xml
@@ -23,7 +23,7 @@
     <controller type='virtio-serial' index='1'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
function='0x0'/>
     </controller>
-    <graphics type='spice' port='5903' tlsPort='5904' autoport='no'
listen='127.0.0.1'>
+    <graphics type='spice' port='5903' tlsPort='5904' autoport='no'
listen='127.0.0.1' agentmouse='off'>
       <channel name='main' mode='secure'/>
     </graphics>
     <channel type='spicevmc'>

--
Zhou Peng
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libvirt-spice-agentmouse.diff
Type: text/x-patch
Size: 3915 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120301/28eede6c/attachment-0001.bin>


More information about the libvir-list mailing list