From 4f6c5e7811b33784811591fc4bd3b3dca833e0fd Mon Sep 17 00:00:00 2001 From: Slava Zanko Date: Thu, 5 Nov 2009 13:35:38 +0200 Subject: [PATCH] Ticket #1708: ftp permissions Some FTP-servers don't have chmon support (or don't able to change permissions in some cases). This commit will add "ignore_ftp_chattr_errors" section into config file. Now default behavior: ignore FTP errors related to chmod operations. Signed-off-by: Slava Zanko --- vfs/ftpfs.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/vfs/ftpfs.c b/vfs/ftpfs.c index 846890a40..9917fa8aa 100644 --- a/vfs/ftpfs.c +++ b/vfs/ftpfs.c @@ -89,6 +89,7 @@ What to do with this? #include "../src/main.h" /* print_vfs_message */ #include "../src/history.h" #include "../src/setup.h" /* for load_anon_passwd */ +#include "../src/mcconfig/mcconfig.h" #include "utilvfs.h" #include "xdirentry.h" @@ -1655,9 +1656,18 @@ ftpfs_init_passwd(void) static int ftpfs_chmod (struct vfs_class *me, const char *path, int mode) { char buf[BUF_SMALL]; + int ret; g_snprintf(buf, sizeof(buf), "SITE CHMOD %4.4o /%%s", mode & 07777); - return ftpfs_send_command(me, path, buf, OPT_FLUSH); + + ret = ftpfs_send_command(me, path, buf, OPT_FLUSH); + + if ( mc_config_get_bool (mc_main_config, CONFIG_APP_SECTION, + "ignore_ftp_chattr_errors", TRUE)) { + return 0; + } + + return ret; } static int ftpfs_chown (struct vfs_class *me, const char *path, int owner, int group)