2000-05-23 Andrew V. Samoilov * vfs.c (mc_[un]def_getlocalcopy): better error handling on writing 2000-05-18 Andrew V. Samoilov * ftpfs.c: (my_get_host_and_username) space between macro name and parentheses removed 2000-05-15 Andrew V. Samoilov * tar.c (read_header): memory leaking for empty symlink's names fixed * utilvfs.c (vfs_split_url): *host is not assigned if host is null * ftpfs.c (login_server): new features of vfs_split_url () used, my_get_host_and_username became macro * vfs.c (mc_opendir, mc_chdir): unneeded calls to concat_dir_and_file removed (vfs_canon removes trailing '/') * sfs.c (vfmake, redirect): allocated memory realeased on errors 2000-05-10 Pavel Machek * direntry.c (vfs_s_new_inode): Do not leave st_nlink uninitialized. 2000-05-08 Valery Kornienkov vfs/extfs/uha.in: add HSC type archives 2000-05-01 Pavel Machek * direntry.c (vfs_s_inode_from_path): fix for stating / directory done properly * vfs.c: == 0 is right test of eof. 2000-04-28 Pavel Machek * direntry.c (vfs_s_internal_stat): added ugly special case for / of archive to always exist. It seems I'm hiding some underlying problem :-(. 2000-04-26 Andrew V. Samoilov * direntry.c (vfs_s_find_entry_tree): segfault fixed when root is NULL (vfs_s_new_inode, vfs_s_new_entry): g_new replaced by g_new0 * ftpfs.c (dir_load): ent->name is free()d for "." and ".." (ftpfs_directory_timeout): default value changed to 900 (netrc_next): "const char * const keywords" go to rodata and is shared 2000-04-16 Pavel Machek * vfs.c (vfs_type): FL_NO_LOCALHASH for prevention of obscure deadlocks with podfuk * direntry.c: fix behaviour when stating / directory of ftp archive 2000-04-15 Timur Bakeyev * ftpfs.c (netrc_next): "const char * keywords" is pretty nice. * ftpfs.c (dir_load): At last, found place, that broke handling directories with spaces in name. Problem was in prepending "/" to "." for current directory. Which was, obviously, wrong. Hacked to make just "LIST -la ." instead. 2000-04-12 Pavel Machek * extfs/lslR.in: Patch by tnovak@ipex.cz: allow spaces in filenames 2000-04-10 Pavel Machek * extfs/audio: Added a way to browse audio CDs conviently * undelfs.c: use NULLs instead of 0s when you assign to pointers! 2000-04-05 Andrew V. Samoilov * utilfs.c (vfs_split_url): don't assign *pass if pass is NULL * fish.c (archive_open, archive_same): memory allocated by vfs_split_url () must be released after use, don't strdup() values allocated by vfs_split_url () and NULL passed to vfs_split_url () when password value is unused * ftpfs.c (archive_open, archive_same): ditto plus same for ftpfs_get_proxy_host_and_port () 2000-04-06 Timur Bakeyev * ftpfs.c (netrc_next): Turned strange "const char * const keywords" into more alike "const char const * keywords". Still, think, it's too strict. * smbfs.c: Add #define BOOL_DEFINED before inclusion of samba headers. Libncurses(or slang?) defines BOOL and that can cause problems. (In fact, I can't find references to that const, but sure, I hade reason to do that:) * util-alone.h: Declare load_anon_passwd() to avoid warnings. 2000-03-31 Andrew V. Samoilov * vfs.c (mc_def_getlocalcopy): free() replaced by g_free() to prevent crushes with mad, thanks to Timur I. Bakeyev * fish.c (linear_start): name wasn't freed after usage * cpio.c (cpio_ungetlocalcopy): return type changed to int, function return 0 now * direntry.c (vfs_s_close, vfs_s_resolve_symlink): memory, allocated by vfs_s_fullpath () is freed after use * ftpfs.c (linear_start): ditto; 2000-04-03 Pavel Machek * ftpfs.c (send_ftp_command): return from vfs_s_get_path_mangle is not strdupped(), so it must not be g_free'd. 2000-03-29 Pavel Machek * fish.c: Patch by : make fish work better with files files like "this is sentence" 2000-03-28 Pavel Machek * extfs/*rpm: Patch by : set locale to C so that rpm does not confuse us 2000-03-06 Pavel Machek Patch by Andrew V. Samoilov * vfs.c (vfs_parse_ls_lga): don't hard code st_ino and st_dev to 0's, these variables must be assigned in vfs_s_new_inode () or extfs layer, so ftpfs subdirectories now can be copied. 2000-02-25 Pavel Machek Patch by Andrew V. Samoilov * vfs.[ch] (vfs_canon, mc_open, vfs_file_is_local, mc_(un)?getlocalcopy): added const qualifier (mc_def_getlocalcopy): tempnam() returns malloc()ed buffer, so, free() it, not g_free(); (vfs_canon): prepend filename by cwd when tilde '~' cannot be expanded; 2000-02-23 Pavel Machek * cpio.c: cpio.h is missing, so don't try to include it. (It is not needed, anyway. Strange.) * Makefile.in (NONETFILES): cpio added to compilation list 2000-02-23 Norbert Warmuth * ftpfs.c: Definition of PORT changed in the middle of ftpfs.c with unexpected side effects (only when HSC_PROXY was defined). Introduce HSC_PROXY_PORT and FTP_COMMAND_PORT and use where appropriate. (dir_load): Do not hard code the directory cache timeout to 10 seconds. Instead use the setting from Options/Virtual VFS ... * fish.c (file_store): honour changed semantics for return value (on error -1 is expected). * ftpfs.c (file_store): dito 2000-02-22 Pavel Machek * cpio.c: added. Thanx to Jan Hudec , who wrote it using code from tarfs. 2000-02-21 Pavel Machek * extfs/uzip.in (nam): y2k fixes (workarounds) by christian.gennerat@vz.cit.alcatel.fr 2000-02-04 Pavel Machek * ftpfs.c (ftpfs_unlink, *): prepend / so that it actually works 2000-02-03 Andrew V. Samoilov * xdirentry.h: added prototype for vfs_s_retrieve_file 2000-01-31 Andrew V. Samoilov * direntry.c: (vfs_s_resolve_symlink, vfs_s_readlink) fixed segfaults for broken symlinks like 2001 -> The Space Oddysea. 2000-01-24 Pavel Machek * ftpfs.c: vfs semantics has some problems with ~s. What will happen if we just don't go to home directory of user? (We used to have /#ftp:hobit/~/ mean home directory of anonymous at hobit. Thats pretty broken.) * direntry.c (vfs_s_find_entry_linear): don't sleep after showing message * ftpfs.c: cosmetic fixes by Andrew V. Samoilov 2000-01-18 Pavel Machek * ftpfs.c: cosmetic fixes + killed ugly infinite loop, patch from Andrew V. Samoilov 2000-01-13 Pavel Machek * extfs.c (extfs_chdir): removed unneeded statment, plus applied cosmetics fixes from Andrew V. Samoilov 2000-01-02 Martin Bialasinski * extfs/deb.in: Change to the deb vfs. tar has changed, and depending on the version, it saves files as "./filename" or "filename". * From debian: added deba, debd, dpkg, apt script file systems. 1999-12-28 Andrew V. Samoilov * vfs.c (vfs_parse_filedate): don't decode last columns as year 1999-12-21 Pavel Roskin * vfs/vfs.h: use #warning only for gcc. Not all compilers understand it 1999-12-15 Pavel Machek * Merged changes by Andrew V. Samoilov . They are mostly internationalization + fixing stupid bugs of mine 1999-12-08 Pavel Machek * ftpfs.c: basically replaced ftpfs with new one. Unlike the previous one, this uses new direntry.c layer, so shared_ftp_fish.c can be killed. This is new code, so beware. 1999-11-11 Pavel Machek * shared_ftp_fish.c (s_ungetlocalcopy): need to supply some return value, too. This code is going to be killed, the sooner the better. * *.c (mc_[un]getlocalcopy): we really need some return value, because we can have errors * fish.c: don't use directory expiration, it does not work, use retrieve_file from direntry.c 1999-02-17 Pavel Machek * direntry.c (vfs_s_getlocalcopy): fixed segfault, getlocalcopy's name has to be malloced. 1999-10-07 Miguel de Icaza * ftpfs.c (linear_read): Applied patch from Alexander V. Lukyanov that makes the code compliant to RFC959 1999-08-30 Miguel de Icaza * ftpfs.c (insert_dots): Use g_new here. * shared_ftpfs_fish.c: Style fixes and small fixes 1999-09-22 Bjorn Eriksson * extfs/uzip.in: Better handling of zip-archives that contain files which contain spaces. 1999-09-19 Norbert Warmuth * ftpfs.c (ftpfs_set_debug), vfs.h: added const qualifier. * mcserv.c: removed definition of mad_strconcat which is also in mad.c. 1999-09-17 Federico Mena Quintero * smbfs.c: #define NO_CONFIG_H before including the samba includes; this way it will not re=define HAVE_LIBREADLINE. This situation sucks. Should we change the names of the widget.h history_*() functions? 1999-09-14 Norbert Warmuth * smbfs.c (various places): Store filenames in memory with the unix character set and convert it back to the dos character set when filenames are passed back to the samba server. If samba is configured correctly this will fix the problems with filenames which contain national characters. (bucket_set_authinfo): Set domain, username and password which will be used to log on and authenticate against the samba server and remember this information on a host/share basis. If set use PASSWD to get the password. If already authenticated against the host and share use this information. If already authenticated against host and IPC$ use this information. If neither of the former is true ask the user how to log on. (authinfo_get_authinfo_from_user): New function. Query the user for domain, username and password to use for authentication. (authinfo_free): New function. Free memory in authentication structure. (authinfo_free_all): New function. Free the list used to remember authentication information. (authinfo_compare_host_and_share, authinfo_compare_host): New functions. Helper functions used to search the authentication list. (authinfo_add): New function. Add one authentication entry to the authlist. (authinfo_remove): New function. Remove one entry from the authlist. (free_bucket): Free memory associated with one bucket. (smbfs_get_free_bucket): Initialize the complete connection array with 0. Free the memory allocated for a bucket and initialize the bucket before reusing it. (smbfs_open_link): use new functions to get authentication information (get_stat_info, smbfs_stat): remove unused variables. 1999-08-31 Federico Mena Quintero * extfs/uzip.in: Handle filenames with spaces better. Thanks to Spyridon Papadimitriou for the patch. 1999-08-30 Miguel de Icaza * ftpfs.c (translate_path): Remove static buffer from here. Return a strdupped string now. (send_ftp_command): Release translate_path result here. (open_data_connection): Release translate_path result here. (ftpfs_chdir_internal): Reease it here too. 1999-08-30 Norbert Warmuth * shared_ftp_fish.c (get_line): Fixed off by one error ('\0' might have been written one slot past the supplied character array). * ftpfs.c (resolve_symlink_without_ls_options): Don't dump core on strange symlinks (ls -la doesn't reveal where the symlink points to and ls -lLa doesn't resolve the symlink either) Added protection against recursive symbolic links. 1999-08-19 Norbert Warmuth * smbfs.c: added missing include file (browsing_helper): use g_strdup instead of g_new + pstrcpy (Btw. this is an example why the handholding of smblib gives a false security feeling. pstrcpy limits the number of characters copied and is used with a buffer which is smaler than the hard coded limit in pstrcpy) (loaddir_helper): ditto (server_browsing_helper): ditto (get_remote_stat): fixed memory leaks (smbfs_loaddir): ditto (get_stat_info): ditto (smbfs_stat): ditto (convert_path): rewritten, now it's much cleaner what it does. This rewrite was necessary because gcc -O2 choked on glibc 2.1 systems. In that combination strncat is a macro which expands to strlen and strcat and in vfs/samba/include/includes.h the latter is defined to __ERROR__XX__NEVER_USE_STRCAT___;. 1999-08-18 Norbert Warmuth * direntry.c (vfs_s_getlocalcopy): There's an aditional strdup needed. In rare cases a pointer was freed twice. Pavel Machek pointed this out a while ago but obviously it hasn't been fixed yet. * sfs.c (vfmake): Quote characters with a special meaning to the shell in filenames/-pathes (Fix Bug #1931, VFS will not work if your full path has the space character in it.). 1999-08-17 Kjartan Maraas * fish.c: Fix typo. 1999-08-15 David Martin * vfs.c (vfs_print_stats): Translate vfs stats * shared_ftp_fish.c (s_read, s_lseek): Mark strings for translation * fish.c: Translate messages 1999-08-06 Norbert Warmuth * tar.c (read_header): Don't segfault when a symlink points to the root directory. 1999-08-01 Norbert Warmuth * vfs.c: Don't close a function definition with "};". SunCC from 2.5.1 chokes on the extra semicolon (mc_munmap): Don't dereference function pointer when checking for NULL (this check is supposed to prevent a segfault instead of causing one). This haven't got noticed up to now becaue there's no file system with mmap but without munmap. Tue Jul 6 11:22:40 1999 Timur I. Bakeyev * samba/include/config.h: Removed. Should be generated. Tue Jul 6 11:18:45 1999 Timur I. Bakeyev * Make-mc.in(XCPPFLAGS): Add necessary paths to allow compile sambafs when builddir != srcdir. Removed some junk after not coherent patching. 1999-07-04 Federico Mena Quintero * Make-mc.in (distcopy): Added a bunch of new lists of files for the directories in vfs/samba. Use them in this rule, because plain wildcards will not work right. (SAMBA_DIST_TOPLEVEL): Added configure to the list of distributed files. Added smbfs.[ch] to the list of sources. 1999-07-02 Tuomas J. Lukka * Make-mc.in: $SAMBAFILES -> @SAMBAFILES@ in the rule as well as the dependencies. 1999-06-25 Miguel de Icaza * smbfs.c (get_remote_stat): Change debug level. (get_stat_info): 2 line fixes from Wayne to check the cache properly. WOOOOHOOOO! Works like a charm. 1999-06-14 Wayne Roberts * vfs/smbfs.c: New file. Implements the Samba-based file system. * vfs/vfs.h: Declare vfs_smbfs_ops, vfs_file_is_smb. * vfs/vfs.c (vfs_file_is_smb): implemented. (vfs_init) register smbfs. * vfs/samba: Incorporate SAMBA source code required for smbfs Fri Jun 18 11:49:05 1999 Norbert Warmuth * ftpfs.c (resolve_symlink_with_ls_options): Some ftp servers don't make a difference between "LIST -la" and "LIST -lLa". If we find such a server don't use -lLa when resolving symbolic links. 1999-05-12 Christian GENNERAT * urar.in, uzip.in: patches to use in #urar and #uzip the new features added in mc-4.5.31 (unlink, mkdir, rmdir) 1999-04-30 Pavel Machek * extfs/deb.in (mcdebfs_run): Quote string properly, fix suggested by debian mantainer 1999-04-25 Miguel de Icaza * extfs/uzip.in (nam): Handle new unzips. Fri Apr 23 21:02:32 1999 Norbert Warmuth * ftpfs.c (retrieve_dir): If we don't get any valid directory entry (i.e. not even "." and "..") check whether the directory is empty or not existend (instead of failing with "ftpfs: failed"). 1999-04-23 Pavel Machek * vfs.c (vfs_parse_filemode): fix for solaris which uses 'l' instead of 'S'. (vfs_parse_ls_lga): do not silently ignore parsing errors. Wed Apr 21 21:59:50 1999 Norbert Warmuth * extfs.c (extfs_open): tempnam returns a malloced string, no need to strdup it (various places): use free instead of g_free to free string returned by tempnam. 1999-04-21 Pavel Machek * urar.in, uzip.in: rolled in patches from "christian.gennerat" for better handling of spaces and copyin-feature-addon. 1999-04-18 Miguel de Icaza * extfs.c (get_path_from_entry): Fix a crash here. 1999-04-12 Andrew T. Veliath * extfs.c (extfs_unlink): (extfs_mkdir): (extfs_rmdir): (remove_entry): New functions. (vfs_extfs_ops): Add unlink, mkdir and rmdir functions to table. Add descriptions for these to the extfs README. 1999-04-12 Pavel Machek * Make-mc.in (DISTVFS): try to distribute files needed for building libvfs.so alone (EXTFS_MISC): include uarj and unarj.diff in distribution 1999-04-08 Owen Taylor * extfs/deb.in extfs/ulha.in extfs/ucpio.in: Fix up "TMP RACE" comments so they are at least secure, if not terribly robust. 1999-03-31 Serge Winitzki * added copy_in capability to mtools filesystem 1999-03-30 Federico Mena Quintero * vfs.c (vfs_add_current_stamps): Only do stamping of the panels if they exist. * mcserv.c: #include (get_client): Put `#ifdef __EMX__' around an otherwise-unused variable. * utilvfs.c (vfs_split_url): Fix NULL <-> 0 confusion when comparing characters. * ftpfs.c (retrieve_dir): Removed unused variable dot_dot_found. * extfs.c (extfs_init): Assign `key' to c, not `&key'. Sun Mar 28 23:50:47 1999 Norbert Warmuth * vfs.h (vfs_translate_url): Fixed the macro which is used when compiling without vfs. 1999-03-22 David Martin * ftpfs.c: Internationalize the messages that are displayed as hints. 1999-03-22 Miguel de Icaza * extfs.c (extfs_init): Fix the code here: If the key is empty or only contains a new line, C would be pointing into an invalid location. Mon Mar 22 02:56:23 1999 Timur I. Bakeyev * Makefile-mc.in: s/$(libdir)\/extfs/$(extfsdir)/ Mon Mar 22 02:00:16 1999 Valery Kornienkov * extfs/uha.in: Add support for ha archives. 1999-03-12 Miguel de Icaza * vfs.c (vfs_parse_ls_lga): Handle stupid servers that send n_link set to zero. 1999-03-11 Miguel de Icaza * vfs.h: Make it compile in AIX. Boy do those guys polute the name space. 1999-03-09 Shooby Ban * extfs/extfs.ini: Corrected rpms -> rpms: by Balazs Nagy 1999-03-09 Miguel de Icaza * vfs.c (parse_ls_lga): kill the messages on each error. Tue Feb 16 12:11:04 1999 Paul Sheer * mcserv.c, mcfs.c: mcserv and mcfs exchange st_dev instead of st_rdev. This makes stats on device files useless. Fixing this does not break anything, but adds the ability to copy device files properly. Ideally, both st_dev and st_rdev should be returned for those programs that use the vfs to properly recreate hardlinks. Whose idea was it to only return one of these??? 1999-02-12 Sergey Korshunoff * unlha.in: Fix the problem of having incorrect pathnames when pulling out files from the LHA file. Sat Feb 6 23:44:28 1999 Norbert Warmuth * tar.c (read_header): Treat hardlinks correctly. Mon Feb 1 19:32:12 1999 Norbert Warmuth * ftpfs.c (insert_dots): renamed from insert_dot. We have to insert ".." as well or directories from ftp servers which don't list "." and ".." are displayed with an additional "/". Mon Feb 1 02:55:07 1999 Timur I. Bakeyev * tcputil.c: One more my bug with '\0' -> NULL. Oops.. Mon Feb 1 01:45:08 1999 Timur I. Bakeyev * mcserv.c: If setuid() is avaliable, use it, even, streuid() also present. (BTW, bsdi uses it's own auth system..) Sun Jan 31 20:51:17 1999 Alexander Savelyev * mcserv.c (do_auth): mcserv never auth properly on bsdi. (mc/vfs/mcserv.c do_auth() on bsdi we must use setuid() not setreuid()). * tcputil.c: use correct signal handler (void func(int)) on BSDI Sun Jan 31 20:41:00 1999 Norbert Warmuth * mcserv.c (do_link): Removed duplicate invokation of link. Thanks to Grzegorz Makarewicz for spotting this. Sun Jan 31 20:04:13 1999 Norbert Warmuth * vfs.c (vfs_strip_suffix_from_filename): Whoever replaces every occurance of 0 with NULL should stop this stupidy. And replacing '\0' with NULL is plan wrong!!. Reverted this replacement. * ftpfs.c (load_no_proxy_list): ditto Sun Jan 31 19:57:24 1999 Norbert Warmuth * ftpfs.c (insert_dot): New function. Insert a "." into the linked list. Stat'ing the root directory of a ftpfs fails if the dot is missing. (retrieve_dir): insert "." into the linked list if the ftp server haven't send it. Sun Jan 31 19:50:24 1999 Norbert Warmuth * The following changes make ftpfs work with a remote AmiTCP server are the result of somehow longish EMail debugging session. I don't know any public server of this kind but I was told the combination Unix/Amiga boxes are often used in intranets. * ftpfs.c (translate_path): New function. Translate a Unix path, i.e. MC's internal path representation (e.g. /somedir/somefile) to a path valid for the remote server. Every path transfered to the remote server has to be mangled by this function right prior to sending it. Currently only Amiga ftp servers are handled in a special manner. * ftpfs.c (various places): use translate_path * ftpfs.c (login_server): Assume we have to mangle pathnames if the greatings string from the server contains the word Amiga. If this assumption is wrong I have to find another way to turn on path translation. * ftpfs.c (ftpfs_get_current_directory): Prepend a leading slash if it is missing. MC needs it as seperator between hostname and path in its internal url representation. 1999-01-26 Pavel Machek * vfs.c (vfs_parse_ls_lga): attempt to correctly work against Notwell 4 Wed Jan 27 03:09:48 1999 Timur I. Bakeyev * All around the source: Changed copy_strings() to g_strconcat(). Modi- fy last parameter in concat_dir_and_file() to "" - to prevent stack from disbalancing. 1999-01-25 Federico Mena Quintero * Makefile.am (libvfs_la_SOURCES): Added utilvfs.h. * Make-mc.in (VFSHDRS): Likewise. Sat Jan 23 18:40:19 1999 Timur I. Bakeyev * utilvfs.c (append_path_sep): Removed - concat_dir_and_file(dir, NULL); gives the same effect. 1999-01-21 Federico Mena Quintero * utilvfs.c (append_path_sep): Fixed, it was broken for paths which already have a / at the end. Fri Jan 22 01:41:25 1999 Timur I. Bakeyev * undelfs.c: Found one more unconverted realloc() call. 1999-01-20 Miguel de Icaza * undelfs.c (undelfs_loaddel): Fix Timur's changes. Thu Jan 21 00:58:12 1999 Timur I. Bakeyev * Actually commit all changes :> Tue Jan 19 05:15:49 1999 Timur I. Bakeyev * Converted all occurences of DIR_SEP_CHAR and "/" to PATH_SEP and PATH_SEP_STR. Additionall cleanups of the memory code. * utilvfs.h: Added several defenitions for common sizes for buffers. It seems, most of us experience problems, when inventing size for new buffer. This is much better and portable way to eliminate the problem. 1999-01-18 Miguel de Icaza * vfs.h: The correct thing to use is PATH_SEP and PATH_SEP_STR Sun Jan 17 16:19:48 1999 Timur I. Bakeyev * Converted memory managment to Glib. Now we use g_new()/g_malloc()/ g_strdup()/g_free() routings. Also, copy_strings() replaced by g_strconcat(), and sprintf() by g_snprintf(). * utilvfs.h: New header file. Introduced as a stock header, which keeps all includes in a right order, to avoid order-dependence mistakes. Sun Jan 17 15:49:39 1999 Paul Sheer * direntry.c: vfs_s_find_entry_tree changed to follow symlinks properly. Symlinks are now always followed except for the last part of the filename. vfs_s_resolve_symlink() now converts absolute paths to ../../file notation so that they can be easily resolved within the tree. * tar.c: . and .. are missing from directory entries, making it impossible to resolve links - fixed. 1999-01-12 Miguel de Icaza * vfs.c (mc_get_current_wd): Do not die. Truncate the pathname. 1999-01-10 Miguel de Icaza * sfs.c (redirect): tempnam returns a malloc()ed buffer. Sat Jan 9 19:15:00 1999 Norbert Warmuth * vfs.c (vfs_timeout_handler): Guard from recursive invocation. Sat Jan 9 19:13:28 1999 Norbert Warmuth * sfs.c (sfs_free): Fixed wrong linked list handling (head was lost after the first iteration). (sfs_getid): dito, return value was wrong. Sat Jan 9 22:49:02 1999 Timur I. Bakeyev * vfs.c (parse_ls_lga): Rewrite function to make it more stright. Also, fixed some bugs in parsing (and add new ones:), which diasallowed proper parsing of device major and minor numbers. Some other fixes. Add several new is_*() functions to make code readable. 1999-01-08 Ilya Zakharevich * vfs.h (vfs_strip_suffix_from_filename): Typo fix. Include defines for non-vfs compilation. Fri Jan 8 20:03:36 1999 Andrej Borsenkow * vfs.c (vfs_parse_filedate): I forgot to set got_year in one place (where YY-MM-DD is parsed). Thu Jan 7 06:24:25 1999 Andrej Borsenkow * vfs.c (vfs_parse_filedate): If the date is less than 6 months in the past, it is shown without year. In this case MC assumed the current year which is wrong from Jan to Jun. Thu Jan 7 03:47:35 1999 Timur I. Bakeyev * vfs.c (parse_ls_lga): Fixed Y2K typo pointed by Alex. Thu Dec 31 08:47:15 1998 Norbert Warmuth * sfs.c (sfs_nothingisopen): Assume for now it's always save to free this filesystem and delete temporary files. This needs further investigation. * tar.c: deleted unused empty struct tar_super. Thu Dec 31 08:40:44 1998 Norbert Warmuth * direntry.c: Split fd_usage into fd_usage and ino_usage. fd_usage was used for external and internal reference count. This was wrong because we can free resources taken up by the vfs as soon as the external reference count (now fd_usage) is zero. The internal reference count (ino_usage) mustn't matter because the vfs has to clean up itself in the correct order. Fri Dec 25 21:48:51 1998 Norbert Warmuth * direntry.c (vfs_s_new_inode): Moved initialization of st_ino and st_dev from vfs_s_default_stat. (vfs_s_default_stat): initialize st_ino and st_dev to zero * tar.c (tar_open_archive): Make a new MEDATA->rdev for every new archive. Mon Dec 21 22:55:48 1998 Norbert Warmuth * tar.c: Deleted global variable tar_gzipped_memlimit. Wed Dec 16 06:36:42 1998 Norbert Warmuth * vfs.c (vfs_strip_suffix_from_filename): New function which strips known vfs suffixes from a filename and returns a malloced string which has to be freed. Possible improvement: strip vfs suffix from last path component. * extfs/*: added "umask 077" to every script. Tue Dec 15 16:41:50 1998 Pavel Machek * extfs.c (extfs_open), sfs.c (redirect): create files 0600 and safely w.r.t. symlinks in /tmp Mon Nov 30 23:49:11 1998 Pavel Machek * direntry.c: Hopefully got want_stale_data right... Wed Nov 25 23:54:23 1998 Pavel Machek * vfs.h: use ENETUNREACH if EREMOTEIO error code is not defined, this is neccessary for Solaris and probably others Mon Nov 23 17:39:33 1998 Pavel Machek * vfs.c (vfs_type_from_op): removing unneccessary code Wed Dec 9 12:24:52 1998 Pavel Machek * extfs/rpm: commit fix for files with spaces in name by Marc Merlin (marcsoft@merlins.org) Mon Dec 7 11:04:57 1998 Pavel Machek * fish.c: default to normal ssh (open_archive_int): debugging hack killed 1998-12-02 Raja R Harinath * Makefile.am (EXTRA_DIST): Distribute files that the BUILT_SOURCES depend on. (mad.c, mad.h): Don't use GNU make specific features in rule. (libvfs_la_SOURCES): Update from Make-mc.in. 1998-12-02 Miguel de Icaza * direntry.c (vfs_s_insert_super): This routine does not return anything. 1998-12-02 Sebastian Wilhelmi * fish.c (FISH_OP): changed snprintf to g_snprintf, as glib is used anyway. * xdirentry.h (LINK_NO_FOLLOW): * tar.c (read_header): * direntry.c (vfs_s_resolve_symlink): (vfs_s_inode_from_path): (vfs_s_open): renamed NO_FOLLOW and FOLLOW to LINK_NO_FOLLOW and LINK_FOLLOW resp. to avoid problems on solaris, where FOLLOW and NO_FOLLOW are defined in an enum. * vfs.h (ELAST): define it to 300, if not already defined, thats a bad hack, but what can we do.... Wed Dec 2 14:06:49 KST 1998 Sung-Hyun Nam * direntry.c (vfs_s_new_super): Added the missing return value. Sun Nov 29 02:54:54 1998 Timur I. Bakeyev * vfs.h: (Temporary?) fix to the compiling error: Some of the error codes, defined here are Linux specific and unknown to other systems. Changed to #ifdef's with assigning new codes by means ELAST+offset. Tue 24 Nov 12:43:20 1998 Peter Kleiweg * vfs.c (vfs_parse_ls_lga): ignore trailing + in permission string which indicate a file with extented attributes (ACL) Mon Nov 23 21:19:43 1998 Norbert Warmuth * ftpfs.c (resolve_symlink_with_ls_options): that's resolve_symlinks we used up to release 4.1.35. It uses LIST -lLa to get symlink stats. (resolve_symlink_without_ls_options): that's resolve_symlinks we used in release 4.1.36 and 4.5.[01]. It gets symlink stats from the directory cache fetching directories if necessary. We got some complaints about slower ftpfs in the above releases. Now this methode is no longer the default methode to resolve symbolic links. It is still needed for ftp servers which don't understand the LIST -lLa command. (resolve_symlink): Dispatch between the two methods to resolve symlinks. Sat Nov 21 21:38:08 1998 Pavel Machek * vfs.c (vfs_parse_ls_lga): corrected stupid bug in parse_ls_lga, thanks to Pavel Roskin for reporting * direntry.c (vfs_s_lseek): -1 is invalid filehandle, not 0 * utilvfs.c (vfs_split_url): initialize variables so that we do not return garbage Sat Nov 7 20:19:14 1998 Pavel Machek * vfs.c: Converted g_return_if_fail into vfs_dies(), removed them where unneccessary. I do not see why passing NULL to vfs_add_stamp should be invalid -> removed check. Mon Nov 2 23:09:55 1998 Pavel Machek * direntry.c, xdirentry.h: should be now prepared to handle ftp-like filesystems. This is rather BIG change, altrough it does not look so. I hope I do not break too many things. Mon Nov 16 16:39:39 1998 Pavel Machek * vfs.c (vfs_parse_ls_lga): Report unrecognized lines. Thu Nov 12 11:28:48 1998 Pavel Roskin * extfs/rpm: Fix to display files belonging to users with excessively long usernames 1998-10-30 Miguel de Icaza * fish.c (command): Replace vnsprintf with g_strdup_vprintf. This is both safe and more correct, as there is no limit on the pathname. * ftpfs.c (command): Same as above. * util-alone.c (print_vfs_message): Same as above. Wed Oct 28 17:06:57 1998 Pavel Machek * ftpfs.c: report which directory you are listing, fix behaviour with servers that don't like LIST //. (Nowell) Fix behaviour even with NT. * direntry.c (vfs_s_automake): insert newly generated entry * direntry.c (vfs_s_free_entry): Debugging printf() killed. Mon Oct 26 00:38:30 1998 Norbert Warmuth * Make-mc.in: added xdirentry.h to VFSHDRS Fri Oct 23 12:29:48 1998 Pavel Machek * tar.c (tar_open_archive): do not double-free memory if you can not open archive, better error handling * Makefile.in: add direntry.o to list of NONETFILES so we actually compile * sfs.c, tar.c: remove debugging messages (which really should not escape from my tree) Thu Oct 22 22:24:44 1998 Pavel Machek * README: added. If you are using emacs or hacking libvfs, please read this one. * direntry.{c,h}: new library created, so that same entry/inode code does not have to be copied in every handler. * tar.c: converted to use direntry.c library, which means BIG changes. * ftpfs.c: small updates to make code look nicer Mon Oct 19 19:40:58 1998 Pavel Machek * vfs.h (&more): killed ERRNOR() from vfs.h and put it into files which actually need it. * extfs.c: extfs_current_dir killed - it was unneccessary. * mcfs.c (mcfs_get_path): It is possible for path not to begin with /#mc:, for example if user does /etc/#mc:. (It is not correct, of course). Return error, but do not vfs_die(). Sun Oct 18 23:48:00 1998 Pavel Machek * lib/mc.ext.in: cpio support fixed. It was broken since time we started to do #ext syntax. Sat Oct 17 20:43:20 1998 Pavel Machek * vfs.c (mc_open): die() if open is unsupported. If filesytem does not support open, it is probably stupid typo, so we want bug to be fixed. Thu Oct 22 20:30:28 1998 Norbert Warmuth * ftpfs.c (resolve_symlink, retrieve_dir): Don't timeout and free dcache while resolving symlinks (i.e. don't free some pointers which are in use by resolve_symlink). Mon Oct 19 11:44:47 1998 Pavel Machek * mcfs.c: prefix is mc:, not mcfs:. So now mcfs actually works. Thu Oct 15 17:17:17 1998 Pavel Machek * shared_ftp_fish.c (s_write): stupid bug fixed Tue Oct 13 00:22:52 1998 Pavel Machek * extfs/*: marked obvious security holes with FIXME: TMP RACE * vfs.c (mc_def_getlocalcopy): creat->open(..,O_EXCL), to prevent symlink attack, fixed memory leak along the path 1998-10-13 Miguel de Icaza * vfs.c, vfs.h: Indentation chages, ugly macros removed. I am going to split this file in the future. Tue Oct 13 18:43:18 1998 Pavel Machek * vfs.c (vfs_add_noncurrent_stamps): Fixed typo reported by Andrej Borsenkow Tue Oct 13 12:42:10 1998 Pavel Machek * vfs.h (vfs_struct): renamed to avoid namespace conflict Mon Oct 12 22:42:30 1998 Pavel Machek * sfs.c: reuse mmap from local.c * ftpfs.c, fish.c, shared_ftp_fish.c: horrible reget hack removed, and replaced with open(,O_LINEAR); lseek() combination Sun Oct 11 01:44:37 1998 Pavel Machek * mcfs.c (open_tcp_link): Moved: it used to be in utilvfs.c, but as it deals with portmapper, it is probably usefull for mcfs * vfs.h (MCERR_*): these are no longer needed * vfs.c (vfs_translate_url): translating of url's moved to vfs code * all around: trying to reduce namespace pollution. All special functions (like extfs_run) should be done using mc_setctl() interface. At the end, all non-static functions in vfs layer should begin with vfs_ and should be declared in vfs.h (however that goal is far away). * all over the code: replace X_vfs_ops to vfs_X_ops Mon Oct 5 20:11:01 1998 Pavel Machek * vfs.c: added stat to avoid hiding files by naming them #ftp:localhost and similar. Vfs will not treat files as local if they already exists, regardless of name. Tue Oct 6 15:34:22 1998 Pavel Machek * vfs.h: disable BROKEN_PATHS by default. See if you can live without cd .. from ftp tree putting you to last directory. Sat Oct 3 14:28:57 1998 Norbert Warmuth * ftpfs.c (resolve_symlink): fixed cut'n paste error in my last change, i.e. make it compile) Sat Oct 3 01:03:37 1998 Norbert Warmuth * ftpfs.c (resolve_symlink): minor speed enhancement Thu Oct 1 18:39:52 1998 Pavel Roskin * vfs.h: vfs_force_expire() was incorrectly #define'd Tue Sep 29 17:23:03 1998 Pavel Machek * extfs.c, sfs.c: added few static's to prevent people from doing stupid things Mon Sep 28 21:43:16 1998 Norbert Warmuth * vfs.h (struct vfs): renamed errno to verrno because glibc2 defines errno as macro (#define errno (*__errno_location ())) Mon Sep 28 21:34:03 1998 Norbert Warmuth * Makefile.in: search config.status in builddir and not in srcdir/.., i. e. make it compile for builddir != srcdir Sun Sep 27 16:16:52 1998 Pavel Machek * COPYING.LGPL, all over the code: code is now under Library General Public License (instead of GPL), so non-free applications can link to it. Wed Sep 23 22:37:40 1998 Pavel Machek * all over the code: added (vfs *) as first argument for functions that have no other way to know what fs they belong to. This will be used by object-like tricks, which will allow us to do real code-sharing: I do not like #including of .c files. 1998-09-25 Miguel de Icaza * shared_ftp_fish.c: Addaed prototypes for linear_start, linear_read, linear_close Wed Sep 23 15:09:55 1998 Tom Tromey * vfs.h (MIN, MAX): Only define if not already defined; glib.h also defines them. Wed Sep 23 13:33:14 1998 Pavel Machek * ftpfs.c: Fixed segfault caused by unitialized varialble Wed Sep 23 11:51:12 1998 Pavel Roskin * ftpfs.c, fish.c: added O_LINEAR mode to handle linear read of files in sane way. copy_file_file will make temporary files for a while (fix pending). * tar.c: fixed bzip/bzip2 compressed archives Wed Sep 18 12:51:51 1998 Pavel Machek * fish.c, vfs.c: created aliases /#ssh: and /#rsh: * vfs.h: created ERRNOR() macro which sets my_errno and returns, which makes vfs's _much_ more readable Fri Sep 18 10:37:28 1998 Pavel Roskin * ftpfs.c (ftp_use_unix_list_options): New global variable/option. If true we try to use 'LIST -la '. When it fails we use the two commands 'CWD ' and 'LIST' instead. (resolve_symlink): rewritten. Don't get a second directory listing with `LIST -lLa'. Instead use the cache to get the file stat of symbolic links. If the directory the symlink points to isn't already in the cache the directory listing will be fetched and stored in the directory cache (without resolving symlinks recursively). The new method to resolve symlinks is faster if symlinks the same directory or the directory the symlink points to is already in the cache. This function was small and nice until I discovered that it was broken for symlinks to symlinks. Now it looks ugly and perhaps I will revert it to use "LIST -lLa" again. With a fast connection it doesn't matter which methode we use but with a slow connection I wouldn't hesitate to burn more cpu cycles on the client side. (retrieve_dir): Added parameter to tell whether to resolve symlinks (don't resolve symlinks in directory listings retrieved while resolving symlinks). When we don't get a directory listing with 'LIST -la ' then try to get it with `CWD ; LIST'. Tue Sep 15 20:27:29 1998 Norbert Warmuth * ftpfs.c (login_server): s/ftpfs_get_host/my_get_host/ (retrieve_file_start2): Don't create target file O_EXCL, in copy_file_file we check existance of the target file and know that we want to truncate it (this change was already done a while back but it was reverted with the vfs-split). Tue Sep 15 20:15:42 1998 Norbert Warmuth * ftpfs.h (struct connection): added boolean which indicates that the ftp server doesn't understand Unix ls options * ftpfs.h (struct dir): added enum to store symlink status of the in memory directory cache (directory has no symbolic links; symbolic links but not yet resolved; symbolic links which are resolved) Tue Sep 15 20:02:08 1998 Norbert Warmuth * shared_ftp_fish.c, fish.c: updated references to retrieve_dir to honour the additional boolean parameter Tue Sep 15 00:42:15 1998 Timur Bakeyev * vfs.h: add vfs_split() declaration, to make sfs.c happy. * Make-mc.in, Makefile.am: Updated to include fish.c 1998-09-14 Norbert Warmuth * sfs.c (sfs_free): assignment operator was used to check for equality Fri Sep 11 22:36:38 1998 Pavel Machek * sfs.c: memory leak fixed * vfs.c: split parse_ls_lga into more functions * fish.c added, now you can access files over rsh/ssh connection * shared*.c: reworked a bit not to include so many of ugly X_'s Wed Sep 2 13:59:47 1998 Pavel Machek * ftpfs.c: cleanup of code, few static's added * extfs/uarj: added, still, you need patches to unarj to make this work * util-alone.c: now includes code from libvfs.c, so we can kill libvfs.c (which is good thing as it was non-standard in Makefiles) Sun Aug 30 13:19:49 1998 Pavel Machek * undelfs.c: fixed, it has been broken for too long * vfs.c, ../src/cmd.c: neccessary minor fixes to make undelfs work * vfs.c: made more fields in *_vfs_ops optional, cleanup of errno handling in case of NULL in *_vfs_ops. * extfs.c, ftpfs.c, tar.c: made use of above change * vfs.c: cleanup of macros generating mc_*() * libvfs.c: adding variable mc_home Thu Aug 27 19:45:31 1998 Pavel Roskin * extfs.c: mc_extfsdir was not defined in extfs_open() * Make-mc.in: sfs.c was not compiled, linked and copied out extfs/sfs.ini was not installed and copied out * Makefile.am: sfs.c was not linked to standalone VFS Tue Aug 25 17:54:17 1998 Pavel Machek * Added vfs_uid for use by libvfs.so users (rpc.nfsd) * Added single file filesystem (sfs) * Added vfs_flags so library users can disable selected filesystems * Minor shuffling of functions so garbage collection works for library 1998-08-20 Raja R Harinath * Makefile.am (mad.c, mad.h): Create symlinks to counterparts in `mc-src'. Wed Aug 12 19:04:48 1998 Pavel Roskin * extfs/patchfs: %k replaced with more portable %H in the format for "date" command * extfs/extfs.ini: Added patchfs and mailfs. Some comments changed Tue Aug 11 15:25:52 1998 Pavel Roskin * extfs/rpm: Fix for buggy "cut" on HP-UX 10.20 which ignores lines without enf-of-line. Mon Jun 01 03:30:07 1998 Alexander Savelyev * tar.c (read_header): Support for linkflag on BSDI tar (pax), it is always 0. 1998-06-22 Miguel de Icaza * ftpfs.c (ftpfs_open_socket): Potential security break fix. 1998-08-06 Raja R Harinath * Makefile.am (BUILT_SOURCES): Make it `make dist' friendly. Don't try building this, yet. 1998-07-31 Nuno Ferreira * Make-mc.in (install.extfs): Splitted install of $(EXTFS_CONST) and $(EXTFS_OUT) because the first must be installed from $(srcdir) and the second from $(builddir). Fri Jul 24 00:22:30 1998 Tom Tromey * Make-mc.in (DISTVFS): Changed Makefile.in to Make-mc.in. * Makefile.am: New file. * Make-mc.in: Renamed from Makefile.in. * Makefile.in: Removed. Mon Jun 29 15:12:55 1998 Pavel Roskin * Makefile.in: Rewritten stuff concerning extfs files. Mon Jun 22 22:30:00 1998 Manish Vachharajani * Makefile.in: Remove arfs, since it doesn't seem to exist Wed Jun 17 Pavel Machek * Rename helper scripts (extfs/{rar|lha|...}.in), so their names are more logical (and so that things actually work, because new names are currently in extfs.ini). Wed Jun 17 Pavel Machek * Modified code to use tempnam() instead of tmpnam(), fixed tempnam() to use NULL instead of 0. Wed Jun 3 Pavel Machek * libvfs.c: adding libvfs.c which should contain things specific to stand-alone libvfs.so. (This file was missing from previous merge.) Mon Jun 1 16:00:19 1998 Norbert Warmuth * ftpfs.c (ftpfs_fill_names): use right character to seperate prefix and username Mon Jun 1 14:19:20 1998 Bakeyev I. Timur * vfs.c (parse_ls_lga): allow a bit wider range of listings. * vfs.c (is_time, is_year): new functions Mon Jun 1 12:47:50 1998 Norbert Warmuth * ftpfs.c (ftpfs_forget): Use the new ftpfs prefix. Thu May 28 16:42:31 1998 Pavel Machek * extfs.c, shared.c, tar.c: I changed semantics in my previous patch - _get_path() now modifies strings passed to it. I thought that I were carefull enough not to introduce bugs. You guessed it - I was not. [Many tar_ and extfs_ functions modify strings passed to them, but as they are only called from vfs layer, it does not matter much.] So I renamed function to alert everyone that semantics changed. Fixed bugs in timestamping (and segfaults) when you entered tar inside zip file or similar. * vfs.c (mc_open): Die if the filesystem doesn't support open ??? Pavel Machek * shared.c: Shared parts of extfs.c and tar.c are now in shared.c * util-alone.*: VFS should be able to compile stand-alone into libvfs.so usable by anyone. This is first step. * vfs.c & others: syntax change. We no longer use tar:/path.tar/file. Now, syntax is /path.tar#utar/file, which has better defined meaning. Similar changes are done to all other protocols. This change touched really _many_ places of code. 1998-05-26 Miguel de Icaza * vfs.c (MC_DIROP): Macro now returns the proper value. 1998-maj-18 Tamasi Gyorgy (gt_cosy@usa.net) * Makefile.in ('install' target): 'mcserv' not installed, if net-code is not enabled by 'configure'. Thu May 14 02:05:52 1998 Norbert Warmuth * Makefile.in (LIBS): add @LINTL@ Sun May 10 14:51:03 1998 Norbert Warmuth * ftpfs.c (__ftpfs_chdir): CWD command wasn't sent at all. This optimation is wrong because for directories containing spaces we have to "CWD " and "LIST -la" instead of "LIST -la ". I implemented a different optimation. Now ftpfs_chdir only stores the new working directory and sets a flag. __ftpfs_chdir is called when we really want to change the directory on the ftp server. (resolve_symlink): Log the directory listing to the logfile. * ftpfs.h (struct ftpfs_connection): Added a (per connection) cwd_defered flag. Mon May 4 10:27:49 1998 Norbert Warmuth * Makefile.in: Links to mad.c and mad.h were created wrong when srcdir != builddir and directory depth to srcdir and builddir were different (e.g. srcdir=/src/mc and builddir=/src/compile/mc) * ftpfs.c (retrieve_file_start2): Don't create target file O_EXCL, in copy_file_file we check existance of the target file and know that we want to truncate it. 1998-04-29 Miguel de Icaza * tar.c (read_header): Mark regular files with S_IFREG. Tue Apr 28 06:06:03 1998 Norbert Warmuth * extfs.c (extfs_open, extfs_close): Changed my_system(1,...) to my_system(EXECUTE_AS_SHELL,...), this fixes the broken copyin and copyout of 4.1.32. 1998-04-23 Miguel de Icaza * ftpfs.c (retrieve_file_start2): Open file exclusively. (retrieve_file): likewise. 1998-03-31 Philippe De Muyter * vfs.h: compilation fix for m68k-motorola-sysv Wed Mar 25 19:01:48 1998 Norbert Warmuth * extfs/hp48: Added a usage summary Mon Mar 23 00:42:21 1998 Christofer Edvardsen * Makefile.in, extfs/extfs.ini, extfs/hp48: New external filesystem to view and copy files to/from the HP48. Wed Feb 11 14:09:02 1998 Oleg * extfs.c: Add support for writtable external file systems. Required for the httpfs. Fri Jan 23 07:27:37 1998 Peter Daum * extfs.c (open_extfs_archive): Pass the quoted argument to the list command. * mailfs: new file system. 1997-12-21 Yuri Kuzmenko * tar.c: fix the bug which core dumps when trying to view tar file with many files (over 60000). Mon Jul 21 18:47:37 1997 Miguel de Icaza * vfs.c (mc_opendir): Do not make conversions between int/void * to make the code compile and work on the Alpha correctly. Allocate a pointer to an int and use that instead. Thu Jul 3 19:08:43 1997 Michele Marziani * extfs/rpm: Small fix for older RPM files. Mon Jun 9 19:00:30 1997 Norbert Warmuth * vfs/vfs.c (vfs_canon): Fix for the 'cd a:/somedir/..' problem * vfs/vfs.c (vfs_add_non_current_stamps): when leaving a mtools fs free the extfs buffers immediatly instead of waiting for the vfs- timeout Thu May 29 14:50:41 1997 Miguel de Icaza * vfs.c (vfs_canon): the "local:" case was consuming one extra character. This fixes the bug reported by Andrej. Also, handle the non-canonical case of arguments to local: Tue May 27 20:38:28 1997 Miguel de Icaza * mcserv.c (get_client): The parent now waits for the first forked process, getting rid of the zombies. * utilvfs.c (open_tcp_link): If we can not contact the remote portmapper, set the protocol version to 1. Fri May 16 16:42:18 1997 Tomasz Kłoczko, * mc.spec: New spec file, this packages mc, mcserv and tkmc. * lib/mcserv.init, lib/mc.sh, lib/mcserv.pamd: added * vfs/ext/rpm: instead using sed and rpm -qpi use rpm queries, more info currently displayed (changeslogs, Os, URL, packager Tue May 13 18:14:49 1997 Wojtek Pilorz * vfs/Makefile.in (INSTALL_PROGRAM): Use -m flag for install to force vfs scripts to be executable on those systems that use install.sh * src/utilunix.c: Implement socketpair for SCO flavored systems. Mon Mar 17 12:03:50 1997 Norbert Warmuth * configure.in (--with-hsc): fix. * vfs/ftpfs.c (ftpfs_get_proxy_host_and_port): Fixed wrong parameter passing (HSC_DEFAULT_PORT was passed as pointer to char instead of passing it as integer) Tue Feb 25 20:21:00 1997 Joseph M. Hinkle * extfs/lha: Updated the lha filesystem and included a command for running an executable from within an lha archive suggested by Zdenek Kabelac * extfs/: Renamed cpio, deb, rar, rpm as *.in files and altered config.in to create these VFS's for cleaner compilation