diff options
author | Christian Kellner <gicmo@gnome.org> | 2008-01-17 19:17:37 +0000 |
---|---|---|
committer | Christian Kellner <gicmo@src.gnome.org> | 2008-01-17 19:17:37 +0000 |
commit | 45aaa4ee822956140f3acabc548792f389e584b3 (patch) | |
tree | 4db3828afc33c7592c517f2fd2a3650a4e734f7f | |
parent | 9ffa2307efdf372ecb10aed76807661ff3a56963 (diff) | |
download | gvfs-45aaa4ee822956140f3acabc548792f389e584b3.tar.gz |
Disconnect signal handler, since the data struct we pass into the signal
2008-01-17 Christian Kellner <gicmo@gnome.org>
* daemon/gvfsbackenddav.c:
Disconnect signal handler, since the data struct we pass
into the signal handler will be invalid after the mount
is finished.
svn path=/trunk/; revision=1147
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | daemon/gvfsbackenddav.c | 8 |
2 files changed, 13 insertions, 2 deletions
@@ -1,5 +1,12 @@ 2008-01-17 Christian Kellner <gicmo@gnome.org> + * daemon/gvfsbackenddav.c: + Disconnect signal handler, since the data struct we pass + into the signal handler will be invalid after the mount + is finished. + +2008-01-17 Christian Kellner <gicmo@gnome.org> + * common/gmountsource.c: * common/gmountsource.h: Make g_mount_source_ask_password_async () public and add diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c index 8e756fbb..3b963a52 100644 --- a/daemon/gvfsbackenddav.c +++ b/daemon/gvfsbackenddav.c @@ -485,6 +485,8 @@ create_propfind_request (GFileAttributeMatcher *matcher, gulong *size) typedef struct _MountOpData { + gulong signal_id; + SoupSession *session; GMountSource *mount_source; @@ -710,6 +712,8 @@ discover_mount_root_ready (SoupSession *session, g_vfs_backend_set_mount_spec (G_VFS_BACKEND (backend), mount_spec); g_mount_spec_unref (mount_spec); + g_signal_handler_disconnect (session, data->signal_id); + g_print ("- discover_mount_root_ready success: %s \n", mount_base->path); g_vfs_job_succeeded (G_VFS_JOB (job)); } @@ -776,8 +780,8 @@ try_mount (GVfsBackend *backend, data->mount_source = g_object_ref (mount_source); data->username = g_strdup (user); - g_signal_connect (session, "authenticate", - G_CALLBACK (soup_authenticate), data); + data->signal_id = g_signal_connect (session, "authenticate", + G_CALLBACK (soup_authenticate), data); g_vfs_job_set_backend_data (G_VFS_JOB (job), data, mount_op_data_free); |