----- Original Message ----- > On Sat, Feb 21, 2015 at 01:40:16AM +0100, Marc-André Lureau wrote: > > Keep the server property in sync with the session properties > > --- > > gtk/spice-session.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/gtk/spice-session.c b/gtk/spice-session.c > > index 63a455d..e785ceb 100644 > > --- a/gtk/spice-session.c > > +++ b/gtk/spice-session.c > > @@ -2650,6 +2650,13 @@ PhodavServer* > > spice_session_get_webdav_server(SpiceSession *session) > > goto end; > > > > priv->webdav = phodav_server_new(shared_dir); > > + g_object_bind_property(session, "share-dir-ro", > > + priv->webdav, "read-only", > > + G_BINDING_SYNC_CREATE|G_BINDING_BIDIRECTIONAL); > > + g_object_bind_property(session, "shared-dir", > > + priv->webdav, "root", > > + G_BINDING_SYNC_CREATE|G_BINDING_BIDIRECTIONAL); > > + > > ACK, but I believe you'll need something like the phodav patch below > (this is untested, so even what I describe in the commit log could be > totally wrong). There is a bugzilla for phodav, please use it: https://bugzilla.gnome.org/enter_bug.cgi?product=phodav thanks > > From 7025eedb519f075bbfd6c8881d23927a99ec7cb9 Mon Sep 17 00:00:00 2001 > From: Christophe Fergeau <cfergeau@xxxxxxxxxx> > Date: Mon, 23 Feb 2015 11:21:48 +0100 > Subject: [PATCH] Fix leaks on dynamic updates of PhodavServer::root > > When changing PhodavServer::root to a new value, update_root_handler() > will get called to make the server handle the new root path. However, > the old handler for the old path never gets removed, causing > PhodavServer to leak resources, and to manage both the old and new > paths. > --- > libphodav/phodav-server.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/libphodav/phodav-server.c b/libphodav/phodav-server.c > index 820984d..036b811 100644 > --- a/libphodav/phodav-server.c > +++ b/libphodav/phodav-server.c > @@ -152,10 +152,29 @@ phodav_server_init (PhodavServer *self) > } > > static void > +path_handler_remove (PathHandler *handler) > +{ > + char *path; > + > + if (handler == NULL) > + return; > + > + path = g_file_get_path (handler->file); > + if (path == NULL) > + return; > + > + soup_server_remove_handler (handler->self->server, path); > + g_free(path); > + handler->self->root_handler = NULL; > +} > + > +static void > update_root_handler (PhodavServer *self) > { > PathHandler *handler; > > + path_handler_remove (self->root_handler); > + > if (!self->root || !self->server) > return; > > -- > 2.1.0 > > > > > > end: > > g_mutex_unlock(&mutex); > > -- > > 2.1.0 > > > > _______________________________________________ > > Spice-devel mailing list > > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel