Commit Graph

336 Commits

Author SHA1 Message Date
Yury V. Zaytsev
ada1848268 Fixed passive FTP connection logic
In current implementation few issues were fixed making passive
connection scheme more reliable:

    * If it's IPV4, try PASV first, as some servers and ALGs get
      confused by EPSV, and only then EPSV as a fallback

    * When trying PASV or EPSV, actually try to connect to the provided
      port and if the connection fails, still try the next method

    * PASV and EPSV response parsing code was factored out in separate
      routines for clarity

Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2010-09-15 13:49:02 +02:00
Yury V. Zaytsev
a402ebc981 Ticket #121: Fixed IPV4 FTP connection scheme
* Fixed endianness issue introduced by IPV6 patch, which prevented
      active connections to be established via PORT mechanism.

      FTP server always expects to see the port broken down into bytes
      in network byte order, so the transformation to host byte order is
      only needed when using EPRT.

    * Some IPV4 FTP servers and FTP ALGs / NATs with connection tracking
      become confused when you try to use EPSV or EPRT instead of PASV or
      PORT respectively.

      This commit changes current FTP connection scheme: if we deal with
      an IPV4 host, instead of first trying to use EPRT, first try to
      use PORT and only if it fails try EPRT as a fallback.

Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2010-09-15 13:49:02 +02:00
Andrew Borodin
232ca56501 Ticket #123: fixed types to avoid file size limitation in VFS layer.
Fixed modifiers and removed types recastin in envoronment
variables and messages forming.
Minor code cleanup.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-29 12:57:04 +04:00
Andrew Borodin
da8e14bcbb Define ENABLE_VFS_NET in C code not in M4 one.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-24 09:27:27 +04:00
Andrew Borodin
11c00959f3 Fixup of conditions for networking VFS.
Clean up of code duplicate in configure.ac.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Slava Zanko
12446899f7 Changes for configure and build with samba:
* m4: AC_CONFIG_SUBDIRS() macros should be always called without relation to enable/disable samba support
 * vfs/samba: configure.ac: renamed --with-configdir to --with-smb-configdir
 * vfs/samba: configure.ac: renamed --with-codepagedir to --with-smb-codepagedir

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
9b89d60522 VFS: cleaned up smbfs.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
67d6ebfd16 VFS: fishfs can now be switched off
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
05516fbac8 VFS: ftpfs can now be switched off
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
bc1de7cd78 VFS: extfs can now be switched off
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
6f289617d2 VFS: sfs can now be switched off
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
f33f7a5031 VFS: tarfs can now be switched off
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
19390ab2d7 VFS: cpiofs can now be switched off
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Slava Zanko
f7ac8acd29 Type accuracy in undelfs vfs.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
5df06e7630 VFS: fixups of UNDELFS VFS switch on/off.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Andrew Borodin
7d765e4050 Cleanup of lib/vfs/mc-vfs/Makefile.am file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Andrew Borodin
699ecb5e21 VFS: Type accuracy in netutil.[ch].
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Enrico Weigelt, metux IT service
bd8a2d4c79 VFS: Moved vfs_split_url() function from netutil.c into utilvfs.c.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:50 +04:00
Andrew Borodin
9df2f96e75 Some reorginizing of VFS private and public APIs.
Clean up of remained mcfs support.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:49 +04:00
Andrew Borodin
57281c6e0b Added type for VFS class flags.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-21 16:43:49 +04:00
Ilia Maslakov
0795cc2bc9 Ticket #2267 (fish: resume download)
implemented resuming file downloads (reget) in FISH VFS

Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
2010-07-20 18:31:28 +00:00
Andrew Borodin
17d8107e8d Ticket #171: fixed remained plain int types in VFS.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-07-20 09:26:38 +04:00
Andrew Borodin
6a55c9320e Ticket #2279: mcserver is deprecated.
Removed mcserver and mcfs support.

Reasons:
(1) no longer builds
(2) no one is willing to support it
(3) possibly contains unfixed security holes
(4) makes no sense in view of the availability of FISH

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-17 18:36:54 +04:00
Oswald Buddenhagen
69903712b9 Ticket #2274: Adjust extfs script modes to installed permissions
Some extfs script modes in the repository differ from the ones they get
when installed. This is annoying for those, who hardlink files to the
installed location instead of copying, because git status will show
these files as modified.

Fixing permissions in the repository will resolve this issue.

Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2010-07-12 20:25:38 +02:00
Slava Zanko
41adaf7493 Added missing files for making tarballs
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-07-05 22:40:58 +03:00
Andrew Borodin
8be8851b2a Removed unused vfs_die() function from mcserv.c.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-05 21:35:18 +04:00
Andrew Borodin
63c290fef2 The major number of device wasn't initialized in parsing of 'list' command output.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-05 21:35:18 +04:00
Ilia Maslakov
ce0ac8e66d Applied MC indentation policy.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
2010-07-05 16:49:01 +00:00
Yury V. Zaytsev
8c9ac5ec55 Updated protocol description in README.fish
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
2010-07-05 15:36:14 +00:00
Ilia Maslakov
36d59acf97 Ticket #2242 (improved FISH)
fixed configure.ac
    added lib/vfs/mc-vfs/fish/Makefile.am lib/vfs/mc-vfs/fishdef.h
    moved lib/vfs/mc-vfs/fish/README.fish
    fixed lib/vfs/mc-vfs/Makefile.am
    added external scripts in lib/vfs/mc-vfs/fish/
        * ls - get gile list
        * mkdir - make directory
        * rmdir - remove directory
        * unlink - delete file
        * chown - change owner/group of file
        * chmod - change mode of file
        * mv - move file
        * ln - make symlink
        * hardlink - make hardlink
        * send - copy file to target host
        * append - append file to target host (if exists)
        * get - copy file from target host
        * info - return resalts of scan remote host (have: perl, sed, awk, etc)

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>

fish.c: optimization and code cleanup
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>

optimization of FISH environment variables.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-07-05 15:35:42 +00:00
Andrew Borodin
0cb04aec3b g_strncasecmp() function is deprecated.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-06-08 13:07:11 +04:00
Andrew Borodin
8b4124dfa5 g_strup() function is deprecated. g_ascii_strup() is used instead.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-06-08 13:07:11 +04:00
Andrew Borodin
3ddec0f89d g_strcasecmp() function is deprecated.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-06-08 13:07:11 +04:00
Andrew Borodin
aa0d96bd8b Ticket #1646: removed leading and trailing spaces in i18n resources.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-06-07 21:42:46 +04:00
Andrew Borodin
8657fd5f01 Ticket #2203: VFS: use codepage list loaded from mc.charsets file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-05-28 14:55:16 +04:00
Andrew Borodin
7843203257 mc_ungetlocalcopy(): fixed wrong condition.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-05-16 11:24:50 +04:00
Slava Zanko
8f48bf2aec Fixed errors and warnings in compilation stage.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-05-05 16:24:14 +04:00
Andrew Borodin
873880edc2 vfs_timeout and use_netrc variables were moved to vfs.h file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-05-05 16:24:14 +04:00
Vit Rosin
993d678ed9 Use EXIT_FAILURE symbolic name as return code.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-05-05 16:24:14 +04:00
Andrew Borodin
933aba001d Some optimizatioms in vfs.c.
Avoid some else branches. Type accuracy.

Thanks Vit Rosin for original patch.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-05-05 16:24:14 +04:00
Andrew Borodin
e70db42deb Grammar.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-05-05 16:24:13 +04:00
Andrew Borodin
4cea5be1ac Ticket #2097: clean up before 4.7.2 release.
Split assignments and conditions. Type accuracy. Minor optimization.

Thanks Vit Rosin for original patch.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-05-05 16:23:51 +04:00
Slava Zanko
3a1e0966ae Final Indentation of all touched files
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-05-04 17:34:21 +03:00
Enrico Weigelt, metux IT service
303833d590 Ticket #1897: Build breaks on ignored return values
Changes into lib directory

 * samba: handling result of system() call
 * rpc: handling write errors
 * ftpfs: ignoring result of fwrite() on logfile (make compiler happy ;-))
 * fish: proper handling of file io calls
 * ignoring result of fwrite() on logfile (make compiler happy ;-))
 * lib/util.c: handling fwrite() call errors in mc_util_write_backup_content()
 * lib/utilunix.c:
  * handling possible error on dup() in close_error_pipe()
  * handling possible error on getcwd() in mc_realpath()

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-05-04 17:34:20 +03:00
Andrew Filonov
d9ebcebdc1 Another side of this bug, missed before
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-04-30 10:49:16 +03:00
Andrew Filonov
fc6cf6bf3f Ticket #2122: Y2k bug in uzip vfs
Newest version of unzip returns year of file with 4 digits.
But regexp in uzip checks only 2 digits.

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-04-30 10:49:16 +03:00
David Sterba
2a465cb8b5 Ticket #2149: patches adding a single line are not shown correctly by patchfs.
The problem:

$ cat < test.diff
--- a/foo
+++ b/foo
@@ -0,0 +1 @@
+bar

$ mcview test.diff#patchfs/a/foo.diff
--- a/foo
+++ b/foo

'+bar' line is not shown.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-04-25 10:07:49 +04:00
Artem S. Tashkinov
07de6670ed Ticket #2050: extfs/urar: disable user/system configuration for list and copyout operations.
My system wide .rarrc contains these switches

switches= -m5 -mdG -r -s -t -ol -tl

So whenever you list the contents of any archive or copy a file out of
it, RAR/UNRAR will traverse *all* sub directories (note -r, recursive
switch) in a current directory trying to find *all* archives with the
same name. So, the net result might be that unrar/rar will extract
the wrong file and spend a lot of time trying to find archives with
the same name.

That's why I strongly suggest disabling user/system configuration
for archive list and copyout operations (note the added -cfg switch).

I have contacted Eugene Roshal and he said that he won't disable -r switch
for extract and archive list operations, so, we can only fix this problem
on our side.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-04-22 10:18:46 +04:00
Artem S. Tashkinov
8bdd7bc764 Ticket #2049: extfs/urar doesn't correctly shows localized filenames in RAR archives.
There's no need to export LC_ALL.

Signee-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-04-20 16:56:41 +04:00
Andrew Borodin
58909eb708 Ticlet #1909: fix of extfs_read_archive() function.
Fixed bug introduced in ad9c1daad8 commit:
incorrect handling of "." and ".." directories within atchives.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-04-03 11:10:29 +04:00
Andrew Borodin
5b68413e62 Applied MC indentation policy.
Applied MC indentation policy to all files modified in this branch
with some simple manual modifications.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-03-30 16:21:22 +04:00
Vit Rosin
07a7f446b0 Ticket #2108: Fixed memory leak in fish_linear_start() function.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-03-30 16:21:22 +04:00
Andrew Borodin
3c88948c9d Fixed memory leak in mc_closedir().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-03-30 16:21:21 +04:00
Andrew Borodin
f547d149ba Fixed memory leak in vfs_free_handle().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-03-30 16:21:21 +04:00
Andrew Borodin
407d1f38f5 Fixed memory leak in vfs_s_getlocalcopy().
Thanks Vit Rosin for the original patch.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-03-30 16:21:21 +04:00
Andrew Borodin
68d7a77210 Fixed of GSList item deallocation.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-03-05 17:29:28 +03:00
Andrew Borodin
34d74f09b1 Ticket #1909: don't interpret trailing '+' as a plugin name.
If EXTFS plugin doesn't require a file, that file name must
be finished with '+': for example, rpms+. But trailing '+'
actually is not a part of plugin name, it is an plugin attrubute.
But in the current time trailing '+' must be used in VFS command:

cd #rpms+

instead of

cd #rpms

This commit simplifies the usage of some EXTFS plugins.

Also fixed VFS README.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-03-05 17:29:28 +03:00
Slava Zanko
5354d59337 Identation of some source files.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-26 11:26:00 +02:00
Slava Zanko
cd8b350b6d UNDELFS: code cleanup
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-26 10:58:49 +02:00
Slava Zanko
1b75ea27b6 Cleanup of code for master
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-26 10:58:49 +02:00
Andrew Borodin
2cf080d18f Ticket #2058: fixed memory leaks in _vfs_get_cwd() function.
Thanks Vit Rosin to found memory leak in _vfs_memleak() function.
This function was rewritten to fix two memory leaks.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-24 21:44:07 +03:00
Vit Rosin
3770047407 Ticket #2053: fixed memory leak in mc_symlink() function.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-24 12:08:01 +00:00
Andrew Borodin
68ecccb453 Ticket #2018: strcpy() is used for overlaping strings.
memmove() is used for overlaping strings instead of strcpy().

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-18 13:21:25 +00:00
Andrew Borodin
d5d1589665 Replaced hardcoded '/' symbols.
Symbolic names and GLib functions are used instead of
hardcoded '/' symbols.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-15 16:10:02 +00:00
Andrew Borodin
b7d5a5852c 2-level extfs plugin structure.
extfs vfs plugins are read from following places:
1. ~/.mc/extfs.d directory.
2. /usr/libexec/mc/extfs.d direcotry.

