]> git.proxmox.com Git - qemu.git/commitdiff
spice-chardev: listen to frontend guest open / close
authorHans de Goede <hdegoede@redhat.com>
Thu, 24 Mar 2011 10:12:04 +0000 (11:12 +0100)
committerAmit Shah <amit.shah@redhat.com>
Thu, 28 Apr 2011 05:32:31 +0000 (11:02 +0530)
Note the vmc_register_interface() in spice_chr_write is left in place
in case someone uses spice-chardev with a frontend which does not have
guest open / close notification.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
spice-qemu-char.c

index 517f337c437cd8899e9a2bcf36c9e2888f982833..fa15a71e148ed1e92fd622ee3e8a0a40143141d4 100644 (file)
@@ -131,6 +131,18 @@ static void spice_chr_close(struct CharDriverState *chr)
     qemu_free(s);
 }
 
+static void spice_chr_guest_open(struct CharDriverState *chr)
+{
+    SpiceCharDriver *s = chr->opaque;
+    vmc_register_interface(s);
+}
+
+static void spice_chr_guest_close(struct CharDriverState *chr)
+{
+    SpiceCharDriver *s = chr->opaque;
+    vmc_unregister_interface(s);
+}
+
 static void print_allowed_subtypes(void)
 {
     const char** psubtype;
@@ -183,6 +195,8 @@ CharDriverState *qemu_chr_open_spice(QemuOpts *opts)
     chr->opaque = s;
     chr->chr_write = spice_chr_write;
     chr->chr_close = spice_chr_close;
+    chr->chr_guest_open = spice_chr_guest_open;
+    chr->chr_guest_close = spice_chr_guest_close;
 
     qemu_chr_generic_open(chr);