FILE README.TXT FOR SERV-U BETAS
================================

IMPORTANT NOTE: THIS IS A BETA VERSION! THIS MEANS THERE MAY BE MORE 
BUGS THAN WOULD BE ACCEPTABLE IN A RELEASE VERSION, AND IT IS PRIMARILY 
INTENDED FOR TESTING. ALSO, THIS BETA VERSION DOES NOT COME WITH THE 
USUAL AUTOMATED INSTALL PROGRAM NOR DOCUMENTATION, AND IS *NOT* 
INTENDED FOR FIRST-TIME SERV-U USERS. PLEASE SEE 
FTP://FTP.CAT-SOFT.COM/ FOR THE CURRENT RELEASE VERSION. FOR GENERAL 
INFORMATION ABOUT SERV-U PLEASE SEE HTTP://WWW.FTPSERV-U.COM/ 

IF YOU FOUND THIS BETA VIA A DOWNLOAD SERVICE PLEASE PASS THEIR URL ON 
TO ME (ROB@CAT-SOFT.COM) SO I CAN POINT OUT TO THEM THEY SHOULD NOT 
DISTRIBUTE THE BETA VERSION BUT LINK TO THE RELEASE VERSION INSTEAD.

The current beta version is v2.5 build 4. 
To install this beta version of Serv-U please do the following:

* Exit Serv-U if it is running.
* Make a backup of your current Serv-U directory (default is 
  "c:\program files\serv-u" for 32-bit, "c:\serv-u" for 16-bit).
* For Win95/98/NT unzip the file SERV-U32.ZIP, copy the (new) 
  SERV-U32.EXE file to your Serv-U directory.
* For Win3.1/WFW3.11 unzip the file SERV-U16.ZIP, copy the (new) 
  SERV-U16.EXE file to your Serv-U directory.
* Start Serv-U.

In case of bugs, problems or other findings please inform the author at 
Rob@cat-soft.com

You can be kept informed automatically about new beta versions of 
Serv-U by subscribing to the Serv-U beta mailing list. For more 
information please see http://www.ftpserv-u.com/betatest.htm

NEW STUFF
=========

For a complete list of changes please see the VERSION.TXT file. 
Following below is a selection of those changes which may be of 
interest to many or require an explanation to use.

killing users
-------------
The "kill user" dialogbox (from the user info screen) now has a button 
to calculate the proper subnet mask to keep all users from the entire 
subnet out. It takes the subnet class (A, B, or C) into account and 
automatically comes up with the right mask. 

'Append' access right
---------------------
The user and group access rights have a new right, 'append'. Allowing 
'append' access means the user can append to the end of the file, but not 
overwrite any existing content. This right automatically includes 
'write' access, ie. users with 'append' access can also create new files.
Users with 'delete' access automatically have 'append' and 'write' 
access. The main purpose for this access right is to allow resuming of 
uploads. Please also see the notes below about resuming with only 
'write' access, those still apply.

Anti-hammer measures
--------------------
Users who try to log in every second or so are said to be "hammering" 
the FTP server. Serv-U can now automatically detect these users and 
block them for a certain amount of time. The 'setup - server' menu has 
the anti-hammer setup, allowing the system manager to specify when a 
user is considered to be hammering, and how long such a user should be 
blocked. Once blocked the user will not receive any message, just get 
disconnected immidiately upon connection. This action is very low 
overhead for the server.

Resuming uploads no longer needs 'delete' access
------------------------------------------------
The server now keeps a list of recent uploads and will allow a user to 
resume an upload with only 'write' access if this user resumes within 
12 hours, and connects from the same group of network addresses (ie. 
for a class A the first part of the address needs to be the same, for a 
class B the first two parts, and for a class C the first 3 parts). For 
this to work, only resuming at the end of the file is allowed (the REST 
FTP command which underlies resuming can potentially restart an upload 
at any position in the file). This mechanism is not completely 
foolproof: A user who wants to resume after 12 hours still needs 
'delete' access to the file. Not all users can resume from the same 
subnet. A number of ISPs have multiple class C address spaces for 
dial-up connections and the user may get connected to a different 
subnet, which means resuming would require at least 'append' access in 
that case.

Selectable number of concurrent logins from the same IP
-------------------------------------------------------
The 'setup - users - misc' menu choice now lets one choose the maximum 
number of logins from the same IP address.

Log file rotation
----------------- 
The 'setup - logging' menu now supports log file rotation. This 
automatically starts a new log file, with the date appended to the file 
name. Log files can be rotated daily, weekly, monthly, or yearly.

Listening on specific IP addresses
----------------------------------
Instead of having the server listen on every IP address bound to the PC 
it is now possible to have Serv-U only listen on specific IP addresses. 
To do this, specify the IPs the server should listen on in the 'setup - 
server - IP homes' menu selection and check the "Server listens on home 
IP addresses only" box. This should work fine in case there are only a 
handful of IP addresses Serv-U should listen on. If you want the server 
to listen to hundreds of IP homes specifically this might cause 
performance to degrade.

Disk quota is be much more efficient now
----------------------------------------
Use of disk quota was a very CPU intensive option, slowing the server 
down even if only a dozen users were logged in. Now its use should not 
make any significant impact on performance.

New SERV-U.INI file entries
---------------------------
There are several additions to the .ini file which are not accessible 
by the interactive user interface. For most the default values should 
work fine, for those that insist on tuning the server by hand the new 
entries all go in the '[GLOBAL]' section and they are:

     OpenFilesUploadMode=[Any|Exclusive|Shared]
     DirListMask=[mask]
     ReloadSettings=Yes

The 'OpenFilesUploadMode' controls how Serv-U opens files for uploading 
to them. By default (the 'Any' setting) it first tries exclusive access 
and in case that fails shared access is tried. Using 'Exclusive' for 
this entry forces Serv-U to only try exclusive access, 'Shared' will 
force Serv-U to only try shared access mode. 'DirListMask' determines 
the access mask shown in directory listings. Default is 'rwx------'. 
Finally, 'ReloadSettings=Yes' causes Serv-U to reload its settings from 
the .ini file without the need to restart the server. This works for 
most settings but not all. Some experimentation is required. Useful for 
those that change the .ini file outside Serv-U.

Access DLL event logging
------------------------
Those developing access verification DLLs for Serv-U will be happy to 
hear that the 'setup - logging' menu now has an option to log all 
events and their return values.

New access verification DLL event
---------------------------------
There is a new access verification DLL event to accomodate the new 
'append' access right. Serv-U takes a concervative approach in allowing 
access, meaning that if a user does not have 'append' access the server 
will ask the access DLL for 'delete' access. This means existing DLLs 
should continue to work even if they don't support the new 'append' 
event.

     #define SRVU_AppendFile    35 // verify append file access

     SRVU_AppendFile
        Verify if append access should be allowed for a file. Append 
        access includes write access, but not modify or delete access 
        to an existing file. The main purpose of append access is to 
        facilitate resuming of file uploads. 
          On entry:
            User = user name
            Aux = full path of file
          On return:
            Flag = TRUE if access is allowed, FALSE otherwise

New event notification DLL events
---------------------------------
There are two new event notification DLL events to inform about file 
transfer progress, the details are as follows:

     #define EVNT_ProgUp        20 // progress of upload
     #define EVNT_ProgDown      21 // progress of download

Progress of file upload
Posted every few seconds to inform about file upload progress.

       Event = EVNT_ProgUp
    SubEvent = SEVNT_None
      AuxOne = file name (complete path)
      AuxTwo = transfer mode (as text)
    Duration = duration so far of upload in milliseconds
        Size = file size uploaded so far in bytes

Progress of file download
Posted every few seconds to inform about file download progress.

       Event = EVNT_ProgDown
    SubEvent = SEVNT_None
      AuxOne = file name (complete path)
      AuxTwo = transfer mode (as text)
    Duration = duration so far of download in milliseconds
        Size = file size downloaded so far in bytes


