· Fixed the problem with NoRouteToHost and picking up the wrong IP address through NAT firewals.
· Changed the way unique names are created. They now use the time of day rather than a hash of client information.
· Added the FileReceipt.enterDirectory() to allow finer control of directory access.
· Added necessary code to ftpd.java to handle this.
· Consolidated the documentation in one place.
· Added the HELP command. Omni-FTP (www.xlink.com) seems to require it or it just stops responding under Windows. It doesn't do much but enumerate the commands. Perhaps someday it'll actually provide real help.
· Fixed a configuration problem with server.port. It was being overidden by 'ftp.port' property which was introduced in older documentation. Now either 'ftp.port' or 'server.port' may be used, although 'server.port' is preferred.
· Fixed a problem with null pointer exception during login. This incidently fixed another problem with being unable to quit after botching a login and typing quit.
· Fixed a date format problem in the log file.
· The "fix" to the root directories didn't work as promised. This has been fixed in this release.
· More Javadocs.
· Fixed a null pointer problem in releaseConnection().
· If the file receipt class wasn't defined an error was needlessly generated. Fixed.
· Added a directory checker to determine if the directory set up is correct and display who has access to what.
· Fixed a problem with permissions whereby a permission entity could loose it's first character.
· In the case where the root directory contains directories that have
configurations entries duplicate names were displayed.
Eg: root dir = /tmp and a virtual directory /x = /tmp/x is configured,
the directory listing listed 'x' twice.
· Changed MDTM to work as the extensions draft claims it should. Ws_FTP sends the command as 'MDTM 20010114155108 xyz.txt' which is incorrect. This was resulting in the file name becoming the concatenation of the time & name. Now only the last argument is taken as the file name.
· Fixed a problem with PASV transfers - the reply needed the IP address & port number surrounded by parenthesis.
· Removed the built-in RADIUS server and made it an authentication class on it's own.
· Changed how the PORT command was parsed.
· Added real support for ASCII and Binary transfer types.
· Added support for REST for multiple concurrent file transfers.
· Changed to use SimpleDateFormat instead of GregorianCalendar.
· Altered NLIST to do what it's supposed to (generate a list of files unlike LIST), which generates a human readable list).
· Added the ability to trigger an external class upon file upload or download. See filereceipt.class in dir.cfg.
· Added check for missing root directory in the configuration file.
· Added support for an external class that is informed when a file is about to be downloaded/uploded or has completed downloading/uploded. The class methods can refuse to allow the download of a file.
· Added support to APPE (append), and STOU (Store unique)
· Added support for groups of login entities.
· Fixed SIZE return - was 250, now 213.
· Fixed bug in STOR where existing files overwritten with less data had old data dangling at the end.
· Fixed return in RNFR so that renames would work.
· Added support for SITE IDLE idleTimeout command. Only works if you're not anonymous. Maybe it should be a configurable option.
· Support for the RADIUS Port-Limit attribute to limit the number of ports a client may open.
· Fixed cosmetic problem in logging.
· Fixed a problem in CWD where it should have failed but did not. eg. ftp://loopback/web/java/ftp.zip would not find the file as a directory but would chdir(/) and claim it succeeded.
· Added proper FTP logging and a new parameter for it.
· Added REST action.
· Added support for RADIUS proxy authentication (strips '@...' from name).
· Corrected Authorization support for external authorization class.
· Added maximum connections, changed internals around to accommodate lack of Suspend & Resume thread functions.
· Global data is passed to each connection. Still able to reread configuration info (including anonymous count and connection count)
· Platform independent home directory support added.
· Added more logging - when anything fails.
· Fixed MKD so that if the directory exists already it succeeds - web publishers need this.
· Fixed MDTM and SIZE to return better information.
· Fix of logging name for non-anonymous logins.
· Fixed security problem where USER could be followed by commands other than PASS (although it hung when this happened).
· Major restructuring of internals to good effect.
· Centralized more of the virtual dir stuff into currentInfo and out of ftpd.
· Added more information to the RETR response.
· Fixed bug where "cd internet" failed first time when "internet" exists in root.
· Improved handling of args for NLST. Made IP info part of the CurrentInfo class to improve access for subroutines that need boring information like stdin &c.
· Non-RADIUS authentication, session display file. Changed logging to track individual sessions of the same client.
· Added PASV transfer, display files for directory
· Initial Coding