CHANGES SINCE VERSION 1.00
==========================

Version 2.4 Released 20 July 1998
---------------------------------
* Fixed host IP passed with SRVU_LogClientIP and SRVU_IPAccess events.
* The original user name (in original case and length) is now passed as a
second parameter in the 'Aux' field for the SRVU_Password event.
* Rename (RNTO) now renames over an existing file if needed.
* STAT now shows ongoing transers with their progress.
* HELP now shows the server type and version code in its last line.
* Added browse buttons to various file selection items.
* Added SITE ZONE command to report server timezone to client.
* Added on/off-line menu item to tray icon menus.
* Changed "About" dialogbox.
* Added Web links from 'help' menu items.
* Fixed rare bug that caused users to hang past their time-out.
* Added small delay between last message from server and actual disconnect
so clients have a chance to display final message.
* Fixed bug in path handling for single character paths.
* Changed command reply to use 425 code in case the data connection fails.
* Alternative settings file (like SERV-U.INI) is now accepted on the command line.
* Fixed bug in event notification DLL mechanism, in case the server is suspended.
* Event notification for EVNT_EndDown, EVNT_EndUp, EVNT_AbortDown, EVNT_AbortUp
now have transfer mode in 'AuxTwo'.
* Added menu item 'file - on-line' to put server on/off-line.
* Added CWD command to the event hooking mechanism.
* To delete or rename a directory the user now needs access to that dir, and
not its parent (as used to be the case).
* User time-out is now part of the individual user account setup.
* Changed status bar style.
* Changed CWD so it always returns the path with the actual capatilization.
* Changed signon/signoff text handling so leading spaces are preserved.
* Max. no. of users is now part of the individual user account setup.
* The default user account "ALL" is now named "** Default **".
* When first started a default user account is created with 45 min. time-out.
* Added option to block anti-timeout schemes as employed by most FTP clients.
* Added toolbar and menu items to show/hide toolbar.
* Added hint text to menus.
* Added a number of new message directives.
* Made registration key entry more mutation-proof.
* Added interface for dir listing cache setup in 'setup - server - dir cache'.
* If user's homedir does not exist this is now logged.
* Changed all file handling code in 32-bit version to use native Windows functions.
* Increased listen backlog queue size to avoid "connection refused" messages.
* Fixed bug in FTP reply which reports how much disk quota is left over.
* Existance of an anonymous user account is now checked before determining if
there are too many anonymous users so the proper reply is sent to client.
* Access rules now support wildcards.
* Dir listings are now cached in 32-bit version.
* Dir listing now supports most UNIX 'ls' options.
* Dir listing now only shows files/dirs/links the user has access to.
* Fixed a rare bug which would show only the first of a list of "links".
* Changed socket stack handling to solve rare bug in 16-bit causing failed
transfers.
* The command connection now uses "keep-alive" at the TCP level. This solves
time-out problems by certain proxy servers during lengthy data transfers.
* Changed FTP command replies to be more like UNIX.
* Drive letters can be without colon (':'), ie. "/c/" is equal to "/c:/",
"\c\", "c:" or "\c:\".
* Added option to server setup to block "FTP_bounce" attacks
(CERT advisory CA-97.27), to limit PORT IP addresses to the client IP only.
* Added SITE PSWD command to allow FTP clients to change their password.
* Added support for the OPEN command. Has no functionality, for testing only.
* A double-click on a user name in the user setup will now open the miscellaneous
menu for that user.
* Fixed bug which caused Serv-U to show a window when started after it was
stopped while a tray-icon in Win95/NT4.
* Extended support for leading '-' in passwords to suppress multi-line responses
to all user names (used to be only for Anonymous).
* Added extension to MDTM for changing file date/time by the client.
* Any path reference of "..." or more dots is now converted to the drive root.
* Files/dirs with multiple consecutive dots embedded in the name are now
preserved correctly. Trailing dots are stripped.
* Added 'copy' and 'paste' buttons to the 'about - register - enter
key' menu. Registration menu now stays visible also after registration.
* Changed code to constrain users with relative paths to their homedir and
the subdirs of their homedir.
* Fixed bug in "store unique" (STOU) command when used with (partial) path
names as an argument.
* Changed time-out for command connection after it is initially set up.
Now 3 minutes for receiving a packet (was 5) and 5 minutes for sending.
* Changed FTP reply messages for successful upload and download to be identical
to UNIX messages.
* Fixed bug in recognizing the root directory of CD-ROMs under Win3.1.

