VERSION HISTORY
===============

- Version 3.012 (04/Mar/2000 by Crescent)
 +Bugfix: groupop was able to edit all users like siteop (Buba)
 +On timeout session gets freed immediately, not waiting additional timeout
  period (Crescent)
 +Reason of failed transfers now get logged in ftpd.log (Crescent)
 +New registry setting "passivemode off" disables passive mode, useful if
  FTP server is behind a firewall that blocks connect attempts (Crescent)
 +New registry setting "setgid <gid>" sets group id of ftp? processes to
  <gid>. Files uploaded to server get group id <gid>. Useful if process owner
  is in multiple groups (Crescent)
 +New registry setting "setuid <uid>" sets user id of ftp? processes to
  <uid>. Files uploaded to server get user id <uid>. Useful if server wants
  to bind to ports < 1024 but later run as an unprivileged user (Crescent)
 +All logfiles are now line buffered (Crescent)

- Version 3.011 (06/Feb/2000 by Crescent)
 +Removed infinite wait in connect() and accept() operations when doing file
  transfers or directory listings. Could cause hanging sessions. Timeout now
  hardcoded to 30 seconds. (Crescent)
 +Bugfix: Logins with 9-char-length-usernames and !-logins (kicklogin) are now
  not blocked anymore. (update, Crescent)
 +Bugfix: Changed BINARY transfers to NOT use streams, for better performance
  (Crescent)
 +Updated Java GUI and f4adp for new "group umask" feature (Crescent)

- Version 3.010 (02/Feb/2000 by SenfGurke)
 +Superuser can now see hidden-directories. (ms)
 +Introducing "umaskgroup". Now the groups can have their own umasks.
  Set it with "site group change <groupname> umask=<umask>". This group-
  usermask overrides just the umaskuser, not umaskanon or umaskroot. (ms)
  Developers: the output format of "GRP_LS" therefore changed. And "site
  group list" is updated. After the update, the groupfile is not backwards-
  compatible anymore.
 +Bugfix: Setting configuration and message files over F4AGUI (Crescent)
 +USER LIST <username> now shows min/max speeds and user info (Crescent)
 +Changed directory listings to use streams, for better performance (Crescent)
 +Changed BINARY transfers to NOT use streams, for better performance (Crescent)
 +Included symlink-resolver when changing working directory,
  registry entry: resolvesymlinks on/off (Buba, Crescent)
 +Broken uploads can be deleted (default) or left on server,
  registry entry: nukebrokenuploads on/off (Crescent)
 +Bugfix: Possible buffer overflow in user information field when modifying
  user over F4AGUI (Crescent)
 +Bugfix: changed 'CC == ""' to 'CC = ""' in configure script
 +Bugfix: Logins with 9-char-length-usernames and !-logins (kicklogin) are now
  not blocked anymore. (SenfGurke)
 +Changed format of diffall.sh output. (SenfGurke)
 +When using mkdir-msg and filenameconversion now the converted name is given
  to the msg. (SenfGurke)
 +Fastlogins can now be done using the username with a leading $-sign, then
  the welcome-msg is suppressed. (SenfGurke)

