2008-05-23  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems: - Updated the list of problems

	* Makefile, README, approaches.sgml: - Changes in the documentation

2008-05-01  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, accsctrl.c, dir.c, dtpls.c, parser.c, parser.h, pi.c, pi.h, site.c, utf8.c:
	- Reworked code that deals with internationalized version of pathnames.
	  As ext3, ntfs and vfat use UTF-8 as the encoding for pathnames, so there
	  is not so much to do now for the code.
	- Fixed warning with incorrect size of format specifier in snprintf on 32-bit
	  architecture.

2008-04-28  Maxim Shesterikov  <libraftp@narod.ru>

	* .vimrc, Makefile, dataopen.c, dataretr.c, dir.c, dtpls.c, mlsx.c, parser.c, pi.c, pi.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	- Fixed bug in xbuf.c.
	  Incorrect handling of variable arguments list led to a shortdump of
	  the server when it sends an answer to an OPT command. The code
	  called the vsnprintf function many times without preserving the
	  right address of the ap parameter. As a consequence every time
	  vsnprintf failed because of insufficient buffer size the contents
	  of ap became undefined. On previous versions of RedHad or openSUSE
	  it did lead to any problems but on openSUSE 10.3 and 64 bit
	  architecture it led to a shortdump.

2006-06-14  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.h:
	- Removed declaration of sVersion. On SuSe 10 it is considered by gcc as an error.

2003-04-28  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.spec: - Small fixes

	* libra.spec: - Updated version information and change log.

	* approaches.sgml, dtpls.c, ftps.sgml, libra.h, mlsx.c, pi.c:
	- If client program is MS IE then file names sent in response to LIST command are UTF-8 encoded.
	  This behavior does not comply with RFC 2640. It was added because otherwise MS IE cannot handle
	  listings with names containing non-Latin1 characters.
	- Minor documentation fixes.

2003-01-02  Maxim Shesterikov  <libraftp@narod.ru>

	* mlsx.c, pi.c: - Added UTF-8 support for MLSx

2002-12-29  Maxim Shesterikov  <libraftp@narod.ru>

	* README, approaches.sgml, ftps.sgml: - Updated documentation.

2002-12-19  Maxim Shesterikov  <libraftp@narod.ru>

	* chkport.c, dataopen.c, port_pasv.c:
	- Added checking of address of incoming data connection in passive mode.

2002-12-16  Maxim Shesterikov  <libraftp@narod.ru>

	* koi8-r-unicode.txt: - Added conversion table: koi8-r to UNICODE.

	* dir.c, libra.c, mlsx.c, mlsx.h, parser.c, utf8.c, utf8.h:
	- Finished coding of UTF-8 support.
	- Loading of conversion table from local character set to Unicode.
	- Thorough testing is now required.

2002-12-15  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.c, mlsx.c, pi.c, utf8.c, utf8.h: - Finished working on UTF-8.
	- Fixed transmission of file names with \r alone over control connection.

	* dataopen.c, dataretr.c, datastor.c, dir.c, dtp.c, dtpls.c, file.c, libra.c, mlsx.c, parser.c, pi.c, pi.h, site.c, utf8.c, utf8.h:
	- Continued to work on UTF-8 support.

2002-12-14  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, libra.c, mlsx.c, mlsx.h, parser.c, pi.c, pi.h, utf8.c, utf8.h:
	- Started to work on UTF-8 support.

2002-05-25  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.spec: - Changed libra.spec

	* Makefile, pi.c, port_pasv.c:
	- Fixed bug in EPSV. Forgot to convert port to host order. This
	  precluded data connection establishment.

2002-05-18  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, README, accsctrl.c, approaches.sgml, chkport.c, chkport.h, datanostor.c, dataopen.c, dataopen.h, dataretr.c, datastor.c, dir.c, dtp.c, dtp.h, dtpls.c, file.c, ftps.sgml, inet6_xtoy.c, inet6_xtoy.h, libra.c, libra.h, libra.spec, listdir.c, listdir.h, little_endian.c, log.c, log.h, mlsx.c, mlsx.h, parser.c, parser.h, pi.c, pi.h, port_pasv.c, retcodes.h, site.c, sockets.c, sockets.h, xbuf.c, xbuf.h:
	- e-mail address changed
	- Format of server status reply changed

2002-05-08  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.spec: *** empty log message ***

	* libra.spec: - Updated RPM spec file

2002-05-03  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.spec: - Updated RPM spec file

	* Makefile, Problems, datanostor.c, dataopen.h, datastor.c, dtp.c, ftps.sgml, log.c:
	- mkstemp instead of mktemp
	- Misc. changes

2002-05-02  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, Problems, approaches.sgml, dtp.c, ftps.sgml, inet6_xtoy.c, port_pasv.c, sockets.c, sockets.h:
	- Mixed IPv4 / IPv6 connections in EPRT & EPSV.
	- Documentation about IPv6 support

2002-04-23  Maxim Shesterikov  <libraftp@narod.ru>

	* dataopen.c, pi.c, port_pasv.c, sockets.c, sockets.h:
	- PORT handles situations when server is on IPv6 and client is on IPv4.

2002-04-18  Maxim Shesterikov  <libraftp@narod.ru>

	* dataopen.c, datastor.c, dir.c, file.c, mlsx.c, pi.c, pi.h, site.c:
	- Tested changes in AccumReplyBuf_NVT
	- Tested changes in VPrintfXBuf

2002-04-12  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, dtp.c, dtp.h, port_pasv.c, sockets.c, xbuf.c:
	- Fix for "Server-side address of data connection is bound to 0.0.0.0" (discovered by Pooh)
	- Fix for "Incorrect handling of vsnprintf return code in XBuf" (discovered by Pooh)

2001-11-28  Maxim Shesterikov  <libraftp@narod.ru>

	* pi.c: - Fixed typo.

	* pi.c: - Minor fix for shutdown.

	* ftps.sgml, pi.c: - Added shutdown for command socket.

2001-11-25  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, README, accsctrl.c, approaches.sgml, chkport.c, chkport.h, datanostor.c, dataopen.c, dataopen.h, dataretr.c, datastor.c, dir.c, dtp.c, dtp.h, dtpls.c, file.c, ftps.sgml, inet6_xtoy.c, inet6_xtoy.h, libra.c, libra.h, libra.spec, listdir.c, listdir.h, little_endian.c, log.c, log.h, mlsx.c, mlsx.h, parser.c, parser.h, pi.c, pi.h, port_pasv.c, retcodes.h, site.c, sockets.c, sockets.h, xbuf.c, xbuf.h:
	- Updated e-mail
	- Removed hiding of .* files after discussion with Alex Naumov.

2001-05-05  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.spec: - Updated RPM specification

	* Makefile: - .depend won't go into tarballs.

	* Makefile, approaches.sgml, ftps.sgml, inet6_xtoy.c:
	- Added conversion of IPv4 addresses that are compatible with or mapped to IPv6
	  to their text representation.
	- Minor bugs in documentation were removed.
	- dependencies.mak was replaced by .depend

2001-04-21  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.c: - Minor modifications

2001-04-12  Maxim Shesterikov  <libraftp@narod.ru>

	* README, approaches.sgml, port_pasv.c:
	- Version 1.3 is ready for testing.

	* approaches.sgml: - ChkPortAddr was replaced by ChkDataAddr

2001-04-10  Maxim Shesterikov  <libraftp@narod.ru>

	* inet6_xtoy.c: -Tested address <-> string conversion functions.

2001-04-07  Maxim Shesterikov  <libraftp@narod.ru>

	* chkport.h, dtp.c, dtp.h, inet6_xtoy.c, libra.c, libra.h, pi.c, pi.h, port_pasv.c, sockets.c, sockets.h:
	- Finished implementation of IPv6 support. Now I need to test it carefully.

2001-04-06  Maxim Shesterikov  <libraftp@narod.ru>

	* dtp.c, dtp.h, port_pasv.c:
	- Well, it works well with IPv4 FTP either if Libra is started as IPv4 or IPv6
	  server. It does not work in INET6 APPS, but it do not know who has a fault.
	  Client seems to be buggy ;-)

2001-04-05  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, dataopen.c, dependencies.mak, dtp.h, inet6_aton.c, inet6_aton.h, inet6_xtoy.c, inet6_xtoy.h, libra.c, log.c, log.h, pi.c, pi.h, port_pasv.c, sockets.c, sockets.h:
	- continuing to work with IPv6. I tested it with some ftp client. Generally it
	  works but sometimes client is unable to establish a connection. It has same
	  problems while working in IPv4 mode, therefore I think that it is a client's
	  problem (it seems to be buggy and unreliable) then a problem of server. I
	  should find a better FTP client.

2001-04-02  Maxim Shesterikov  <libraftp@narod.ru>

	* dataopen.c, dataopen.h, dependencies.mak, dtp.c, dtp.h, inet6_aton.c, inet6_aton.h, libra.c, parser.c, pi.c, sockets.c, sockets.h:
	- Continued to work on IPv6 support. Implemented EPRT and EPSV.
	- Reorganized handling of address families.
	- inet6_ntoa
	- Small cosmetic changes

2001-04-01  Maxim Shesterikov  <libraftp@narod.ru>

	* inet6_aton.c, inet6_aton.h:
	- Added inet6_aton() function. It can convert standard IPv6 addresses to their
	  binary representation.

	* Makefile, chkport.c, chkport.h, dataopen.c, dataopen.h, dependencies.mak, dtp.c, dtp.h, libra.c, libra.h, parser.c, pi.c, pi.h, sockets.c, sockets.h:
	- Started to preparing for IPv6 version
	- Implementation of EPrt()

2000-12-27  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, libra.spec: - Package name is libra-ftpd

	* Makefile, libra.spec, pi.c:
	- Reply to SYST is a "standard" UNIX reply. Thanks to Alexey Mazurov
	- Spelling fix. Thanks to Alex Lyamin
	- Package name is now libra-ftp

2000-09-12  Maxim Shesterikov  <libraftp@narod.ru>

	* libra.spec: - Rewrote spec file in version-dependant fashion.

	* libra.spec: - Modified RPM build directory

	* Problems:
	- Removed the task to write the installation guide - completed.

	* Makefile: - Makefile is set back to 1.1

2000-09-09  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile: - Tarballs store the name of directory.

2000-09-05  Maxim Shesterikov  <libraftp@narod.ru>

	* approaches.sgml, chkport.c, dir.c, libra.spec, Makefile:
	- Removed disabled code from chkport.c to be on a safe side.
	- Replaced strncpy with strncat in dir.c
	- Documentation fixes regarding command line length limit and FTP proxy.
	- Version raised to 1.1

	* approaches.sgml, chkport.c, parser.h, pi.c:
	- Added documentation section describing command line length limit.
	- Added documentation section describing protection against bounce attacks.
	- Added code for protection against bounce attacks.
	- Changed from BSD's MAXPATHLEN to standard PATH_MAX in parser.h
	- Rewrote "non-looped write()'s" according to note of Solar Designer.

2000-09-03  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, dir.c, parser.h, pi.c, pi.h, xbuf.c, xbuf.h:
	- Command line has now length limit. This limit is defined by OS limit for
	  path name length. If the server receives a command longer then this limit it
	  reads the socket until \r\n is found and ignores the command.

2000-08-15  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile: - Version is raised to 1.0.

	* approaches.sgml, ftps.sgml: - Added CVS keywords

	* Makefile, README, accsctrl.c, approaches.sgml, chkport.c, chkport.h, datanostor.c, dataopen.c, dataopen.h, dataretr.c, datastor.c, dir.c, dtp.c, dtp.h, dtpls.c, file.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, little_endian.c, log.c, log.h, mlsx.c, mlsx.h, parser.c, parser.h, pi.c, pi.h, retcodes.h, site.c, sockets.c, sockets.h, xbuf.c, xbuf.h:
	- Applied all changes from Andrey:
	   - email address and name spelling;
	   - documentation fixes:
	      - some style changes according to Andrey's taste;
	      - syntax changes for references to other server manual pages;
	      - start-up script in public directory is neither necessary nor desirable;
	      - more verbose explanation about DoS attacks;
	      - stress on chroot and proper credentials for the server;
	      - two spaces after a dot for better readability;
	      - long lines were splitted.
	- Even more e-mail address fixes.
	- Corrected some typos and mistakes.

2000-08-13  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile: - Added target cvslog

	* Makefile, dir.c, dtp.c, ftps.sgml, parser.c:
	- Fixed bug in GetDate. It refused all dates of December.
	- Corrected typo.
	- Tested program

2000-08-11  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile: - Version is propogated to 0.23

	* Makefile: - Added target for creating of CVS log.

	* dtpls.c, libra.c, libra.h, listdir.c, mlsx.c, mlsx.h, nonstd.c, parser.h, pi.h, retcodes.h, site.c, sockets.h, xbuf.c, xbuf.h, dataopen.c, dataretr.c, datastor.c, dtp.c:
	- Fixed source text formatting.
	- Removed obsolete nonstd.c from CVS.

	* Makefile, Problems, README, accsctrl.c, chkport.c, chkport.h, datanostor.c, dataopen.c, dataopen.h, dataretr.c, datastor.c, dependencies.mak, dir.c, dtp.c, dtp.h, dtpls.c, file.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, little_endian.c, log.c, log.h, md5.c, mlsx.c, mlsx.h, parser.c, parser.h, pi.c, pi.h, retcodes.h, site.c, sockets.c, sockets.h, xbuf.c, xbuf.h:
	Importing version 0.22 and 0.22.1
	   - README was slightly updated
	   - CVS trees from Andrey Savochkin and my own were merged

	   * dir.c, ftps.sgml, listdir.c, Makefile, Problems:
		- stat replaced with lstat whenever appropriate.
		- Man page sections covering installation of the product
		- ftps is now staticly linked

	2000-08-09  Shesterikov Maxim  <shesmax@ru.hilti.com>

		* dataopen.c, ftps.sgml: - Added missing \n in LogEvent in dataopen.c
		- Fixed documentation. Server logs error messages to standard error device.

		* Problems: Updated list of Problems

		* dir.c, dtp.h, dtpls.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, pi.c, Makefile, Problems, datastor.c:
		- Added support for the "backend" mode. This is reflected in the
		  documentation.
		- For the sake of compatibility LIST path/* is treated as LIST path/.
		- Directory listing is compatible with output from ls - directory part of
		  pathname is removed from the output. A peer receives only file names.
		- Documentation now explains that the absense of server-side file name
		  filtering isn't compatible with mget command of standard ftp client.
		- Server is tested with standard ftp client, NcFtp and Midnight Commander.

		* pi.h, retcodes.h, site.c, sockets.c, sockets.h, xbuf.c, xbuf.h, datastor.c, dir.c, dtp.c, dtp.h, dtpls.c, file.c, libra.c, libra.h, listdir.c, listdir.h, little_endian.c, log.c, log.h, mlsx.c, mlsx.h, parser.c, parser.h, pi.c, accsctrl.c, chkport.c, chkport.h, datanostor.c, dataopen.c, dataopen.h, dataretr.c:
		Added CVS keywords to all source files

		* accsctrl.c: Added CVS keyword to accsctrl.c

	* Makefile, datastor.c, ftps.sgml, libra.jpg:
	Importing sources of version 0.20
	- Man page fixes

	* Makefile, approaches.sgml, libra.c, parser.c, pi.c, site.c:
	Importing sources of version 0.19.
	- Server does not send bogus requests back to peer.

	* dtpls.c, mlsx.c, mlsx.h, site.c: Adding new files from version 0.18

	* Makefile, README, accsctrl.c, approaches.sgml, chkport.c, chkport.h, datanostor.c, dataopen.c, dataopen.h, dataretr.c, datastor.c, dir.c, dtp.c, dtp.h, file.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, little_endian.c, log.c, log.h, parser.c, parser.h, pi.c, pi.h, retcodes.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	Importing sources of version 0.18

2000-02-16  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, approaches.sgml, dataretr.c, dtp.c, listdir.c, listdir.h, log.c, log.h, parser.c, pi.c, xbuf.c, xbuf.h:
	Update from Maxim:
	 - file listing code was seriously simplified; wildcard matching was
	   removed;
	 - server reply logging was reintroduced.
	And my changes:
	 - tabulation fixes.

2000-02-01  Maxim Shesterikov  <libraftp@narod.ru>

	* chkport.c, chkport.h:
	Missing port check stub was added to the repository.

2000-01-22  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems, pi.h:  - A solved problem was removed from the list.
	 - Macros taking `char []' arguments were changed to avoid buggy code
	   generation.  Now macros check the argument type.  Thanks to
	   Andrey Slepuhin.

	* Makefile, dataopen.c, dataretr.c, datastor.c, dtp.c, file.c, listdir.c, log.c, log.h, nonstd.c, parser.c, pi.h:
	I've found Maxim's code which I haven't applied yet :-(
	 - Port check stub was added.
	 - `extern' word was removed in a few places in header files.
	 - Reply generation interface changed a bit.
	 - Some changes in directory listing (I don't really understand them).
	The main differences between Maxim's code and the commited one are:
	 - tabulation fixes;
	 - inetd bug workaround isn't applied;
	 - extra stdion.h includes in datastor.c dataretr.c nonstd.c were
	   dropped;
	 - formatting changes in dataopen.c weren't applied;
	 - endp initialization in SiteIdle() was deleted;
	 - OpenDataConnection() returns OK/ERROR rather than TRUE/FALSE; this
	   function isn't a logical one, it's a pure acting function which
	   sometimes may fail.
	I don't understand the following applied changes:
	 - why LLOG_REPLY was removed;
	 - why nLRS was introduced in pi.c;
	 - why ClearReplies() was dropped;
	 - why extra arguments are passed to DirInfo().

	* pi.c: I've found Maxim's code which I haven't applied yet :-(
	 - Port check stub was added.
	 - `extern' word was removed in a few places in header files.
	 - Reply generation interface changed a bit.
	 - Some changes in directory listing (I don't really understand them).
	The main differences between Maxim's code and the commited one are:
	 - tabulation fixes;
	 - inetd bug workaround isn't applied;
	 - extra stdion.h includes in datastor.c dataretr.c nonstd.c were
	   dropped;
	 - formatting changes in dataopen.c weren't applied;
	 - endp initialization in SiteIdle() was deleted;
	 - OpenDataConnection() returns OK/ERROR rather than TRUE/FALSE; this
	   function isn't a logical one, it's a pure acting function which
	   sometimes may fail.
	I don't understand the following applied changes:
	 - why LLOG_REPLY was removed;
	 - why nLRS was introduced in pi.c;
	 - why ClearReplies() was dropped;
	 - why extra arguments are passed to DirInfo().

	Well, ClearReplies() was dropped because a part of the reply buffer may
	have already be sent due to the output buffer flush.  It doesn't have
	any sense to clear only part of the reply buffer in this case.

	* dir.c: I've found Maxim's code which I haven't applied yet :-(
	 - Port check stub was added.
	 - `extern' word was removed in a few places in header files.
	 - Reply generation interface changed a bit.
	 - Some changes in directory listing (I don't really understand them).
	The main differences between Maxim's code and the commited one are:
	 - tabulation fixes;
	 - inetd bug workaround isn't applied;
	 - extra stdion.h includes in datastor.c dataretr.c nonstd.c were
	   dropped;
	 - formatting changes in dataopen.c weren't applied;
	 - endp initialization in SiteIdle() was deleted;
	 - OpenDataConnection() returns OK/ERROR rather than TRUE/FALSE; this
	   function isn't a logical one, it's a pure acting function which
	   sometimes may fail.
	I don't understand the following applied changes:
	 - why LLOG_REPLY was removed;
	 - why nLRS was introduced in pi.c;
	 - why ClearReplies() was dropped;
	 - why extra arguments are passed to DirInfo().

	Well, DirInfo() takes extra arguments to print informational message
	(entry greeting or directory change report) _before_ .message contents.

	* dataopen.c, dataretr.c, datastor.c, dtp.c:
	Wrong return codes introduced in my last code revision were fixed.

	* Problems:
	New possible DoS attack was found.  Added to the file to think about it
	later.

	* .vimrc: New textwidth.

1999-11-18  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, Problems, datanostor.c, dataopen.c, dataopen.h, dataretr.c, datastor.c, dependencies.mak, dtp.c, dtp.h, pi.c, pi.h, xbuf.c, xbuf.h:
	 - Stou(0) fixes from Maxim: temporary file creation.
	 - snprintf() result code check in xbuf.c was fixed by Maxim.
	 - Buffer size for reply buffer was changed in PIInitBuffers().
	 - cxref target was added to the Makefile.
	 - Transfer progress variables setting was properly ordered.
	 - dtp.c was splitted into dtp.c, dataopen.c, dataretr.c, datastor.c.
	 - Retr() and Stor() implementation was unified, DoStor() was introduced.
	 - Some variables were declared global (like nMaxMap);
	   some variables were kept hidden (hDataSocket).
	   DoStor(), DoRetr() and other functions get new parameter (the socket).
	 - Stripped FTP server (NO_UPLOADS) was implemented.

1999-11-06  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems: More things not to forget about.

	* Problems, dependencies.mak, libra.c, libra.h, pi.c, sockets.c, sockets.h:
	 - Fixes for data size by Maxim (size_t -> int).
	 - More fixes for data size (me).  All data transfer buffer sizes are
	   `int'.
	 - AsciiBufferSize were converted from a function to a variable.
	   Being and interface from protocol implementation to main() it's
	   pointless.  This change need more fixes in different places.

	* dtp.c:  - Fixes for data size by Maxim (size_t -> int).
	 - More fixes for data size (me).  All data transfer buffer sizes are
	   `int'.
	 - File storing was rewritten by Maxim.  More easy-to-read code
	   organization and \n handling.
	 - Some fixes for file storing code (me).  More uniform style for binary
	   and ascii transfers.  REST parameter check fix (the original check
	   whether `value' is zero was wrong ).
	 - AsciiBufferSize were converted from a function to a variable.
	   Being an interface from protocol implementation to main() it's
	   pointless.  This change need more fixes in different places.

	* Makefile: Makefile changes inspired by Maxim:
	 - more modern wildcard dependency scheme was used (`%.x: %.y'
	   instead of `.y.x');
	 - .SUFFIXES were removed; all build rules were specified explicitly;
	 - OBJECTS variable was introduced;
	 - .byteorder dependencies were fixed;
	 - Makefile dependencies were introduced;
	 - `dependencies' target was renamed to `dep' (to be typed more
	   easy);
	 - `shipment' target was renamed to `release';
	 - source tarball making rule was changed to include the directory
	   name into the archive;
	 - comments were rewritten.

1999-11-03  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems: Some problems were fixed in the last Maxim's patch.

	* .vimrc: textwidth for `F'.

	* libra.c, nonstd.c, sockets.c, sockets.h:  - Tabulation fixes.
	 - Unused variable was removed in ParseCmdLine().
	 - `ulong' types were removed.  I don't know such a type.
	 - Accidentally removed #include <sys/stat.h> in sockets.c was restored.

	* Makefile, approaches.sgml, dir.c, dtp.c, dtp.h, ftps.sgml, libra.c, nonstd.c, parser.c, pi.c, pi.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	A set of changes by Maxim and me.
	 - Size types (size_t, int, etc) were set more properly for a lot of variables.
	 - Unnecessary global variable references were killed in dtp.c.
	 - Size constraints on file names (in STAT) and .message file contents were
	   eliminated by reimplementation of socket subsystem interface and proper
	   flushes in that subsystem.
	 - An option to disable active FTP mode was introduced.
	 - \r\n sequence handling in ASCII mode was reimplemented.  The code should
	   handle properly \r\n sequence splitted into two buffers.
	 - Restart with a nonzero offset was disabled in ASCII mode because of security
	   reasons.
	   (In my personal opinion the idea of such a restart is completely broken).
	 - EINTR handling was made consistent in sockets.c.
	 - As usual some places of the source code were retabulated to convert \t into
	   spaces.
	 - Timeout command line options were dropped.
	 - Documentation update.
	 - Makefile update.

1999-11-02  Maxim Shesterikov  <libraftp@narod.ru>

	* .vimrc: Global parameters: notextauto notextmode hidden.

	* log.c: A set of changes from Maxim and me.
	 - Fixes in LogEvent to return an appropriate code depending on the importance
	   of the message.
	 - Safety checks of strftime() result were implemented.
	 - An extra increment was removed.

1999-10-28  Maxim Shesterikov  <libraftp@narod.ru>

	* sockets.c:
	A check for the type of output file descriptor was introduced.

	We handle different file descriptor types differently because of
	the non-uniform behavior of output operations.  These operations
	may cause SIGPIPE on _some_ file descriptors.

1999-10-27  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, Problems, accsctrl.c, approaches.sgml, dir.c, dtp.c, libra.h, listdir.c, log.c, log.h, parser.c, pi.c, pi.h, retcodes.h, sockets.c, xbuf.c, xbuf.h:
	 - Tabulation fixes (\t -> spaces).
	 - Remaining assert() calls were removed.
	 - Some fixes to eliminate warnings.
	 - Spelling and grammar fixes in comments.

	Some fixes were provided by Maxim (int_10 revision and recently)
	and some were made by me myself.

	* Problems:  - bind() problem was added.
	 - stat() problem was added.

1999-09-01  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems: Socket initialization note.

	* libra.c: Inetd workaround was removed.

1999-08-28  Maxim Shesterikov  <libraftp@narod.ru>

	* readme.txt: Use README.

	* md5.c: Keyword substitution reverted.

	* libra.jpg, readme.txt:

	* .vimrc, Makefile, Problems, accsctrl.c, approaches.sgml, listdir.c, log.c, md5.c, parser.c, xbuf.h:
	*** empty log message ***

	* dtp.c, sockets.c, xbuf.c: Assert calls were removed.

	* pi.c: Expandable for replies.

	* libra.jpg, readme.txt: New file.

1999-08-09  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems: More spotted promblems, some questions.

	* approaches.sgml: libc/NSS references were rewritten.

	* pi.c:  - OOB command buffers were separated from usual.
	 - Return codes were fixed in some internal functions.
	 - Socket initialization results check was made more easy.
	 - ReadCmd() was made even more clear.

1999-08-05  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems, pi.c: Compilation fixes.

	* xbuf.c:  - Copyright notice was added.
	 - Tabulation fixes.
	 - Assert changes.

	* pi.c:
	 - PI initialization was rewritten to separate steps into different functions
	   and ensure that all allocated resources are deallocated properly.
	 - Some race conditions with OOB data was fixed.  We don't want any special
	   actions without a transfer being in progress.
	 - ReadCmd was simplified.  Telnet option processing was separated.
	   Expandable buffer was created to store unprocessed data.
	   memcpy()->memmove() fix.
	 - strcpy()->strncpy() fix.

	* Problems: recv(OOB) note.

	* pi.c: Always print greeting even if server name isn't available.

1999-06-30  Maxim Shesterikov  <libraftp@narod.ru>

	* Problems: Notes about fixed problems were removed.

	* dtp.c: Retr code was cleaned up.
	The code was made more readable (at my taste).
	Some transfer accounting problems were fixed.
	Interfunction dependencies via global variables were simplified and documented.

	* Makefile: Turn on more warnings.

	* log.c: Misprints fix.

	* Problems: Hmm...  The output seems to be unbuffered.

	* dtp.c: Misprints fix.

	* log.c:  - stderr write was fixed (to handle partial write);
	 - fsync() was removed - it needs more thoughts.

	* log.c, pi.c: Retabulation (expandtab).

	* pi.c:
	Changes from int_8: use environment if available for information printing.
	Additional check for NULL string.

	* Makefile: New version number.
	.byteorder was added to the clean section.

	* .vimrc, dtp.c: Expandtab is the new policy.
	Tabs were converted to spaces in dtp.c

	* Problems, dtp.c: More informative file transfer statistics.
	The code was merged from int_9 with time accuracy fixes.

	* Problems: Some mentioned problems to fix.

	* .byteorder: Automatically generated file; shouldn't be in repository.

	* dtp.c, log.c, pi.c:  - log() calls fsync() to flush buffers;
	 - Stor() and Retr() write the file name before the operation, then writes
	   the second string with file name, size, and timestamp;
	 - nodename is taken from TCPLOCALHOST if exists;
	 - peername is taken from TCPREMOTEHOST if exists.

1999-04-27  Maxim Shesterikov  <libraftp@narod.ru>

	* pi.c: The remaining reference to `logged' variable was removed.

	* Makefile, dtp.c, pi.h:
	int_8 changes were merged into the main branch:
	 - MD5 calculation fixes (calculate the checksum for file storing etc);
	 - byte order check code for MD5 routine;
	 - `logged' variable was removed.

	* .byteorder, little_endian.c: New file.

	* .vimrc, Makefile, accsctrl.c, dependencies.mak, dir.c, dtp.c, ftps.sgml, libra.c, md5.c, nonstd.c, parser.c, parser.h, pi.c, pi.h, sockets.c:
	Some changes.

	* .byteorder, little_endian.c: Some changes.


1999-04-10  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, dir.c, pi.c, pi.h:
	.message file is displayed after the command status.

	* Makefile, Problems, dir.c, dtp.c, libra.c, sockets.c:
	 - Fixes by Maxim (int_6 to int_7): ctime -> strftime changes.
	 - Problems were removed as being solved.
	 - WriteSocket was reimplemented via sendmsg rather than write to use
	   MSG_NOSIGNAL flag.

	* .vimrc:  - A missing file pattern was added to autocmd.
	 - Indentation was changed to 3 characters.

	* dtp.c, ftps.sgml, libra.c, log.c, nonstd.c, accsctrl.c, dir.c:
	ctime -> strftime changes.

1999-04-06  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile, libra.c:  - Version stamping was implemented.
	 - clean target was added to the Makefile.

	* Makefile, dtp.c, pi.c:
	Last changes by Maxim implementing server side checksums were merged in.

	* GPL, README, accsctrl.c, approaches.sgml, dir.c, dtp.c, dtp.h, file.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, log.c, log.h, md5.c, md5.h, nonstd.c, parser.c, parser.h, pi.c, pi.h, retcodes.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	The same with stripped trail \r.

	* md5.c, md5.h: New file.

	* GPL, Makefile, README, accsctrl.c, approaches.sgml, dir.c, dtp.c, dtp.h, file.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, log.c, log.h, nonstd.c, parser.c, parser.h, pi.c, pi.h, retcodes.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	New version with MD5 checksums.

	* md5.c, md5.h: New version with MD5 checksums.


1999-03-27  Maxim Shesterikov  <libraftp@narod.ru>

	* Makefile: Source tarring rule was fixed.

	* Makefile:  - Copyright notice was added.
	 - COPTFLAGS variable was added.
	 - Phony targets were marked as such.
	 - Shipment rules were rewritten.

	* Problems: A note about /etc/services reference in the man page.

	* .message: Occasional file was removed.

	* dir.c, dtp.c, pi.c: Fixes to make the code compiles.

	* Problems: Some mentioned problems to don't forget about.

	* .vimrc: My vi settings.

	* TODO, debug.h, ftpd.h, ftpdman.txt, ftpsman.sgml, makefile, xpbuf.c, xpbuf.h:
	Dead or renamed files were removed.

	* Makefile, README, accsctrl.c, approaches.sgml, dependencies.mak, dir.c, dtp.c, dtp.h, file.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, log.c, log.h, nonstd.c, parser.c, parser.h, pi.c, pi.h, retcodes.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	Log routines and documentation update

	* GPL, README, dependencies.mak, ftps.sgml, libra.h: New file.

	* GPL, Makefile, README, accsctrl.c, approaches.sgml, debug.h, dependencies.mak, dir.c, dtp.c, dtp.h, file.c, ftps.sgml, libra.c, libra.h, listdir.c, listdir.h, nonstd.c, parser.c, parser.h, pi.c, pi.h, retcodes.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	Some bugfixes

	* Makefile, TODO, accsctrl.c, approaches.sgml, debug.h, dir.c, dtp.c, dtp.h, file.c, ftpdman.txt, ftpsman.sgml, libra.c, listdir.c, listdir.h, nonstd.c, parser.c, parser.h, pi.c, pi.h, retcodes.h, sockets.c, sockets.h, xbuf.c, xbuf.h:
	First running version

	* Makefile, TODO, approaches.sgml, debug.h, ftpdman.txt, ftpsman.sgml, xbuf.c, xbuf.h:
	New file.

	* listdir.h, makefile, retcodes.h, sockets.c, sockets.h, xpbuf.c, xpbuf.h:

	* dtp.h, file.c, libra.c, listdir.c, nonstd.c, parser.c, parser.h, pi.c, pi.h:
	*** empty log message ***

	* listdir.h, makefile, retcodes.h, sockets.c, sockets.h, xpbuf.c, xpbuf.h:
	New file.

	* accsctrl.c, dir.c, dtp.c: *** empty log message ***

	* .message, accsctrl.c, dir.c, dtp.c, dtp.h, file.c, ftpd.h, libra.c, listdir.c, log.c, log.h, nonstd.c, parser.c, parser.h, pi.c, pi.h:
	Initial semi-working revision

	* .message, accsctrl.c, dir.c, dtp.c, dtp.h, file.c, ftpd.h, libra.c, listdir.c, log.c, log.h, nonstd.c, parser.c, parser.h, pi.c, pi.h:
	New file.

