* 3406_sftp_error_31:
(panel_operate_init_totals): fix directory size calculation.
(panel_operate_init_totals): change the 'source' argument type...
sftpfs: handle file operation errors.
(sftpfs_close_file): return actual result of sftp file close operation.
(sftpfs_waitsocket): refactor and use it for file and directory operations.
Clarify usage of sftpfs_internal_stat() return value.
sftpfs: refactoring: move initialization of sftp stat operations to separate function.
sftpfs: refactoring: move initialization of sftp operation to separate function.
(sftpfs_waitsocket): handle socket errors.
sftpfs: refactoring: move handling of socket errors to separate function.
(sftpfs_fstat): use sftpfs_attr_to_stat().
sftpfs: refactoring: move obtaining of stat info from sftp attributes to separate function.
sftpfs: refactoring: move error check to separate function.
Fix sftp error 31 (proto 4 and 2)
sftp handle LIBSSH2_FX_PERMISSION_DENIED as EACCES.
Ticket #3406: sftpfs: fix -31 SFTP Protocol Error when transferring file via SFTP Link.
When libssh2_sftp_stat_ex(LIBSSH2_SFTP_STAT|LIBSSH2_SFTP_LSTAT) returns with
LIBSSH2_ERROR_SFTP_PROTOCOL (-31) and LIBSSH2_FX_PERMISSION_DENIED (3)
handle this error case like local stat/lstat() returns -EACCES.
Signed-off-by: Andreas Mohr <and@gmx.li>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Initial commit: extend error message with sftp session error.
When LIBSSH2_ERROR_SFTP_PROTOCOL (-31) occurs extend error message
with sftp last error for better failure tracking.
With #3269 patch further sftp protocol error message now looks like
SFTP Protocol Error 3 (-31).
Currently I have no nice solution for print relevant called libssh2 function too
I don't want pollute _to_gliberror() with contant strings all over.
sftp session error 3 means (file) permission denied.
From libssh2-1.5.0/include/libssh2_sftp.h
Signed-off-by: Andreas Mohr <and@gmx.li>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Before the rewrite e7ed071be7, the files
`INSTALL`, `UPGRADE`, and `REBUILD` were just text files with fixed
length of 39 characters. After the rewrite, the corresponding `rpm`
commands (of variable length) have been added.
If one of these files is being opened with the internal viewer, only the
first 39 characters (hardcoded in `mcrpmfs_list()`) are shown, e.g.
`INSTALL` (before the previous commit):
# Run this script to install this RPM p
The word 'script' was added inconsistently (compare with `UPGRADE` and
`REBUILD`) and can be removed. The `rpm` commands can be also removed:
they may fail to work if there is a whitespace in the path, so they
cannot always be simply copy&pasted; it's is still possible to "run" the
script files with Enter.
Signed-off-by: Anatoly Borodin <anatoly.borodin@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* 3148_achown_mouse:
achown: add mouse support for permission buttons.
achown: use Space key to invert current permission flag.
(advanced_chown_callback): button is already focused, don't focus it again.
achown: handle some keys in permission button callback.
achown: add callback for permission buttons
achown: clarify text positions.
achown: clarify location of user and group listbox window.
Ticket #3148: add mouse support in 'Advanced chown' window.
Initial step: apply callback to User and Group buttons
to show user and group list respectively using mouse.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* 3850_chmod_chown_abort:
Implement cancel of advanced chown of many files.
Implement cancel of chown of many files.
chmod: some optimization.
Implement cancel of chmod of many files.
Ticket #3850: implement cancel of chmod/chown/achown of many files.
Implement error message with follow buttons:
"Ignore" -- ignore current error;
"Ignore all" -- ignore current error, try chmod/chown of other selected
files, and ignore all following errors;
"Retry" -- retry chmod/chown operation;
"Cancel" -- cancel chmod/chown operation immediately.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Implement error message with follow buttons:
"Ignore" -- ignore current error;
"Ignore all" -- ignore current error, try chown of other selected files,
and ignore all following errors;
"Retry" -- retry chown operation;
"Cancel" -- cancel chown operation immediately.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
What steps will reproduce the problem?
1. Selected many files (12000 in my case).
2. Ctrl+x c (chmod) - changed mode to desired one.
3. MC started to change file modes but failed, it shows error popup
"Cannot chmod ... Operation not permitted (1)" for every file and waits
for a keypress.
MC shows error for every file in a list (12000 times), there is no
chance to cancel the whole operation, only to press any key 12000 times
or to kill MC.
The solution: implement error message with follow buttons:
"Ignore" -- ignore current error;
"Ignore all" -- ignore current error, try chmod of other selected files,
and ignore all following errors;
"Retry" -- retry chmod operation;
"Cancel" -- cancel chmod operation immediately.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
https://bugs.gentoo.org/527118
When ncurses library is built with --with-termlib option
the resulting installation contains two libraries:
/lib64/libncurses.so.6
/lib64/libncursesw.so.6
/lib64/libtinfo.so.6
/lib64/libtinfow.so.6
As a result mc build fails as:
$ ./configure --with-screen=ncurses
$ make
CCLD mc
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld:
./.libs/libinternal.a(tty-ncurses.o): undefined reference to symbol 'meta'
/lib64/libtinfow.so.6: error adding symbols: DSO missing from command line
Patch: https://gitweb.gentoo.org/repo/gentoo.git/tree/app-misc/mc/files/mc-4.8.13-tinfo.patch
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>