Priority of plugins installed in user home directory
is highest. If there are two plugins with same names
exist in user home and system directories, the plugin
from user home is used.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-15 16:10:02 +00:00
Andrew Borodin
ba1d909a7a extfs.ini file is replaced to extfs.d directory.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-15 16:10:02 +00:00
Andrew Borodin
2d43ad1bb4 Reimplemented work with plugin info.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-15 16:10:02 +00:00
Andrew Borodin
6e1c61da0e Optimization of symbolic link loop protection.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-15 16:10:02 +00:00
Andrew Borodin
5b96caa5f0 Optimization of extfs_get_path_from_entry() function.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-15 16:10:02 +00:00
Andrew Borodin
ad9c1daad8 Ticket #1909: easy plugable EXTFS VFS.
Reimplemented EXTFS VFS to be friendly to package-based
systems. Currently, MC requires to edit extfs.ini file
to add new plugin to MC VFS. After upgrade, all changes
to this files will be lost.

To solve that problem, MC configuration system should
support ".d" pattern.

Initial step: refactoring of current extfs code:
cleanup, type accuracy, indentation.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2010-02-15 16:10:02 +00:00
Serhiy Storchaka
d45554ffad urar.in: fixed work with filenames begining with spaces.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-15 13:39:30 +02:00
Serhiy Storchaka
786e6f548e Ticket #2029: Error in supporting rar-archives
Contents of rar-archives with filenames contained / \d\d:\d\d / are not listed correctly.

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-15 13:06:42 +02:00
Slava Zanko
7ea4dfb4ca Ticket #1902: (reopened defect) Possible security risk in mcserv.c
Comment by Oswald Buddenhagen:
first, you decided to ignore my advice about not
obfuscating the code with nonsense-checks, and on top of that you
broke the string comparison (just see what happens when you try a user
named "ftpmaster").

This commit contain changes for respect this critic.

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-05 17:36:19 +02:00
Pavel Vasilyev
b3ea5f8ceb Ticket #1902: Possible security risk in mcserv.c
Look at mcserv.c near 1019
The chroot() call's return value isn't handled - this may a security risk.

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-04 11:12:56 +02:00
Serhiy Storchaka
6191ca0b1f Ticket #1921: Fix lslR VFS
The lslR VFS does not work with ls-lR files created in en_US.UTF-8 locale and with files and directories started with whitespaces.
Followed patch fixes both issues.

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-02-02 22:25:54 +02:00
Andrew Borodin
0bd03e07f5 Ticket #1990: code cleanup before 4.7.0.2 release.
Fixed warings: local variable shadows a global declaration.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
2010-02-02 21:45:05 +03:00
Enrico Weigelt, metux IT service
a295a9df47 Ticket #1925: Fixed conditional compile of mcserver 2010-01-27 21:56:46 +01:00
Rainer Tammer
476145a0f5 patches for AIX with ncurses support
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-27 10:04:38 +02:00
Slava Zanko
e07ba16b3b Moved strecape.[ch] into library
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-26 10:30:25 +02:00
Slava Zanko
25155c311a Move all interface includes from subdirs lib/*/*.h into lib/*.h
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-26 10:30:25 +02:00
Slava Zanko
cd4dbf3a09 Changes for build after moving strutil into lib
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-26 10:30:24 +02:00
Slava Zanko
c764f3b84c Changes for build after moving util.[ch]
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-26 10:30:24 +02:00
Slava Zanko
93dbc46e9c Reorganization of sources. Part 1.
* moved src/global.h into lib/global.h
 * moved glibcompat.[ch] from ./src/ into ./lib/
 * moved fs.h from ./src/ into ./lib/

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-26 10:30:23 +02:00
Slava Zanko
39d5b94cac Reorganized pathes to files in '#include' directives 2010-01-26 10:30:22 +02:00
Slava Zanko
ddb9ada2e8 Changes in sources matched with mass movement of $(srcdir)/src/*/ into $(srcdir)/lib/*/
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-26 10:30:22 +02:00
Slava Zanko
52f6bed7d0 Moved dir $(srcdir)/vfs into $(srcdir)/lib/vfs/mc-vfs
Also, initial support of library directory.

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2010-01-26 10:30:21 +02:00