- Version 3.009 (09/Jan/2000)
 +When restoring the superuser, the disabled-flag gets cleared too.
 +Fixed the bug, that anonusers got logged out immediately when giving
  no password (and fixed with that an error logging those logins,
  the anon-passwd's are shown in the log).
 +Fixed the configure-script to detect Sun Workshop C compiler.
  FTP4ALL compiles on Solaris (Sparc v8 and v9 architectures) using the
  Sun Workshop C compiler (must be installed in /opt/SUNWspro). (Crescent)
 +allows user stats changing for MBUP= MBDOWN= WKUP= WKDOWN= MUP= MDOWN=
  YUP= YDOWN= instead of just += and -= as well as speed changing KBSUP=
  KBSDOWN= KBSWKUP= KBSWKDOWN= KBSMUP= KBSMDOWN= KBSYUP= KBSYDOWN=
  (in kb/s). (top-ace)
 +When sending of action (UDP) fails, retry up to 10 times (Crescent)
 +Fixed a bug that caused syntax error on "USR_RST credit" (Crescent)
 +Handed out bandwidth gets returned on logout; bug possibly consumed
  bandwith which would never be returned (Crescent)

- Version 3.008 (06/Dec/1999 by Crescent)
 +Bugfix: rename of directories works
 +Bugfix: 0-byte upload bug (no need to replace transfer.c any more)
 +Bugfix: when statistics are reset, top ten list is invalidated (sometimes
  prevented login after week or month stats have been written and you had
  to restart the server)
 +Check for C-library compatibility in configure script

- Version 3.007 (17/Oct/1999 by Crescent)
 +Top Ten Variables (%T) extended to show week/month/year/total list:
  %T{0-9}[m|t|w|y]{d|e|l|u}{a|n|i|m}
         ^^^^^^^^^
  If you leave out [m|t|w|y], then the total list is shown. (Crescent)
 +Removed a daemon-crash, when an anonymous user logs in without giving
  a password. (Senfgurke)
 +Fixed a bug in user-remove. (Buba)
 +Fixed a bug in memory-allocation. (Buba)
 +Fixed login-kick. Login-kick sends now SIGTERM, causing the signalled
  processes to terminate immediately. Calling process is not killed. (Based
  on idea by Buba) (Crescent)
 +FTP message output functions in ftps (send_message_exp and send_reply_exp)
  must be given a flag to control variable and color expansion:
  expand-flag & 1 => expand variables
  expand-flag & 2 => expand color
  The old functions (send_message and send_reply) remain for compatibility.
  The expand-flag in these funtions is hardcoded to 3 (which means expand
  both variables and color). (Crescent)
 +Turned off variable and color expansion in SITE REG commands
  (was superfluous and caused garbled output). (Crescent)

- Version 3.006 (05/Oct/1999 by Senfgurke)
 +when doing "configure debug" the ftp4all-debug-file is created as
  well.
 +as groupop/superuser you can now set the password of users with
  "site usr change <username> passwd=<string>" or clear it without
  the <string>.
 +fixed a bug when a unauthorized user want to list the groups.
 +fixed the broken environment-variables from v3.005.
 +site reconfig removed. Useless due to registry-system.
 +Serious bug in credits system removed (user got 16gb credits).
 +top-list is now available in the welcome-msg too.

- Version 3.005 (17/Sep/1999 by Crescent)
 + modified configure script to detect sparcv9 architecture
 + modified code to compile under sparcv9 architecture
 + replaced fdopen(sock,"r+t") with fdopen(sock,"rt") + fdopen(sock,"wt")
   in ftpd.c and ftps.c (because r+t did not work on solaris 7, this was
   the reason that socketpair() did not work... now it works)
 + PASV rewritten: removed DNS lookup, now gets local ip address from
   connected client socket
 + fixed a bug in f4adp_admin: when a non-superuser registers a watcher
   he could see the current user activity even it was a hidden activity
 + fixed a bug when using the "%c" variable.
 + External checker and dupe checker wildcards are now case-insensitive
 + Fixed bug when valued > 767 MB got displayed as GB
 + No permission files get created in cdpath any more
 + Fixed bug when USER ADD set gid -1
 + %l displays ratio as 1:n if possible
 + Fixed bug when SIGPIPE errors shows in ftpd.err when rejected_ip applied
 + 'SITE PASSWD -' or 'SITE PASSWD user -' clears password

- Version 3.004 (28/Aug/1999)
[Additional Features]
 +added: site user change MBUP/MBDOWN +|- (total)
                          WKUP/WKDOWN +|- (week)
                          MUP/MDOWN   +|- (month)
                          YUP/YDOWN   +|- (year) (Slammar).
 +added: statfile now writes ip's as well as all the other info the userfile
  should contain. (Slammar)
 +added: gstatfile (group-file in ascii). Set in the registry "gstatfile
  path/to/script" and it writes this file together with the user-statfile when
  you send SIGUSR2 to your daemon. (Slammar)
 +Introduced the env-var "F4A_STD" containing the "standard/" directory-
  location of ftp4all, to make scripts more flexible. (senfgurke)

[Bugfixes]
 +fix allows someone with an ident@ip to login if ident-checking is turned
  off. (CR)
 +fix for IP+ bug that always gives IP-Range full. (Slammar)
 +fix for site user remove <user> when user not in userbase now the ftpd
  doesn't crash (crescent)
 +Fixed the pre_upload/pre_download bug. (senfgurke)

- Version 3.003 (19/Aug/1999)
 +Fix whan upload checker failed because file was not closed
 +Check for libresolv in configure script
 +Removed -O from Makefiles when compiling with debug
 +Changed year from 2 to 4-digits in all logfiles
 +Changed Makefile in cfg subdir, to first create object files

- Version 3.002 (16/Aug/1999 by Crescent)
 +watcher daemon support: daemon forks new ftpd as soon as it crashes (-w)
 +APPE command added (resume broken uploads, similar to STOR)
 +communication with children changed to 100% non-blocking mode in ftpd
  (daemon now never stalls)
 +connections to admin port now get handled by ftpa (ftpd forks off ftpa,
  purposes: non-blocking ident lookup; terminate particular admin session;
  admin sessions appear in monitor)
 +new registry entries: reject and bouncertimeout

- Version 3.001 (11/Jul/1999 by Crescent)
 +numerous bugfixes
 +bandwidth limit works for upload and download (well tested)
 +added and tested bouncer support for rftp-bouncer and bnc4all
  supports not multiple bouncers in registry entry "bouncer", e.g.
  "bouncer 129.4.5.6 128.7.6.5 109.33.44.55"
 +ident lookup moved from ftpd to ftps (for non-bouncer mode)
 +added alternative socketpair() support (instead of pipe() for ftpd<->ftps)
  advantage: only 1 file descriptor is needed for a connection instead of 2,
  this means f4a can handle 1000 simultaneous sessions instead of 500
  (assuming a limit of 1024 file descriptors per process)
 +added command line options for: version, help, foreground, superuser
  (debug: "strace ftpd -f" lets you trace all system calls of ftpd !!!)
 +new variable %v prints version
 +hidden directories (chmod d+h)
 +DES support re-added

- Version 3.000 (Crescent)
 +configuration files: etc/*.cfg with f4adp commands for administration
 +finished GUI: f4a now 100% configurable with GUI
 +development platform is now: suse linux 6.1 (glibc2.1) on intel pentium
  (was: slackware 3.x libc5.x on intel pentium)
 +all open files get closed on exec() (debug: try "lsof -p <pid>" and see !!!)
 +log/ftps.err takes now log messages from ftps, log/ftpd.err only log
  messages from ftpd
 +error log messages from ftpd get broadcasted to GUIs
 +fixed GUI problem with too small input fields: replaced powersoft layout
  manager by java gridbag layout manager.
 +updated documentation
 +added some debug facilities
 +bandwidth limit works for download only !! (and even there not much tested)
 +changed f4adp log commands. merged client activity commands in log commands
  ftps now sends always a full line of log information, terminated by \n
  the method to begin sending log info and the doing some other stuff (like
  transferring a file) and then finishing log info has now been completely
  removed, to prevent problems with ftpd receiving this info and possibly
  blocking when reading until \n.
 +The whole DES thing needs to be tested !!!

- Version 2.100.4 (Crescent)
 +configuration file (ftpd.conf) replaced by registry (ftpd.reg)
 +default registry in standard/etc with only 3 entries !
  (quick start: modify entries, start server & use GUI to configure)
 +GUI support for registry modification, port change, server state change,
  messages (user/group/default) and other config files
 +Java GUI now can configure WHOLE SERVER (no need to use FTP or to
  edit config files from shell)
 +group, user & registry saved regulary upon modification:
  group & registry files every 2 minutes (hardcoded)
  user file every 15 minutes (hardcoded)
 +limits configuration file: set max users and bandwith depending on
  day of week and time of day

- Version 2.100.3
 +site commands can now be logged. just add the "site" to the log-
  line in ftpd.conf.
 +when user-ip-stack is full and the op wants to add one with IP+
  the server now responses.

- Version 2.100.2
 +Even more bugfixes.
 +New Env-Var "F4A_APASS" for the "passwords" of the anon-users.

- Version 2.100.1
 +Bugfixes, more to come

- Version 2.100 (by Crescent, Released March/1999)
- see doc/index.html for details
 + New permission system
 + More statistics
 + 64 bit version
 + GUI and monitor support
 + standard directory tree
 + FTP messages now in files only
 + group defaults


- Version 2.23 (Released on 13/Oct/1998)

 +IMPORTANT CHANGE: The random disconnects seems to be fixed. BUT: You
  have to change your scripts, which use to read the Username or Class
  from stdin, because the data for the script is now given in Environment
  Variables (F4A_USER, F4A_CLASS, F4A_SUBCLASS and F4A_EXTRA). In this
  version the stdin-reading is still allowed, but you have to switch it
  on when running configure (backwards compatibility). In the next version
  this function is certainly removed so please update your scripts.
 +Fixed a bug when a connection is attempted but the 3-way TCP handshake
  is not completed, thus a pipe on the system got lost, which after
  happening a number of times would result in a crash of ftpd.
 +You can print out the running version of ftp4all with "site version".
 +The Pid-File now gets deleted at server-shutdown.
 +SITE COLOR continues working after a short break in v2.22.
 +Minor Change to the directory listing format. Username and Groupname
  column are now 9 chars wide instead of 8 before.  that means all stuff
  after username / groupname appears 2 columns more to the right. I 
  have verified this with other ftp-server, should give no problem.
 +Some cosmetical changes in other_ip-processing.
 +Fixed logins=0-bug, just a "=" was missing. Now you can set logins=0,
  setting unlimited logins to this user.
 +Waitport works now quite smart (thanks to Anton Lam). When the old port
  just waits to be closed by the OS, ftp4all can reuse it. If not it tries
  to get the port 10 times with 5s delay, after that exits.
 +Fixed that GID-bug when adding users (thanks once again to Anton Lam).

- Version 2.22 (Released on 11/Sep/1998)
 +New variable: %k is the last speed of the user's upload/download (KB/s).
 +Added site command: COUNT. Counts the users logged in.
 +Added two Sub-Classes: GroupOp and UserEdit. See 'groupop' and 'useredit'
  in the config file help.
 +Added an Extra parameter: Invisible users are not showed in SITE WHO nor
  SITE COUNT.
 +Moved Color to Extra parameter (instead of class). In the previous 
  version, doing SITE USER CHANGE xxx CLASS=c made him superuser.
 +Scripts can read stdin to get subclasses and extra parameters:
   1st line: User name
   2nd: Class (s|n|a)
   +3rd: Subclass (g|e|-)
   +4th: Extra (ic|i-|-c|--)
 +Changed return code from 250 to 226 on successfull upload/download.
 +Login with !<login name> to kill ghosts on the site (if loginkick is
  set in the config).
 +New site command: ADDUSER to add users on one line.
 +Add 'waitport' in the config file and ftp4all will wait for the port
  to be closed if it's already open (instead of incrementing the port number).
 +The default whoonline_msg_tail shows now the actual version.
 
- Version 2.21 (Released on 14/August/1998)
 +Added other_ip feature. You can now specify a ip to which the server will
  bind. The feature was implemented to bind the server to a certain ip when
  on the host multiple ip's are configured, but it also can be used when no
  name-entry is made for the host (I thought it would be helpful for some
  people). When no other_ip is given in the ftpd.conf the server uses the
  normal configuration of ftp4all.
  Syntax (ftpd.conf): 'other_ip <ip-to-use>'. (SenfGurke)

- Version 2.21b1 (Released on 17/Juli/1998)
 +Fixed uid change bug (two user with same uid), thanks to crestor for
  discovering/fixing it. :)

- Version 2.20b1 (Released on 7/Juli/1998)
 +Fixed permission file deletion bug (thanks to equinox and crestor)

- Version 2.20 (Released on 22/May/1998)
 +Added Directory-Shortcuts (Contributed by Avoozl. Thx Dude, you rock !)
 +Fixed/Added helptext for chmodr/chownr
 +Removed WhoOnlineMsg Configuration parameter (whoonline_msg_top,
  whoonline_msg_body, whoonline_msg_tail replace this)

- Version 2.20b2

 +Fixed a bug in ident checking (thanks CR for discovering it)
 +If ident is ommited in 'site user change <name> ip=...'sequences, 
  the ident for this ip gets removed.
 +*@-idents get removed (is the same as no ident for this ip)
 +changed names for msg_who_top, msg_who_body and msg_who_tail
  to whoonline_msg_top, whoonline_msg_body, whoonline_msg_tail
  (fits better top the other naming conventions for messages or
  message-files
 +changed default layout of 'site who' (experienced ppl will use
  the new possibilities to customize it)
 +changed order of password check and ident/ip-check in function
  user_request_login_permission (thanks CR for this suggestion),
  makes a little security improvement

- Version 2.20b1

 +Added 'SITE USER CHANGE <USERNAME> IP+=<[ident@]ip>'
  Adds the ident@ip at the first unused iprange of the user 
 +Added 'SITE USER CHANGE <USERNAME> IP-={0-9}'
  Removes an ip-range from a user
  (shortform of 'SITE USER CHANGE <USERNAME> IP{0-9}=0.0.0.0)
 +Added 'SITE USR ...' as synonym for 'SITE USER ...'
  'SITE USER ..' is used for retrieving information about a certain
  user or to list all number of users in other daemons (rftpd, bftpd).
  Now it is possible to use 'SITE USR' for all administrative tasks
  in ftp4all and assign 'SITE USER ..' to an external script that does
  userinformation/userlisting.


* Boleto decided to write his own ftp-daemon and left the ftp4all-project.
  Good luck for the future and many thanks for your help !
                                                                 -Overhead

*==== Version 2.19.1b ==-=--=----=---- --  -      -
|
+- Added support for external text files to personalize SITE WHO command.
|  msg_who_top_file, msg_who_body_file and msg_who_tail_file rules that in
|  ftpd.conf. Who Cookies have been added for that (printf formattable).
|
`==--=---=-- --  -     -

*==== Version 2.19 ==-=--=----=---- --  -      -
|
+- Added Ident Checking: Idents can be added in the form ident@iprange where
|  iprange works as before. Ident name can be 11 char long. Ident checking can
|  be activated with the "ident on" flag on ftpd.conf -Boleto-
|  
+-- Better layout SITE USER LIST and SITE USER LISTA -Overhead-
|
+-- Added SITE USER LIST <username> Command showing additional lines for idents
|   and ipranges, while SITE USER LIST doesn't show this. -Overhead-
|
+-- SITE USER LISTA show now users@ipranges ident -Boleto-
|
+-- Fixed a bug giving "pipe error" while listing users with ipranges string
|   too long by deleting ident@ipranges visualization :-( (i'll readd it soon).
|   -Boleto-
|
+-- From now I (Boleto) begin to work to ftp4all; I don't know if i'll be able
|   to improve this program or not but i'll do that 'cause i like this program!
|   My thoughts about improvements goes to: nuking system, link, user manager,
|   configuration program with ncurses interface. -Boleto-
|
`==--=---=-- --  -     -
