Code:
21) The executable file no longer needs to be named ioFTPD.exe which was
required for the non-registered versions. It has the original
application icon again and now includes detailed build information.
22) The rename/move command on files or directories always works now.
Doesn't matter if the move crosses physical drives. To move directories
you must have permission for every directory in the directory tree
although access to every file is not required. Permission/ownership
for the moved directory is the same as the original.
23) New ioFTPD.ini option (DirectoryCache_Buckets). You can now choose
the number of buckets to use for the directory cache. Previously you
had 8 buckets and could set the max number of directories in each.
Internally for each it kept a linked list of buckets in the order they
were added and when space was needed it popped the oldest CREATED. It
also kept an array of pointers sorted by name for each bucket and would
binary searched this array to locate entries. The new defaults of 100
buckets of 1000 depth instead of 8 and 1000 will obviously use more
space if you have a very large server. If memory is an issue for you,
go back to 8/1000 or try 80/100, but I believe overall performance will
be increased with the larger cache size.
24) The loopback address (127.0.0.1) is now immune from banning because of
too many reconnections. Hehe, I managed to ban myself during testing :)
25) The chown -R option was broken when dealing with merged directories or
mounted subdirectories. I rewrote the whole traversal logic to be
generic and support multiple commands.
26) Added the -R option to chmod so you can recursively change permissions.
27) chown/chmod now accept a simplified globber ([]'s don't act as globs)
when specifying files/directories to change. Thus you can now use:
chown -R newuser *.txt
to change the owner of every file ending in *.txt to "newuser" or
if you leave off the -R just the *.txt files in the current directory.
"*" matches all directories and files, but as a special case "*/" will
only match directories. Thus you can do something like:
chmod -R 644 *
chmod -R 755 */
The first changes everything to 644 and the 2nd changes only directories
to 755. Way simpler than changing everything one by one.
28) The main logfile now has 3 new events:
START "pid=123" "<cmdline used to start ioFTPD>"
STOP "pid=123"
SHUTDOWN "<user-who-issued-command>"
29) New "site free" command which shows you the free disk space under the
current directory. I know there is a cookie which could show this but
nice to have anyway. In the future might show combined free space of
merged directories across multiple drives or free space of all drives
on system with associated mountpoints for admins/vfs admins.
30) New "site space" command which when used on a directory will show you
the total number of files/subdirectories in the entire directory tree
as well as the total disk space used.
31) Access checks have been changed to disallow viewing or access to NTFS
hidden files/folders and important system files. The one exception
being drive letters which are actually flagged hidden & system. As
I documented in the default.vfs file it's still probably a bad idea
to mount drive letters directly but this should prevent a number of
potential security issues.
32) New ioFTPD.ini option (Hide_Xfer_Host). You can now choose to hide
the hostname/ip of transfers in the xferlog.