[PATCHv3 virt-viewer 05/10] spice: enable/disable share folder

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Connect/disconnect webdav channel to enable or disable sharing folder
---
 src/virt-viewer-session-spice.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c
index 4414212..8d60335 100644
--- a/src/virt-viewer-session-spice.c
+++ b/src/virt-viewer-session-spice.c
@@ -961,6 +961,30 @@ name_changed(GObject *gobject G_GNUC_UNUSED,
     g_free(name);
 }
 
+static void
+update_share_folder(VirtViewerSessionSpice *self)
+{
+    gboolean share;
+    SpiceSession *session = self->priv->session;
+
+    g_object_get(self, "share-folder", &share, NULL);
+
+    GList *l, *channels = spice_session_get_channels(session);
+    for (l = channels; l != NULL; l = l->next) {
+        SpiceChannel *channel = l->data;
+
+        if (!SPICE_IS_WEBDAV_CHANNEL(channel))
+            continue;
+
+        if (share)
+            spice_channel_connect(channel);
+        else
+            spice_channel_disconnect(channel, SPICE_CHANNEL_NONE);
+    }
+
+    g_list_free(channels);
+}
+
 VirtViewerSession *
 virt_viewer_session_spice_new(VirtViewerApp *app, GtkWindow *main_window)
 {
@@ -980,6 +1004,9 @@ virt_viewer_session_spice_new(VirtViewerApp *app, GtkWindow *main_window)
                                       G_CALLBACK(uuid_changed), self, 0);
     virt_viewer_signal_connect_object(self->priv->session, "notify::name",
                                       G_CALLBACK(name_changed), self, 0);
+    virt_viewer_signal_connect_object(self, "notify::share-folder",
+                                      G_CALLBACK(update_share_folder), self,
+                                      G_CONNECT_SWAPPED);
 
     g_object_bind_property(self->priv->session, "shared-dir",
                            self, "shared-folder",
-- 
2.1.0

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list




[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux