summaryrefslogtreecommitdiff
path: root/daemon/gvfsbackendftp.c
diff options
context:
space:
mode:
authorRoss Lagerwall <rosslagerwall@gmail.com>2014-07-16 22:46:32 +0100
committerRoss Lagerwall <rosslagerwall@gmail.com>2014-07-17 17:45:15 +0100
commitf1dbbb14162fe458b1f374ef888ffab9e15bc1ae (patch)
tree59f4a12b44088a00ba68400002dfd28a8c323487 /daemon/gvfsbackendftp.c
parent198873c067452adad337155be84d17c616d22ed5 (diff)
downloadgvfs-f1dbbb14162fe458b1f374ef888ffab9e15bc1ae.tar.gz
ftp: Only send permission bits for SITE CHMOD
Some ftp servers give an error if more bits than just the permission bits are sent for SITE CHMOD so only send the permission bits. https://bugzilla.gnome.org/show_bug.cgi?id=733281
Diffstat (limited to 'daemon/gvfsbackendftp.c')
-rw-r--r--daemon/gvfsbackendftp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/daemon/gvfsbackendftp.c b/daemon/gvfsbackendftp.c
index 5e1693a4..fd940df7 100644
--- a/daemon/gvfsbackendftp.c
+++ b/daemon/gvfsbackendftp.c
@@ -29,6 +29,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
#include <glib/gi18n.h>
#include <gio/gio.h>
@@ -1144,7 +1147,7 @@ do_set_attribute (GVfsBackend *backend,
if (g_vfs_ftp_task_send (&task,
0,
"SITE CHMOD %04o %s",
- mode,
+ mode & (S_IRWXU | S_IRWXG | S_IRWXO),
g_vfs_ftp_file_get_ftp_path (file)))
{
g_vfs_ftp_dir_cache_purge_file (ftp->dir_cache, file);