summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@src.gnome.org>2008-09-15 14:48:41 +0000
committerTomas Bzatek <tbzatek@src.gnome.org>2008-09-15 14:48:41 +0000
commit77e270ed06726e115faf80243fc5c0e2fa00e165 (patch)
tree81f2e075fc2c604c068b24d8bb45f3f3399fdb89
parent150c3d06b9ac7e49a0209194dc6533afc4c4c069 (diff)
downloadgvfs-77e270ed06726e115faf80243fc5c0e2fa00e165.tar.gz
Revert commit #1772. Set the information on the mount spec from the original URI.
svn path=/branches/gnome-2-24/; revision=1980
-rw-r--r--ChangeLog6
-rw-r--r--daemon/gvfsbackendsmb.c42
2 files changed, 29 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index e8fb18f7..664f319b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-09-15 Tomas Bzatek <tbzatek@redhat.com>
+
+ * daemon/gvfsbackendsmb.c:
+ Revert commit #1772.
+ Set the information on the mount spec from the original URI
+
2008-09-15 Christian Kellner <gicmo@gnome.org>
* client/gdaemonfile.c:
diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c
index 7b5204e4..6eff57a9 100644
--- a/daemon/gvfsbackendsmb.c
+++ b/daemon/gvfsbackendsmb.c
@@ -515,6 +515,29 @@ do_mount (GVfsBackend *backend,
op_backend->smb_context = smb_context;
+ /* Set the mountspec according to original uri, no matter whether user changes
+ credentials during mount loop. Nautilus and other gio clients depend
+ on correct mountspec, setting it to real (different) credentials would
+ lead to G_IO_ERROR_NOT_MOUNTED errors
+ */
+
+ /* Translators: This is "<sharename> on <servername>" and is used as name for an SMB share */
+ display_name = g_strdup_printf (_("%s on %s"), op_backend->share, op_backend->server);
+ g_vfs_backend_set_display_name (backend, display_name);
+ g_free (display_name);
+ g_vfs_backend_set_icon_name (backend, "folder-remote");
+
+ smb_mount_spec = g_mount_spec_new ("smb-share");
+ g_mount_spec_set (smb_mount_spec, "share", op_backend->share);
+ g_mount_spec_set (smb_mount_spec, "server", op_backend->server);
+ if (op_backend->user)
+ g_mount_spec_set (smb_mount_spec, "user", op_backend->user);
+ if (op_backend->domain)
+ g_mount_spec_set (smb_mount_spec, "domain", op_backend->domain);
+
+ g_vfs_backend_set_mount_spec (backend, smb_mount_spec);
+ g_mount_spec_unref (smb_mount_spec);
+
uri = create_smb_uri (op_backend->server, op_backend->share, NULL);
op_backend->mount_source = mount_source;
@@ -553,25 +576,6 @@ do_mount (GVfsBackend *backend,
/* Mount was successful */
- /* Translators: This is "<sharename> on <servername>" and is used as name for an SMB share */
- display_name = g_strdup_printf (_("%s on %s"), op_backend->share, op_backend->server);
- g_vfs_backend_set_display_name (backend, display_name);
- g_free (display_name);
- g_vfs_backend_set_icon_name (backend, "folder-remote");
-
- smb_mount_spec = g_mount_spec_new ("smb-share");
- g_mount_spec_set (smb_mount_spec, "share", op_backend->share);
- g_mount_spec_set (smb_mount_spec, "server", op_backend->server);
- if (op_backend->last_user && strlen(op_backend->last_user) > 0)
- {
- g_mount_spec_set (smb_mount_spec, "user", op_backend->last_user);
- if (op_backend->last_domain)
- g_mount_spec_set (smb_mount_spec, "domain", op_backend->last_domain);
- }
-
- g_vfs_backend_set_mount_spec (backend, smb_mount_spec);
- g_mount_spec_unref (smb_mount_spec);
-
g_vfs_keyring_save_password (op_backend->last_user,
op_backend->server,
op_backend->last_domain,