Version 2.3b released 11 October 1997
-------------------------------------
* Changed the end-of-try-out-time message box to show the message came from
Serv-U.
* Changed access verification DLL handling so event structure changes are
only considered if the DLL handled the event (Fixes a problem with Emerald).
* Fixed bug in file transfer count displayed in the status bar.
* Fixed bug in handling of suspended events (in case of an event hook DLL)
while there is an ongoing data transfer.

Version 2.3a released 7 October 1997
------------------------------------
* Fixed bug in NLST and LIST commands (for dir listing) which prevented
the use of wildcards in dir listings.

Version 2.3 released 6 October 1997
-----------------------------------
* REST (=resume command) now supported for file uploads.
* Added support for the SITE INDEX command (only in the 32-bit version)
as used by Fetch.
* Fixed bug in total file transfers count as shown in the status bar.
* Changed path parser to recognize all possible ports and isolate them.
* Added 'Register' menu to the help section. This allows users to generate
a registration form on the fly and fill it out using NotePad.
* Added new mechanism to enter a registration key into Serv-U, also added
support for a new key format.
* Added new message directives to keep track of server stats: Total up-time,
total uploads and downloads (bytes/files), total users.
* Changed internal string handling to improve performance.
* The STOU (=STOre Unique) command now handles long file names in Win95 and NT.
* Changed compilers from Borland C++ 4.52 to BC++ 5.02 for the 32-bit version.
This necessitated several code changes.
* Changed code so the maximum path length for the 16-bit version is 80
characters. This is conform the Win16 maximum path length. Longer paths
caused crashes in Win16 functions.
* Tray icon will now disappear by itself after exiting Serv-U.
* Added "Notes" field to the user and group setup for notes about each user.
* Logging to screen and file can now be separately specified.
* The user info window can now be froozen for easier viewing.
* The user info window can now be resized in height.
* Passwords can now optionally be stored unencrypted. The default is that
they get encrypted.
* The 'kill user' dialogbox now allows editing of the IP address.
* Renaming/moving a dir now requires 'remove' access to the path being
removed, and 'make' access to the destination path.
* The maximum transfer speed can now be set for each user via the 'setup -
users - miscellaneous' menu.
* Partially uploaded files can be automatically deleted via a 'setup -
server' menu option.
* In case a client closes the command connection while there are ongoing
transfers this is now properly logged and passed to the event notification
mechanism.
* Files are now kept open during transfers. This means files being uploaded
show zero length during the upload.
* The reply message after a dir listing or file transfer now shows the client
his/her ratio and quota status (if the client is using ratios and/or quota).
* Added SITE command to the event hooking mechanism. Any SITE command can
now be intercepted by an event notification DLL.
* Fixed bug in system tray menu (Win95) when Serv-U gets started automatically
after system startup.
* The CWD ('change working directory') command no longer actually changes
the Serv-U task's current directory which caused locking of the dir in NT.
* Added .ini file option to avoid logging of certain clients from IP numbers.
* Closing Serv-U from the system menu (or the 'x' in Win95/NT4) now minimizes
the window in case there is a tray icon. Exit the server from the tray menu.
* The string "%20" in paths is converted to " " (=space) to please MSIE.
* There no longer is any 'hard' limit to the maximum number of IP homes.
* Serv-U now shows all the IP addresses it listens on at startup.
* Upon startup a file IPSERVU.TXT is created in the Serv-U program dir with
all the IP addresses it listens on. This file is updated every 5 minutes.
Through a .ini file option the interval and file name can be changed.
* When restoring window from the tray-icon (Win95/NT4) the log will now scroll
to the end.
* When running as a Win95 system service there is no longer a regular icon
if the user logs out and back into the system again.
* External access verification DLLs now receive the SRVU_IPAccess event,
also when no IP access rules were present.
* In case Serv-U is started for the first time, but with a KEY.TXT file
present it will no longer ask for the try-out option but read in the key.
* Users with no password (ie. 'Password' entry in the .ini file explicitely
set to nothing) are logged in immidiately after the USER command.
* Users can be given an empty password (ie. no password required when logging
in) by entering "<>" in the password field of the user setup.
* To create or delete directories the user now needs the appropriate access
to the parent of the dirs that are being created/deleted.
* Users with setting "allow login when max. no. of users is reached" now also
have no time-out after logging in.
* Server now switches to 'crippled' try-out when try-out time is up.
* When the version is out-of-date the server now allows 'crippled' use.
* FTP response messages to clients now preserve case for file/path names.
* The "Too many users ..." message no longer shows the maximum number to clients.
* Try-out time has been changed from 30 to 45 days.
* Transfer speed reports use 1024 bytes per Kb rather than (previously) 1000.
* Added support for limiting the maximum bandwidth used by the server.
* The event EVNT_Login of the event notification mechanism now has
the anonymous password in AuxOne (for anonymous users only).
* Fixed bug which would show a tray icon in NT4 even when the server was
started 'hidden'.
* Minor changes to socket stack handing with the hopes that it will work with
(even) more WinSock stacks.
* The SIZE command now works with either 'list' or 'read' access to the file.
This used to require 'list' access.
* Fixed bug in SIZE command causing it to deny access if directory didn't
have 'inherit' access.
* Data transfers now use a socket bound to the same IP as their command
connection. This should fix a rare problem with multi-homed sites and
firewalls.

Version 2.2 released 22 February 1997
-------------------------------------
* In case 'current' disk quota is set larger than 'maximum' uploads are no
longer allowed.
* Changed the data connection message for uploads/downloads to be more UNIX
compatible (some browsers use this to get the file size from).
* Serv-U now uses the native case for file/dir names, or optionally lower case.
* The ALLO (=allocate) command now handles 4Gb instead of 2Gb of free space.
* The security manager no longer checks for the presense of the SERV-U.INI file
which hopefully solves a very rare problem where the server cannot read the
.ini file after several days (in NT3.51 SP5).
* Added DLL interface for event notification and command hooks.
* In case no IP address can be found for the server it'll display "?????".
* Renaming directories works also now.
* Added support for IP names (with wildcards) in IP access rules.
* Added option to limit a user from logging in more than once from the same
IP address.
* Fixed bug which prevented multi-homed IP numbers from showing in case no
users were defined.
* Changed IP access rule mechanism. It is now more flexible. Added .ini file
conversion for new rule format.
* Added option to specify IP access rules for each user individually.
* Added tray icon support for Win95 and NT4.
* Changed code so 32-bit version can handle more IP homes (now it'll do around
1800 IP numbers, while the 16-bit version handles about 180 IP numbers).
* Fixed bug in reporting of no. of try-out days left for the 32-bit version.
* LIST now completely ignores any '-' type options. NLST only parses '-l' and
converts that to a LIST command. This should make the latest CuteFTP work.
* Fixed bug introduced in v2.1: Killed users that were put on the IP bounce
list now work properly.
* Fixed bug introduced in v2.1: Putting the server in a directory path with
spaces works now.
* Fixed bug in links introduced in v2.1 which caused crashes.
* Added support for running Serv-U as a system service in Win95.

Version 2.1, released 8 November 1996
-------------------------------------
* Fixed bug in 24h user count (sites with only a few hits a day would get
bogus numbers).
* Added startup options /i (=iconic), /h (=hidden), and /u (=unconditional
exit).
* When Serv-U was stopped while iconic it'll start as an icon the next time.
* The evaluation order of IP deny and allow rules can now be choosen.
* Fixed bug which would not allow dir listings if 'inherit' was not enabled
and a dir listing with argument was done (ie. 'dir *.*').
* Changed link handling so if there is a subdir with the same name as a link
preferance will be given to the subdir.
* Changed '%dfree' message file directive so it handles >2Gb of free space.
* All links should now be absolute paths, even for users with 'rel. paths'
enabled. Serv-U takes care of the conversion for dir listings etc.
* Added support for the FTP command STAT, showing UL/DL ratios and quota.
* Changed %bup, %bdown, %btot, and %dfree to report in Kb instead of bytes.
* Added support for secundary 'dir change message file' and 'link file'.
* Added a very beautiful status bar.
* Added a bunch of message file directives for ratios and disk quota.
* Fixed bug in 'restart' handling causing extraneous "450 Try later - Data
connection in use" command error replies.
* Added disk quota limitation support.
* Added support for 'free files' for U/D ratios.
* Added feature to allow users to log in even when user limit is reached.
* User ID in log now always has 6 digits (with leading zeros if needed). To
make programmatic sorting easier.
* Changed code of security manager, simplifying it (and hopefully making it
more robust).
* Added 'upload/download ratios'.
* Added support for 'relative paths' for all users.
* Added support for hiding 'hidden' files for every user.
* Fixed bug which caused IP home changes to be ignored until a restart.
* Changed the max. no. of characters that can be entered into the multi-homed
setup box for the IP number from 14 to 15.
* Fixed bug causing GPF's for very long signon/signoff text lines.

Version 2.0c, released 10 August 1996
------------------------------------
* Fixed problem with user setup changes that would not show up immidiately.
* Added "%maxusers" and "%maxanonymous" directives.
* Changed the implementation of the REST command ('resume') to be compatible
with CuteFTP 1.5.
* Added multi-homed IP support.
* Fixed bug in MDTM command.
* Changed dir listing format: Times before 10am now have a leading zero.
This to be more UNIX compatible and fix problems with WS_FTP.
* Fixed problem in NT preventing directory deletion.
* More bullet proofing of the socket stack routines.
* Fixed bug causing GPF's while making server setup changes that resulted in
a server restart.
* Added WinSock function logging.
* Added support for external client verification DLLs.
* Bulletproofed the input buffer. It now handles any length strings.
* The '&' character in the registration key (if present) is now displayed
correctly.

Version 2.0b, released 4 May 1996
------------------------------------
* Bullet-proofed the 'relative paths anonymous' option. Now impossible to get
out of the homedir (and subdirs below), even if user has access rights for
other paths.
* Changed '~' handling. Now works when embedded inside a path.
* Fixed bug in 'Resume' command (FTP command 'REST').
* Changed code for painting text & images in 'About' box, hopefully solving
problems on Win3.1 and WFW3.11.

Version 2.0a, released 18 April 1996
------------------------------------
* Remote program execution (Through SITE EXEC) now launches the program from
the current directory of the user.
* The Serv-U directory is now searched first for SERV-U.INI, then it looks
for an evironment variable named SERV-U, and finally the PATH and Window's
directories are searched for the .ini file (Order changed over previous).\
* Added option to make server exit pending upon the logged in users.
* Fixed problem with window size/position when user info box got closed while
minimized.
* Fixed problem with links containing trailing '\'.
* Fixed bug in '%dfree' text directive in 16-bit Serv-U.
* Added the FTP command REST (=RESTart).
* Changing the file name for directory change messages no longer causes the
server to log out all users.
* Added the FTP command MDTM (=Modification Date & TiMe).
* Hidden directories are now hidden from anonmous users (as are hidden
files) in the 32-bit version.
* Fixed bug in DNS lookups that caused GPF's.
* Transfer speed in 'User Info' box is now averaged.
* Links embedded in a path will now be resolved correctly. This will make
things work better with Netscape which keeps links as part of the path.
* 'Maximize' system menu item is now disabled in the user info box.
* Background colors of bitmaps (in 'About' etc.) now display correctly
on non-gray windows.
* Fixed error reply for 'SITE EXEC' in case no executable was specified.
* Fixed bug that caused 'File - Exit' to skip the confirm dialogbox.
* Fixed bug in '~' handling. It can now be used in links.
* In case CTL3DV2.DLL is missing the 16-bit version will no longer trow
an exception.
* Added file size to transfer logs.

Version 2.0, released 13 March 1996
-----------------------------------
* This version will continue to work after March 15th (All previous
versions stop at that date).
* Converted code to BC 4.52 and OWL 2.5.
* Now 16- and 32-bit versions.
* Added separate access right for 'list' access.
* Added a luxurious 'user info' box.
* Added IP Name logging.
* Added a 'enable account' checkbox to quickly enable/disable a user.
* Access rules can now be specific to a single directory, or inhereted by
subdirs (the previous method).
* Fixed various dialogbox errors (text, formatting).
* Changed the FTP 'HELP' command reply to be more UNIX compatible.
* Added a ton of new '%' directives for signon/signoff messages, directory
change messages, and login messages.
* Changed icons.
* Non-anonymous users can now also delete 'read only' files.
* 'hidden' files are no longer indicated as such in dir listings (confused
the Mac client 'Fetch').
* The permission server now uses UDP messages instead of TCP.
* Added support for user specific login messages.
* Changed font and size of signon/off message dialog box.
* Added support for 'links' (like UNIX).
* Fixed logscreen: It will now do automatic horizontal scrolling when the
cursor is moved.
* User is now booted off the server if the password is guessed wrong 3 times.
* Time a user was connected gets logged.
* Inserting new paths in the access rule list is now done at current position
instead of to the end of the list.
* 'CWD ' (='cd') or 'CWD ~' will now put the user back in the home directory.
* 'NLST *' (='ls') or 'LIST *' (='dir') will now convert to '*.*', ie. will
use UNIX style globbing.
* Now even softer on your socket stack...
* Made the 'undocumented features' part of the setup.
* Changed directory listing format to be more UNIX compatible.
* Cleaned up local heap management, so the logwindow might actually work
better.
* Added transfer speed to file transfer log messages.
* Fixed bug that caused filenames like '/c:' to be seen as relative.
* Changed all dialogboxes to use MS or Win95 3D-controls. No more BWCC.DLL.
* Data connection now uses the RFC959 default local port, ie. local port 20
if the command connection uses 21. Should make some firewalls more happy.
* Added the FTP command SIZE. Should make Netscape happy (so it can tell
filesize on transfer).
* Fixed client message in case 'anonymous' is disabled.

Version 1.1i
------------
* Change of address in all the documents.
* The try-out version will continu to work after October 15th. 1995
(v1.1h won't).
* Fixed bug in renaming long file names.
* Fixed bug that caused rare GPF's with some firewall proxy clients.

Version 1.1h
------------
* Added switch to explicitely disable long file/directory names in
Windows 95.
* Fixed a bug causing garbage to appear in some cases if a directory
listing of an empty directory was made

Version 1.1g
------------
* Fixed bug in making directories for Win3.1 and WFW3.11.
* Fixed bug in deleting long file names under Win95.

Version 1.1f
------------
* Windows 95 long file names are supported. Serv-U auto-detects
the presence of Win95.
* The current number of users is displayed in the window title.
* The 'password' checks for anonymous users can be disabled.
* MS-DOS or Windows programs can be started remotely, using the
SITE command EXEC. The EXEC mechanism is also part of the
regular access rules.
* When the server is stopped while there are users logged in, a
dialogbox will pop up to confirm the action.
* Options to the LIST and NLST commands are handled (ie. 'ls
-la' like some clients send to the server will produce output).
* The FTP commands APPE (=append) and STOU (=store unique) are
now supported.
* Data type 'L8' (=local type 8 bits per byte) is now supported.
* Server is not restarted any more if maximum number of users
or time-out values are changed.
* The bug causing Serv-U to beep when it could not log to
screen has been fixed (actually a MS-Windows bug).
* Anonymous users no longer see hidden files.
* Drives are checked for accessability before usage, so no
longer the 'retry - ignore' dialogboxes.
* Info on the WinSock socket stack is shown on startup.
* Fixed bug causing false dir listings for 'dir .'.
* Made Serv-U more tolerant for firewalls using proxy servers
that mix PASV and PORT commands.
* Fixed bug that caused XCWD, XRMD, and XMKD to malfunction.

Version 1.1e
------------
* Anonymous users no longer see 'hidden' files.
* Fixed a rather nasty bug in the security system.
* Paths are now reported back with a leading '/'. This is to ensure
more compatibility with the UNIX format and to make a number of
Macintosh FTP clients even happier.
* The start-up message of Serv-U now reports the socket stack it is
running on.
* Fixed bug that assigned random passwords to users that should
have no password (a situation found in users belonging to a group
where the group password should also be the user's password).
* When a user/group has a password it is now shown as '***********' in
'setup - users/groups'. Deleting this deletes the password entry for
that user/group, ie. it no longer has a password.
* Spaces are now allowed in user names and passwords.
* Stopping the server is logged (if logging to file is switched on).
* Paths are now consistently reported back using '/' instead of '\', to
be more in line with the UNIX way of working. Mac FTP clients need
this to function properly.
* A leading '/' or '\' in front of a full pathname is ignored, ie.
'/c:/util' is equivalent to 'c:\util'. This allows for UNIX style
changes of directory, and enables WWW browsers to change drives.
* The response to an incorrect anonymous password is changed to be
more informative.
* Very long pathnames are now supported correctly.
* Displaying a file when the client changes directory is supported.
* When 'setup - logging - FTP commands' is switched on it no longer shows
passwords, 'XXXXX' instead.

Version 1.1, released 19 March 1995
-----------------------------------
* Fixed some spelling errors in messages. Fixed logging to screen for
time-out messages. Added log message in case limit of no. of users is
reached. Added log message when server is (re)started.
* Added lots of logging.
* The SYST command now replies with the code for a UNIX system. This
is because some clients use it to determine the format of directory
listings.
* Time-out values for idle/hung connections are now part of server setup.
* Drastically increased packet time-out for data transfer, now set at 5
minutes (was 30 seconds). Should be sufficient to allow transfer even on
bad connections.
* Log messages for failed data transfers now have a specification showing
why.
* Fixed bug that caused path for anonymous users with root as home
directory to be reported without a '\' at beginning. The same bug caused
absolute paths in CWD to be processed incorrectly.
* Changed the HELP response to make WS_FTP work properly with
Serv-U.
* Added support for transfer to/from ports (PRN: AUX: LPTx: and
COMx:).
* Made a work-around for FTP Inc.'s WinSock stack. This stack does not
handle SO_LINGER properly on closing a socket, causing 'data channel
in use' errors.
* Fixed bug that caused random truncation of PUT files in combination with
some clients.
* Fixed bug that allowed users to get 'dir' listings for paths with
explicitly no access set to them.
* Fixed bug causing 'dir' with absolute path name to go wrong.
Changed response messages to file transfers, only the filename is shown
now, not the path name.
* Added a retry period for the server to come online. This should solve
problems with socket stacks that do not allow to re-use a port
immediately after closing it.
* Changed the timing of the '150-' response message for PASV transfers. It
is now sent after the data connection is established instead of at the
time of a transfer command.
* The listening socket will now automatically be restarted when killed
by the socket stack. Some stacks kill listening sockets without reason
(Trumpet for one).
* Fixed a bug that made RMD (=remove directory) fail if the directory was
on a drive other than the active drive.
* Username 'FTP' is now synonymous to 'ANONYMOUS'.
* Fixed bug in very long directory listings (>64K data).
* Clients that connect but never log in are now kicked off the system
after 5 minutes.
* User can now select the try-out method: Fully functional with contacts to
my permission server, or, crippled but no permission server contacts.
* Installed selectable path mechanism for anonymous: Either absolute paths
(like a regular user) allowing for drive changes, or paths relative to the
home directory (needed for WWW browsers).
* Changed registration key to work with user/company name instead of IP
number. Every time Serv-U is started it tries to read the key from a file
KEY.TXT. Registered version displays the key in the "About" box and in
reply to the FTP HELP command.
* Changed the RETR and STOR replies (used for GET and PUT). They
are now conform the average UNIX system. This makes WS_FTP more
happy, so it shows a progress bar while downloading.

Version 1.00
------------
* Initial release 7 February 1995