$Id: NEWS,v 1.382 2003/03/04 05:25:41 castaglia Exp $

1.2.8 - Released 04-Mar-2003
---------------------------------
- Bug 1863 - Unable to build under UnixWare 7
- Bug 1943 - Unable to install on FreeBSD 5.0.  FreeBSD 5.0's header files
  have been rewritten, and glibc's glob.h collided with the new files.  The
  fix was simply to use size_t, rather than trying to determine and use
  __size_t (glob.h was intended to be used during library compilation, not
  during application compilation).
- Bug 1950 - OSX setgrent(3) returns int, causing compiler warning.  Unlike
  most other Unix flavours (but like FreeBSD), OSX's setgrent(3) returns
  int, rather than void.  A configure check was written to test for this. 
- Bug 1949 - Compiler warns of 'long double' usage on OSX.  Typecasts have
  been added to quell some warnings, and an autoconf check added for compiler
  support for -Wno-long-double to quell others.
- Bug 1952 - Umask Bug: Server Not Honoring VirtualHost Umask.  This was
  a statcache caching effect bug.
- Bug 1916 - Transfers hang with strange transfertime in logfile.  This
  appears to have been due to use of an uninitialized value.
- Bug 1948 - mod_xfer relinquishes privs before chmod takes place.  In
  places where UserOwner is used to "give away" files, the chmod() attempt
  that follows the chown() (used to preserve permissions sometimes altered
  by the operating system's chown(2) call) did not use root privs, and thus
  the client did not have permission to write the file.
- Added FTPS FEAT responses, as per Section 5 of the FTPS Draft.
- Bug 1956 - Upload transfer rate broken.  The wrong variable was being used.
- Bug 1941 - SCO OpenServer 5.0.5 issues.  Fixing this bug required adding
  more autoconf portability checks.
- Bug 1958 - ftpwho -o oneline has newlines when client is idle.
- Bug 1908 - ExtendedLog to work properly again in <Anonymous> context.
- Bug 1966 - SCO OpenServer 5.0.5 and inetd.
- Bug 1953 - STAT -R does not work.  There were some variable initialization
  issues in the handling of options for the STAT command.
- Bug 1970 - Transfer time wraps around and causes problems with transfer
  speed calculation.  This was a reporting problem, mostly.  An internal
  variable was storing time in microseconds; now using milliseconds.
- Bug 1937 - Transfer hangs when using TransferRate limits on a resumed
  download.  This turned out to be a misuse of the resumed file position
  when calculating the TransferRate.
- Bug 1964 - When uploading to an NFS mounted file system in passive mode
  read() get EAGAIN and closes connection.  This turned out to be caused
  by control messages in the STREAMS device (and thus relevant only to
  systems that use STREAMS).
- Portability fixes for FreeBSD-5.0.
- Bug 1976 - Login hangs, spawned process runs in endless loop in mod_auth.
  This was caused by a combination of "AuthAliasOnly on" and UserAlias
  directives in which the alias and the username were identical.  Different
  alias and username in a UserAlias directive is now required.

1.2.8rc2 - Released 29-Jan-2003
---------------------------------
- Bug 1894 - Double chdir into self-referencing symlink fails with
  "No such file or directory".  The errno value has been changed from
   ENOENT to ELOOP.
- Bug 1272 - Requested Addition: DenyFilter by User or DenyFilter by Directory.
  AllowFilter and DenyFilter are now extended to <Directory> and .ftpaccess
  contexts.
- Bug 1671 - new directive SQLLogFile.
- mod_linuxprivs has been renamed to mod_cap and is now built into ProFTPD
  by default if the host OS (Linux) supports it. autoconf detection code
  based on a submission by Mihai RUSU <dizzy@roedu.net>.  The mod_cap
  directives are CapabilitiesEngine and CapabilitiesSet.
- Bug 1893 - Apple likes to move things. PAM support works on OS X again.
  Submitted by: thesin@users.sourceforge.net (Justin F. Hallett)
- Bug 1826 - Makefiles are a bit icky
- Bug 1904 - Tru64 UNIX 4.0D and sstrncpy()
- Bug 1891 - SGI syslog isn't being written to.  Turns out that /dev/log on
  SGI is a STREAMS device, just as for Solaris.  The fix for this bug works
  for IRIX6; earlier versions of IRIX may still see this bug.
- Bug 1919 - <Directory> section already configured for $dir needs
  clarification.  This has been resolved by adding a debug statement (level 2)
  to the <Directory> handler that reports on the given/resolved paths used.
- Bug 1910 - ProFTPD hangs on SIGHUP.  This was triggered by mixing stdio
  and regular I/O library calls related to password and group entries.
- Add -Wundef and -Wfloat-equal to CFLAGS (Suggested by Steve Grubb
  <linux_4ever@yahoo.com>)
- Fixed broken tcpReceiveWindow and tcpSendWindow configuration directives.
  The setsockopt(2) function was being called at the wrong time during the
  establishment of the data connection.
- %f for DELE commands was not being properly expanded.
- Bug 1923 - %N magic cookie reports incorrectly.  This was an off-by-one
  bug.
- %L was reporting the remote IP address, rather than the local IP address.
- Bug 1922 - Server allows RNTO an existing file even with AllowOverwrite
  turned off.  Now, RNTOs to existing files are denied unless AllowOverwrite
  is on.
- ftptop now displays transfer rates in it's "transfer speed" display mode.
  Use the 't' key to toggle between ftptop display modes.
- Bug 1926 - AuthOrder doesn't work
- Bug 1918 - AuthUserFile not works normally.
- Bug 1241 - Additional functionality: HomedirOnDemand.  This has been added
  as a new configuration directive, CreateHome.
- Bug 1734 - Cygwin - Unable to set uid
- Bug 1938 - upload to root directory fails.  This was caused by caching
  effects.
- Bug 1939 - RLimitMemory seems broken.  The problem turned out to be bad
  handling of the case where sizes were used without specifying units.
- Bug 1911 - NLST is not being Limited in DIRS.  The issue was that directory
  paths were not being properly expanded, for purposes of looking up <Limit>s,
  in the handling of NLST.

1.2.8rc1 - Released 28-Dec-2002
---------------------------------
- Bug 1597 - Problems with HP-UX 10/11 trusted systems, mod_pam, and mod_unixpw.
- Bug 1482 - Add new %U meta to LogFormat, for logging original username.
- Bug 1683 - Handling of VirtualHosts on startup.  Now, rather than dying
  when unable to resolve a <VirtualHost> DNS hostname when starting up, the
  daemon will log the error, and skip the bad <VirtualHost>.
- Bug 1825 - AUTH macro namespace cleanup.  A "PR_" prefix has been added to
  the AUTH_* macros, to help prevent namespace collisions.  This means that
  some third-party auth modules may need to be updated.
- Bug 1806 - Add RFC2389 support.
- Bug 1833 - Add ability to have add'l module initialization callback.
- Bug 1743 - No magic cookie for number of files transfered.  New cookies
  added for Display* files: "%i" for total number of files uploaded (read "in")
  during a session, "%o" for total number of files download (written "out")
  during a session, and "%t" for total number of files transferred (both
  uploaded and downloaded).
- Bug 1653 - Complete the FS API abstraction implementation.  The Developer
  Guide will have the complete details on using this API.
- Bug 1712 - TLS support.  mod_tls-2.0.5 has been added to the distribution.
  Many, many thanks to Peter Runestig for his work on this, and for maintaining
  his code through so many versions of ProFTPD.
- Bug 1788 - Add ability to configure auth module checking order.  This is
  now configurable via the new AuthOrder directive.
- Bug 1205 - Add debug option to SystemLog.  Actually, this feature request
  has been resolved by adding a new DebugLevel configuration directive, so
  that a debugging verbosity can be set in the configuration file as well
  as on the command line.
- Added mod_rewrite to distribution.
- Bug 1403 - per-server system logs via ServerLog directive.
- Bug 1605 - MKD and RMD do not log filepaths with %f or %F option in
  ExtendedLog.
- Removing the RateRead* and RateWrite* configuration directives, and replacing
  them with a single new directive, TransferRate.
- Bug 1789 - Add ability to block recursive directory listings.  The
  LsDefaultOptions configuration directive has been deprecated in favor of
  the more feature-rich ListOptions directive.
- Added Bindings API
- Bug 1515 - Enable mod_log to log into default log / syslog.  The ExtendedLog
  directive can now take a "path" of the form: "syslog:level", where the
  "syslog:" prefix tells mod_log to log that ExtendedLog data via syslog,
  and the "level" informs mod_log of which syslog level to use.
- AIX sendfile support. Thanks to Andy Igoshin <ai@vsu.ru> for the patch.
- 1858 - move "session closed" logging from graceful quit to child exit
  sequence.  This allows for better log reporting, with respect to sessions
  ended through means such as catastrophic death of client, or segfaults.
- Added --enable-devel configure option, for enabling code of interest to
  developers
- Bug 1507 - regex pattern matching in [Allow/Deny][User/Group].  This has
  been implemented by adding a "regex" optional parameter to the AllowGroup,
  DenyGroup, AllowUser, and DenyUser directives.  The documentation will
  be adjusted accordingly.
- Bug 1882 - SITE chmod 777 file<space>name.  The patch for this works
  for filename parameters to the SITE CHGRP command as well.
- Bug 1881 - Bug in Function MaxClients.  This was caused by an off-by-one
  bug in the handling of non-anonymous settings.
- Bug 1886 - Ftpwho uses too many lines when authenticating.
- Bug 1875 - same radius packet id for start- and stop-accounting record.
- Bug 1883 - socklen_t patch. Thanks to Andy Igoshin <ai@vsu.ru> for the
  patch.
- Bug 1885 - -q/--quiet option for use with the -n/--nodaemon flag. Useful
  for running proftpd from inittab or with daemontools.
- Bug 1667 - Integrate ProFTPD with C2/SIA on Tru64 Unix.  The --enable-sia
  configure option has been added.
- Bug 1837 - Add module specifically for handling Auth*Files, providing
  finer-grained control.  The new mod_auth_file module is compiled in by
  default, and can be disabled using the --disable-auth-file configure option.
  For consistency, mod_unixpw.c has been renamed to mod_auth_unix (and now
  has a --disable-auth-unix configure option), and mod_pam.c has been renamed
  to mod_auth_pam.c (with an explicit --enable-auth-pam configure option).
- Bug 1900 - ftpwho's output on uploads.  ftpwho now reports "n/a" rather than
  "0%" on uploads, for the server does not know how large of a file is being
  uploaded in advance, and cannot determine a "percentage done" value.
- Bug 1888 - Increase mod_linuxprivs configurability.  Two new directives,
  LinuxPrivsEngine and LinuxPrivsCapabilities, are added.
- Bug 1905 - AIX needs "config.h" included before *anything* else.
- Bug 1903 - ftpwho depends on snprintf but doesn't link in lib/libsupp.a
  Primarily of issue under Solaris 2.5 and Tru64 4.0D.
- Bug 1863 - Unable to build under UnixWare 7
- Bug 1906 - Add description strings to AC_DEFINE

1.2.7 - Released 05-Dec-2002
----------------------------
- Bug 1840 - Problem with syslog default destination on HP-UX.  HPUX uses
  a default device of /dev/log.un rather than /dev/log.
- Bug 1844 - DisplayLogin %y macro is off by 1.  Consequence of scoreboarding
  code changes.
- Bug 1838 - Since 1.2.6: in add_useralias() setting flag CF_MERGEDOWN breaks
  aliased anonymous functionality.  The fix was to set the CF_MERGEDOWN flag
  only if the UserAlias directive is not being used in the <Anonymous>
  context.
- Bug 1812 - Double logging lines for ExtendedLog.  No need to merge this
  particular directive down.
- Bug 1848 - undefined reference to `halfdelay'. curses does not seem to
  provide this function, as ncurses does.  The patch works around this by
  using halfdelay() if linking against ncurses, and using nodelay() and sleep()
  if linking against curses.
- Bug 1839 - undefined reference to `get_fs_size'. Expand BSD
  statfs()/statvfs() support beyond FreeBSD.
- Bug 1680 - Error in startup script. Add /usr/local/sbin/ to the included
  rc script's $PATH
- Bug 1852 - Proftpd gets signal 11 on "quote site".  The mod_site module
  was not properly checking the number of parameters for SITE commands.
- Bug 1856 - TimesGMT acts like default is 'off'.  The default for this
  directive was inadvertently set to "off", rather than the documented default
  setting of "on".
- Bug 1853 - SyslogFacility: unable to open syslog.  This turned out to be
  due to the fact that /dev/log on Solaris (and other platforms?) is a
  STREAMS device, which requires open() and putmsg(), rather than connect()
  and send().
- 1846 - File overwrites fail.  Tracked down by Sergei Rozinov to involve
  uninitialized stack data.
- Bug 1861 - 'ftpwho -v -o oneline' print all connections in one line.  This
  bug appeared in 1.2.7rc3, a consequnce of Bug#1815.
- Bug 1868 - Wrong cmdopts in ftpcount.c.
- Added custom memory scrubber routine to deal with the issue mentioned in
  this Bugtraq thread: http://online.securityfocus.com/archive/1/298598

1.2.7rc3 - Released 15-Nov-2002
-------------------------------
- Fixed configure script detection and handling of ncurses (HAVE_LIBNCURSES
  was not being properly defined).
- Added --enable-scoreboard-buffer-size option to configure script, for
  tuning the size of some scoreboard fields (e.g. the full client command
  and the current working directory).
- Bug 1287 - Error compile with autoshadow option.  AIX does not have
  traditional shadow support, and uses other mechanisms.  This means that
  the --enable-autoshadow and --enable-shadow configure options should not
  be used when configuring proftpd for AIX.  The configure script has been
  updated to detect when these options are used on AIX, and to automatically
  disable them.
- Bug 1722 - Can't work magic cookie %F on FreeBSD.
- Make sure session.xfer uses cleared memory so unset structure members
  won't contain random values.
- Fixed handling of AuthAliasOnly, broken slightly by Bug#1567.
- Bug 1800 - Proftpd child segfaults when using a PASS without no USER first.
  mod_wrap was making a bad assumption about the USER name being available.
  This assumption has been corrected.
- Bug 1803 - Check for SIZEOF_UNSIGNED_LONG_LONG to determine LFS support
  breaks some Linux installations
- Bug 1805 - PAM support under Mac OS X
- Bug 1772 - Docs fixup in RPM spec file
- Bug 1398 - there is no log rotate for /var/log/xferlog
- Bug 1814 - class names are truncated in scoreboard entry
- ftptop can now use either curses or ncurses
- Bug 1818 - proftpd doesn't compile on hpux11
- Bug 1760 - AllowOverwrite not operational.
- Bug 1703 - mod_sql_mysql compile error.  This was eventually tracked down
  to an overlap between ProFTPD's bundled getopt implementation, and
  MySQL's bundled getopt implementation.  To prevent this problem, a new
  --without-getopt configure option has been added, which tells the ProFTPD
  build process to explicitly not use the ProFTPD bundled getopt
  implementation.
- Only link ftptop with lib{n,}curses - it isn't needed in any other
  binaries
- Bug 1815 - Patch to add class information to ftpwho (with verbose on)
- Bug 1810 - Wrong permissions assigned to uploaded file.  This turned out
  to be related to the addition of the statcache code, and its interaction
  with the UserOwner and GroupOwner configuration directives.
- Bug 1830 - MaxClientsPerHost (small) Bug.  Off-by-one error in the handling
  of the MaxClientsPerHost directive, introduced by the change in timing of
  scoreboard modifications of the new scoreboarding code.
- ftpasswd now exits with different values, depending on the problem cause.
  Thanks to Graham Dunn <gdunn@inscriber.com> for these changes.

1.2.7rc2 - Released 22-Oct-2002
-------------------------------
- Bug 1757 - non-ANSI Syntax in netio.c
- Bug 1735 - Proftpd 1.2.6 compiled on FreeBSD 4.6.2 exits on signal 11
- Bug 1759 - ftpwho shows much more connections than really is.  This bug
             only occurred for those daemons running in inetd mode.
- Bug 1769 - Lack of supplemental groups can cause segfault.  This bug is
             a result of the fix for Bug 1666.
- Bug 1770 - Forgetting to check for no IP in string.
- Moved the switching to the User/Group for a vhost up in the order, to occur
  before any modules' session initialization callback is invoked.
- Bug 1644 - LogFormat local IP and FQDN tags missing.  Added %L to LogFormat
             meta sequences for logging local server IP address, and %V for
             logging local server FQDN.
- Bug 1785 - Bad handling of symlinks.  This bug appeared as a consequence
             of Bug#1486's fix, which involved caching of struct stats in
             order to effect a speed-up of directory listings.
- Bug 1778 - 1.2.7rc1 fails to link on OpenBSD 3.2-current.  The ftptop
             utility was not properly utilizing the macro detecting the
             presence (or absence) of the ncurses library.
- Adding new configure options (see configure --help) for setting some of
  the "tunable" values in options.h via the configure command.

1.2.7rc1 - Released 01-Oct-2002
-------------------------------
- Bug 1649 - setproctitle() prepends and appends process name
- Bug 1666 - Auth modules can return duplicate supplemental groups
- Bug 1654 - Add DESTDIR in Makefile
- Bug 1682 - Broken SyslogFacility requires custom syslog code
- Bug 1076 - Toggle parsing of .ftpaccess files with a AllowOverride
- Bug 1724 - AuthPAM off does not work beginning 1.2.5
- Bug 1593 - mod_sql doesn't cache failed uid lookups
- Bug 1719 - Add RFC2228 stuff to distribution
- Bug 1663 - Add SITE CHGRP command
- Bug 1725 - disconnect when specify multiple ranges on Allow
- Bug 1253 - No ability to configure address for main server
- Bug 1432 - Pedantic handling of leading whitespace in FTP commands
- Bug 1652 - Add connection-rate limiting mechanism
- Bug 1662 - Define _GNU_SOURCE
- Bug 1486 - mod_ls is extremly slow
- Bug 1669 - Filename meta (%f) not correctly expanded for some commands
             in WRITE logging class
- Bug 1065 - New directives to limit file size on upload and download
- Bug 1658 - Separate session/daemon resource limit settings
- Bug 1436 - Feature Enhancement: Timeouts on a <Virtualhost> basis
- Bug 1737 - Enhance file hiding via regular expressions
- Bug 1736 - RETR does not handle an inappropriate REST
- Bug 1745 - multiple similar entries in extended log
- Added NetIO API
- Bug 1726 - Cygwin's Makefile inconsistency
- Bug 1713 - Scoreboard changes
- Bug 1395 - Check return values in PRIVS calls
- Bug 1732 - No checking for NULL at inet_ascii and pr_fnmatch
- Bug 1687 - Add contrib module for RADIUS authentication, accounting
- Bug 1572 - Need to use pam_end() to close session on Solaris 8
- Bug 1475 - Minor changes to SITE command handling
- Bug 1748 - SQLLog doesn't work with DELE (no filename with %f)
- Bug 1694 - SQLLog QUIT doesn't execute on connection close
- Bug 1675 - add new MaxClientsPerUser configuration option

1.2.6 - Released 04-Sep-2002
----------------------------
New mod_ldap (2.8.10)
- Fixed bug in matching of IP addresses introduced by Bug#1701

1.2.6rc2 - Released 15-Aug-2002
-------------------------------
- Bug 1681 - Fixed bug made when adding <IfDefine>, <IfModule> support
- Bug 1645 - Changed ordering of close() of HiddenStor files slightly
- Bug 1674 - Changed timing of allocation of dynamic buffer (to avoid segfaults)
             in the supplied fgetgrent() function, which is used for
             AuthGroupFiles under FreeBSD.
- Bug 1697 - Fixed memory leak involving allocated regex_t *s and SIGHUP
- Bug 1701 - Fixed/enhanced name/IP matching function by adding matching of
             ip1/ip2 to function; it was just name1/name2, name1/ip2 matching.

1.2.6rc1 - Released 02-July-2002
--------------------------------
- Bug 1407 - Removed unnecessary check for prior PORT/PASV in STOR
             PRE_CMD handler (RETR PRE_CMD handler did not have these checks)
- Added new Define, <IfDefine>, <IfModule> configuration directives, new
  command-line option -D (a la Apache)
- Bug 1556 - Restructuring the way signals are handled, so that signal handling
             functions are executed synchronously, not asynchronously
- Bug 1463 - Added reporting of dispatching to auth handlers at debug level 6
- Bug 1258 - Added STOU command handler
- Bug 1534 - Added LFS support
- Bug 1647 - Changed unnecessary use of umode_t to mode_t in mod_ls.
- Bug 1650 - Mergedown bug with LsDefaultOptions directive fixed.
- Bug 1306 - Added a TimeoutSession directive that can be used to set a maximum
             time limit on an entire session.
- Bug 1643 - Cleaned up several source code files.
- Bug 1569 - Cygwin support, added README.cygwin
- Bug 1171 - Added handling backslash-escaped newlines in configuration files,
             so that a directive can be split across multiple lines using
             a trailing \ before the newline character.
- Removed the deprecated AllowChmod and ShowDotFiles configuration directives.
- Bug 1655 - Added support for a -n option when listing directories.
- Bug 1502 - Added a lingering_close function.  As discussed in the bug
             report, this may cause issues with some clients; keep an eye
             for this, as the timeout (ten minutes) may be too long or short.
- Bug 1664 - Changed mod_sql to decline UID-to-name resolution if a UID
             field has been configured to NULL; similarly for GID.
- Removed mod_quota.c due to bugs, lack of maintainership.  Consult
  http://bugs.proftpd.org for a list of the mod_quota bugs.
- Bug 1667 - Moved definition of USE_SHADOW, AUTO_SHADOW macros from command
             line into config.h, with the other macros.
- Bug 1628 - Added getgroups auth handler to mod_sql.  The lack of this was
             causing some DefaultRoot directives (those that relied on
             group-expressions) not be correctly honored, as mod_sql was
             not supplying the groups for the users.
- Bug 1543 - Change mod_sql to not remove embedded whitespace within a
             username, just to strip leading and trailing whitespace.

1.2.5 - Released 08-Jun-2002
----------------------------
New mod_sql (4.08)
- Bug 1379 - Changed mod_sql.c to use memset() instead of bzero()
- Bug 1576 - Checks for a NULL pointer in a border case involving use of
             SQLHomedirOnDemand
- Bug 1586 - Fixed bad assumption concerning row count involving SQL-provided
             group information
- Bug 1625 - Adds compatibility fix to mod_sql_mysql for older MySQL libraries
             (a function name changed in MySQL 3.23.14)

1.2.5rc3 - Released 30-May-2002
-------------------------------
New mod_ldap (2.8.6)
- Bug 1612 - Fixed logging of RFC931 usernames in xferlog
- Bug 1595 - Transfers that result in error conditions no longer cause
             the data connection to be closed prematurely via data_cleanup()
- Bug 1627 - Fixed bug in timer code where timers were being blocked
             indefinitely, manifesting as non-functioning idle timeouts
- Bug 1521 - Cleanup of function prototypes
- Bug 1379 - Changing remaining bzero/bcopy occurrences to memset/memcpy
- Bug 1394 - ftpstats program is not working

1.2.5rc2 - Released 13-May-2002
-------------------------------
- Added Andrew Houghton to the credits
- Added in the new format FAQ
- Bug 1580 - Minor additions to the RPM spec file to allow RPMs to be built
             by non-root users.
- Bug 1546 - PF_ARGV_WRITABLE, PF_ARGV_WRITEABLE are used mixed.  Fixed to
             use PF_ARGV_WRITEABLE consistently (less changes to make).
- Bug 1608 - src/dirtree.c produces two unnecessary warnings.  Fixed to
             cast to mode_t for initialization of variables.
- Bug 1610 - compiling mod_core.c gives an unneeded/dazzling msg
- Removed legacy documentation, updated licence template, licence update
  in ftp.h to include the SSL clause.  Updated CREDITS (ML)
- New mod_ldap (2.8.3)
- Bug 1544 - Daemon does not switch to configured User/Group identity in
             <VirtualHost> as documented
- Bug 1581 - Changed Hide{User,Group} directive to use pointers for
             proper handling of uid_t/gid_t types
- Migrated to the new form of the directive list from the pdd sgml sources
  (ML)
- Bug 1563 - Moved checking for bad address lookup up, to prevent segfault
             when using MasqueradeAddress
- Bug 1567 - Fixed parsing of AuthAliasOnly to honor Boolean parameter
- Bug 1579 - the contrib RPM init.d script make inappropriate use of
             ftpshut in a few cases
- Bug 1588 - Examined return value of inet_get_conn_info() to prevent
             segfaults for ephemeral TCP connections
- Bug 1570 - Changed MasqueradeAddress context checks in code to match
             docs
- Bug 1601 - RNTO handler did not properly cleanup after itself in an
             error condition, tickling a later segfault
- Bug 1523 - Amended fix for this bug to include a pool that should prevent
             memory leaks for long-running daemons
- Bug 1566 - Changed OpenBSD-specific macro checks to allow for proper
             use of sockets
- Bug 1578 - RootLogin's configuration directive handler did not properly
             set the mergedown flag
- New mod_wrap (1.2.3)
- Bug 1509 - removed contrib/genuser.pl (per TJ)
- Bug 1509 - added contrib/ftpasswd utility script (contributed by TJ)
- Bug 1318 - sendfile() semantics incorrect under Linux
- Bug 1450 - Timers removed immediately/alarm() return no longer used for
             timing
- Bug 1446 - DefaultServer overrides SocketBindTight
- Bug 1378 - Replace alloca stuff in glibc-glob.c with something more standard
- Bug 1498 - <Limit LOGIN> block failing with mod_ldap
- Bug 1381 - include/glibc-glob.h fix for Tru64 UNIX
- Bug 1465 - can't bind to port that hasn't been closed by forked child
             process
- Bug 1379 - replace bzero/bcopy with memset/memcpy
- Bug 1476 - doc updates
- Bug 1520 - security checks for TransferLogs
- Bug 1435 - AccessDenyMsg for <Anonymous> not working
- Bug 1492 - Bad interaction between HiddenStor and UserOwner
- Bug 1493 - incorrect parsing of AuthUserFile
- Bug 1485 - Adds CF_MERGEDOWN_MULTI config_rec flag
- Bug 1459 - server fails to send response in some cases
- Bug 1533 - use memset correctly
- Bug 1517 - doc update
- Bug 1461 - modules/mod_unixpw.c pw_getgroups() makes dangerous assumption
- Bug 1512 - Minor credentials cleanups
- Bug 1516 - wrong response to CDUP/XCUP/XCWD
- Bug 1451 - add_config_param_str() no longer uses permanent_pool
- Bug 1523 - umask allocation in <Global> moved to permanent_pool
- Bug 1380 - updated getopt library for Tru64/AIX
- Bug 1468 - segfault with empty .ftpaccess
- Bug 1445 - PID file contents change when attempting to start
             the daemon a second time
- Bug 1539 - losing SGID bit on created directories w/ {User,Group}Owner
             in effect
- Bug 1537 - doc update

1.2.5rc1 - Released 18-Dec-2001
-------------------------------
- New mod_sql (4.07)
- New mod_wrap (1.2.2)
- New mod_ldap (2.8.1)
- New Directive: UseGlobbing, allows glibc-based filepath globbing
  to be disabled.
- Bug 1113 - Make.rules for HPUX incorrectly generated
- Bug 1334 - (should have been in 1.2.4, but was missed somehow)
             MaxClients none in VirtualHost forbids connect
- Bug 1368 - umask bug is hopefully squashed for good
- Bug 1389 - fixed hang on PWD
- Bug 1355 - Added POST_CMD_ERR handler to API
- Bug 1396 - DenyFilter works only in server config scope
- Bug 1410 - SIGIO now conditionally compiled
- Bug 1281 - Improper checking of server context
- Bug 1364 - Immediate chown() after file creation
- Bug 1415 - Change allowed contexts for Include
- Bug 1430 - Possible bad handling of Directory contexts
- Bug 1426 - sigsegv on `ls ///////////'
- Bug 1360 - Add getgroups abstraction for auth modules
- Bug 1289 - Increase information passed to timer callbacks
- Bug 1341 - Bad tracking of forked processes
- Bug 1400 - Improper use of MODRET_HASDATA macro
- Bug 1416 - PidFile in <Global> context is unnecessary, even wasteful
- Bug 1429 - Trivial fixes to dispatch reporting
- Bug 1419 - Remove unnecessary colons from PRIVS_ macros
- Bug 1418 - Slight change to exithandler handling to allow module
             finalization slot
- Bug 1392 - Added LOG_CMD_ERR cleanup handler for LIST/NLST/RETR/
             STOR/APPE/STOU, to defer clearing of transfer counters.
- Bug 1391 - ABOR handler now clears session.xfer
- Check retr_file for validity when RESToring

1.2.4 - Released 19-Oct-2001
----------------------------
Ooops.  1.2.3 was released with a bug that breaks Umask on
certain platforms.  This results in files being mode 0.
- Bug 1348 - Fix for mode 0 problem

1.2.3 - Released 18-Oct-2001
----------------------------
PASS argument now intentionally hidden in the proctitle.
- Bug 1242 - More verbose logging of regex evaluations
- Bug 1343 - Better reporting of command dispatching
- Bug 1335 - Documentation patch
- Bug 1334 - MaxClients none in <VirtualHost> now works
- Bug 1344 - QUIT now properly logged.
- Bug 1247 - Allow/Deny now bahave as in <1.2.2 (multiple lines work)
- Bug 1327 - AllowForeignAddress now merges down
- Bug 1280 - datatype fixups
- Bug 1311 - DirFake* can no longer raise sigsegv
- Bug 1331 - Reverse DNS is now forward checked for security
- Bug 1305 - limits.h is now included if present

1.2.2 - Released 17-Aug-2001
----------------------------
README.mod_sql update from author
new mod_sql from author
- Bug 1285 - Documentation updates
- Bug 1278 - pedantic fix to access_check()
- Bug 1266 - Use of APPEnd could corrupt files
- Bug 1286 - mod_ls displays set[ug]id bits
- Bug 1145 - DirFakeUser now applies to STAT
- Bug 1216 - xferlog man page update
- Bug 1111 - INSTALL update
- Bug 1262 - Doc update
- Bug 1217 - Doc update
- Bug 1187 - Upstream update to mod_quota
- Bug 1232 - UserOwner no longer performs chgrp
- Bug 1219 - compilation fix under gcc 3.0
- Bug 1230 - Portability fix for Sol 8 (sparcv9)
- Bug 1169 - Fix bug introduced by 1098, breaking DefaultRoot other
  than "~*"
- Bug 1234 - ABOR now always returns 226 (as per RFC959)
- New mod_sql from upstream maintainer

1.2.2rc3 - Released 19-Jun-2001
-------------------------------
- Bugs 1164,1020,1134,1190,1207
  Documentation updates
- Bug 1215 - Removed setpgid()/setpgrp() from fork_server()
- Bug 1145 - DirFakeUser can display current logged in user
- Bug 1210 - Possible silent truncation in net-ascii mode
- Bug 1212 - special files (devices, etc) didn't show up in directory
  listings.
- Bug 1189 - (again) <Directory> dups allowed in <Anonymous>
- Bug 1155 - non rfc behavior on filenames with spaces
- Bug 1193 - Error "~" processing while renaming files
- Bug 1203 - negation ('!') notation in Allow/Deny ACL broken
- Bug 1161 - %F magic cookie now displays free space on cwd
- Bug 1151 - Allow <Limit> searching in vhost or main server conf
- Copyright/License updated to allow linking to OpenSSL
- Bug 1183 - Removed duplicate find_class() call
- Bug 1189 - <Directory> duping checked for
- Bug 1185 - symlinks in homedirs now resolved at login
- Bug 1149 - Patch to contrib RPM init script
- Bug 1132 - Compilation fix for glibc 2.0
- Bug 1201 - Modifications to contrib/xferstats.holger-preiss
- Bug 1090 - {Allow,Deny}Filter Errors now *really* logged
- New mod_sql (and friends) from upstream maintainer
- Bug 1175 - GNU HURD portability
- Bug 1176 - PWD/XPWD can now be <Limit>ed
- Bug 1177 - mod_readme moved to contrib/
- Bug 1155 - HPUX portability cleanup
- Bug 1172 - Compiler clean for getopt code.
- Bug 1170 - Compiler cleanup for pr_fnmatch code.
- Bug 1169 - Better handling of DefaultRoot/DefaultChdir
- Bug 1168 - variable definitions moved from proftpd.h to main.c
- Bug 1160 - BSD root socket semantics needed for svr4.2mp;UX/4800
- Bug 1156 - USER command now takes an argument with spaces in it
- Bug 1152 - Off-by-one in the PassivePorts code
- Bug 1137 - NLST displayed hidden files

1.2.2rc2 - Released 20-Apr-2001
-------------------------------
The `AllowChmod' directive has been deprecated, and will not work
consistantly.  Use <Limit SITE_CHMOD> instead.

- Bug 1112 - Compilation fix for IRIX 6.2.
- Bug 1128 - Fixed possibled Linux sendfile() corruption issue.
- Bug 1093 - Checking for world writable log files and symlinks.
- Bug 1094 - AuthUserFile/AuthGroupFile disallow relative paths.
- Bug 1096 - Case sensitivity issues in config, better checking of
  RLimit* directive arguments.
- Bug 1090 - AllowFilter/DenyFilter now logs correctly.
- Bug 1119 - glibc-glob compilation issue on IRIX6.
- Bug 1090 - ExtendedLog should now report ALL events (even errors)

1.2.2rc1 - Released 24-Mar-2001
-------------------------------
- Bug 1085 - Better logging of "User is not a UserAlias" and "Can't find
  user."
- Bug 1043 - Fixed possible infinite loop in bandwidth throttling code.
- New RLimit* directives used to control resource usage on support platforms.
- Bug 1075 - Sub-contexts (<Directory>, etc) weren't being fully copied from
  <Global> to vhosts.
- Bug 1049 - New User/Groups weren't being seen after startup w/out a SIGHUP.
- Bug 1066 - new GNU glob() and friends, which properly limits recursion and
  avoids DoS issues.  Built-in glob support is now always compiled in to
  proftpd regardless of libc support on build platform.
- New directive "MasqueradeAddress", used to emit a "fake" (non-interface) IP
  in server ident, magic cookies and PASV commands.  Useful for firewalled or
  NAT'd networks that are not FTP aware.
- Bug 1044 - New directive "AccessDenyMsg", works just like AccessAllowMsg,
  but does the obvious.
- Bug 1055 - Not really a bug, but still .. ftpwho/ftpcount now attempt to
  scan proftpd.conf looking for ScoreboardPath, if all else fails
- Bug 1042 - <Directory /> arbitrarily not matching.

1.2.1 - Released 01-Mar-2001
----------------------------
- A relatively major issue was discovered with session.groups which may cause
  any group-expressions inside of <Limit> (DenyGroup, etc) to malfunction.
  This is the primary reason for the 1.2.1 release.
- Default CFLAGS changed from "-g3 -O6" to "-O2" because it is reported
  that -O6 is highly experimental, and including debugging really isn't all
  the useful, as someone _really_ interested in debugging can edit Make.rules.
- Defining classes without an explicit "Classes On" now generates a log
  warning.
- New mod_sql and mod_ldap from their respective maintainers.

1.2.0-final - Released 26-Feb-2001
----------------------------------
- Numerous additional bug fixes from Bugzilla.  See http://bugs.proftpd.org
  for more info.
- New and updated README.* and INSTALL.
- initgroups() support has been removed, it will be re-added in 1.3 after we
  have proper modular support in authentication modules.
- mod_sql.c, mod_sql_mysql.c and mod_sql_postgres.c back in, with a new
  maintainer (replacements for mod_sqlpw and friends).
- instead of using kill(pid,SIGCONT) to determine if scoreboard pids are
  correct, proftpd now uses kill(pid,0) which should be a lot lighter on
  heavy-load systems.  Thanks to Rob Schulhof <rrs@digisle.net> for pointing
  out that kill(pid,0) is both valid AND useful. ;) Also removed some
  completely useless and redundant /proc stat code which did the same thing
  as kill(pid,0) on linux systems.
- logging to file (via SystemLog) is now done with a single write instead of
  two in order to be atomic.

1.2.0rc3 - Released: 05-Feb-2001
--------------------------------
- mod_sqlpw.c, mod_mysql.c and mod_pgsql.c have been REMOVED from the
  distribution.  They are currently unmaintained and have numerous bugs.
  If any kind soul <grin> is interested in maintaining them, they may be
  brought back into a future version of proftpd.
- sendfile now defaults to off, use --enable-sendfile at configure
  time to enable.  Additionally, sendfile is probably fixed.
- initgroups/getgroups new defaults to off, use --enable-initgroups at
  configure time to enable (mainly useful for large systems).  Be careful,
  though, as initgroups/getgroups breaks module handling and will not work
  in conjunction with other third-party modules (mod_sqlpw, etc).
- Passive FTP works properly now (was broken in RC2).
- Compilation problems fixed on some obscure platforms.
- PAM authentication finally works again on Solaris (due to an annoying bug in
  Solaris).
- Added the DeleteAbortedStores directive.
- Fixed a minor bug in SITE HELP.
- Eliminated a race when logging in with MaxClients.
- AllowChmod defaults to 'on' now for simplicity and compatibility.
- Honor ExtendedLog NONE.
- Added SyslogLevel directive.
- Added --with-includes option to configure.
- Added --with-libraries option to configure.
- On systems with wtmpx, don't use wtmp at all.
- Handle files that begin with ~ properly.
- Documentation updated for PAM on FreeBSD operating systems.
- NUMEROUS other bug fixes, including many security issues

1.2.0RC2 - Released: 27-Jul-2000
--------------------------------
- Made sure ServerUseReverseDNS was honored.
- Compile problems on various problems.
- Added descriptions for more errors to be more RFC compliant.
- UID/GID handling is more portable now on systems with unusual UID/GID sizes.
- PAM handles should be persistent across jailed environments.
- Various additions to configure to make it more portable and correct.
- AllowChmod works properly now.
- HP/UX sendfile support.
- Cleaned up configure and supporting files.

1.2.0RCl - Released: 11-Jul-2000
--------------------------------
- Fixed a bug in mod_ls that could cause a crash.
- Fixed a minor bug related to group permissions.
- Fixed a bug in calculating file system size when using statvfs.
- Fixed a bug when a 'TYPE L' directive is passed improperly.
- Fixed Umask directive handling in directories.
- Changed bandwidth throttling to use select() instead of usleep() to work
  better across platforms.
- Updated mod_ldap to 2.5.2.
- Environment is now preserved before trying anything fancy with set_proc_title.
- Warn a user if an invalid class is specified in ExtendedLog.
- Logging of transfer times is more precise now.
- mod_quota now comes with ProFTPD in the contrib directory.
- FreeBSD 4.0 support.
- Unixware support.
- Updated config.guess and config.sub to reflect new platforms.
- Added a %k directive to DisplayQuit that shows a more user-friendly count of
  data transferred (ie: 23MB, 1.2GB, etc.).
- Added a -t option to ProFTPD to allow syntax testing of a config file.
- Made config file errors more useful by giving the filename and line number of
  the error.
- Added %A, %F, and %m directives to LogFormat to allow for the creation of
  CLF-style logs.
- Portability fixes to mod_tar.
- Timezone is preserved across jailed environments now.
- Slightly optimized directory listing/sorting in mod_ls as an interim measure.
  mod_ls will be rewritten entirely in 1.3.
- Added a -L option to mod_ls, so things like mirror work properly with
  symbolic links.
- Fixed the 'password shows up where username should be' problem with MySQL
  authentication.
- Fixed a potential security problem in setproctitle-enabled systems.
- Documented a buffer issue with CustomLog -- This will be entirely rewritten
  in 1.3.
- Fixed a potential buffer problem in mod_ls.
- Clarified syslog message information in INSTALL.
- ProFTPD will now generate a PID file in standalone operation.
- DisplayReadme now accepts patterns.
- Added AllowChmod directive.
- Allow comments and blank lines in password files.
- *snprintf emulation was incomplete on Solaris and other platforms with no
  *snprintf implementation.
- PAM now properly registers and closes a session, conforming closer to the PAM
  specification.
- More documentation updates.
- Fix a permissions display problem under certain circumstances.
- Minor fixes to classes support.
- AllowForeignAddress now applies to passive connections as well.
- Major performance upgrade to groups initialization.  Those that have large
  groups shouldn't see the 'hangs forever on login' problems.
- Fixed GroupOwner's semantics and added the related UserOwner directive.
- Added SQLKey, SQLKeyField, and SQLAuthoritative to mod_sql.
- Fixed access checks for LIST and NLST.
- Cleaned up use of '.' and '..' in mod_ls.
- Fixed a case where ServerUseReverseDNS wasn't being honored.

1.2.0pre10 - Released: 17-Jan-2000
----------------------------------
- sendfile() handles errors and non-optimal conditions The Right Way(tm).
- install_group works right in warped cases of having more than one GID 0
  group defined.  No, don't ask. :)
- sendfile() doesn't log spurious messages unless it's in debug mode now.
- A meaningful error is now generated with bad group files.
- Complex group permissions work correctly now, where they did not in a
  rare case.
- Updated included version of mod_ldap.
- Bandwidth and sendfile() use are now mutually exclusive.
- Corrected minor log issues.
- Fixed various compilation issues on various platforms (isn't this vague :)).
- More informative error messages.
- Minor semi-Y2K issue in mod_readme fixed (don't ask...look at the code :)).
- Corrected error messages on most commands in cases where an invalid number
  of arguments are specified.
- An error message is now generated when ~ expansion is meaningless.
- Invalid host entries don't show up as (null) anymore.

1.2.0pre9 - Released: 27-Oct-1999
---------------------------------
- New support for BSD sendfile() semantics.
- sendfile() deprecates politely on Linux 2.0.x.
- AuthPAMAuthoritative now defaults to False.  This should clear up any
  confusion on using PAM with AuthUserFile and friends.
- Removed Bandwidth from the documentation.
- Fixed a rare segfault in mod_auth.
- Logging has changed slightly to be more informative and more consistent.
    All messages that get logged are now preceded with
    <virtualhost> (remote host[remote ip]).
- mod_ldap for authentication against LDAP directories is now in place.
- ftpwho/ftpcount -- a grammatical error corrected, and they now build
    as seperate binaries.
- Fixed the 'no names, just UIDs' bug.
- Added genuser.pl to facilitate AuthUserFile entry creation.
- Umask now takes an optional second argument, specifying a directory umask.
- Work around FreeBSD's broken setpassent(), and a new option to override
    this in fixed versions of FreeBSD's libc (--enable-force-setpassent).
- Generate RPMs for both inetd and standalone versions of ProFTPD.
- Added AuthUsingAlias to allow for more fine-grain control of anonymous
    logins.
- Added support for 'TYPE L 8' and 'TYPE L 7' per RFC 959.
