]> git.sesse.net Git - betaftpd/blob - doc/CHANGES
Documentation re-linebreaking and updating.
[betaftpd] / doc / CHANGES
1 Version 0.0.8 (the Try-to-do-way-too-much-in-one-release Release, originally the
2 Portability Release)
3
4 0.0.8 has been through a lot of preview/beta releases, and is a _totally_
5 different beast from 0.0.7. As a consequence, there have been many minor
6 changes from release to release, which are uninteresting in the big picture
7 and thus has been removed from the list. For a complete list, see the file
8 CHANGES-0.0.8.
9
10 - Support for not running as root. This implies using its own database of
11   rights and users. Give --enable-nonroot to configure to enable it. Users
12   running BetaFTPD as root are not affected by this support in any way.
13   BetaFTPD is still small with this feature, expect about 1 kB (6%) extra
14   for database routines and hooks in the main code. 
15
16   This is still very experimental. Do not expect this to be better until
17   _at least_ 0.0.9.
18 - Fixed a LOT of bugs, some segfaulting, some minor.
19 - MAJOR performance improvements in almost all areas. One of the main
20   contributors in this area has been Dan Kegel (see the CREDITS file).
21 - Some changes to compile better under Debian GNU/Linux. A .deb-file was ready,
22   but due to lost access of a Debian-system, this was discontinued :-(
23 - BetaFTPD will now try to install itself (wow! (not)) in the same directory as
24   the file called `ftpd', if you have that file.
25 - Support for non-Linux platforms! For now, only SunOS/SVR4 and FreeBSD.  SunOS
26   just barely works, and FreeBSD lacks sendfile() support. Both are generally
27   untested.
28 - Gave the version its own name, like Samba does :-)
29 - If you have mmap(), BetaFTPD will no longer generate temporary files for
30   directory listings, but generate them in-place in memory.
31 - Completely restructured the internal listing functions, to make them more
32   standards-compliant and smaller. (-l and -F flags now supported, but not -R.)
33 - Make an EXIT command (must be manually enabled -- NEVER use it on a
34   production machine, ANYONE will be able to halt your server!) to stop the
35   server -- useful for profiling, which requires an exit() to generate profile
36   data. (Be aware that gmon.out will be where the server last did a chdir() to,
37   though. In a debugging server, you'll know where that is anyway...)
38 - strip-exec now has a warning. In addition, it gives -D__OPTIMIZE_SIZE__ to
39   keep glibc2 (libc6) from adding some inlines. It also kills
40   -fomit-frame-pointer. So now strip-exec gives a 20 kB executable instead of 21
41   kB (one extra kB goes to new functionality) :-)
42 - Now strips out any non-ASCII chars from the commands (not any parameters), to
43   fix the ABOR problems.
44 - Documentation changes. 
45 - Commented all the functions in cmds.c and ftpd.c, to make it easier to get
46   into the code.
47 - Implemented the APPE, DELE, MKD, RMD, ABOR, REIN, ACCT, HELP and STAT
48   commands.
49 - Added makefile dependencies.
50 - BetaFTPD can now handle non-DES crypt()s, thanks to Beau Kuiper
51   <ekuiperba@cc.curtin.edu.au>.
52 - ASCII mode added, once again thanks to Beau Kuiper
53   <ekuiperba@cc.curtin.edu.au>.
54 - Linux sendfile() support (only for mmap()-able machines -- I don't think any
55   machine has sendfile() but not mmap()). Other systems will be added later.
56 - Moved all documentation (except README) into a separate doc/ directory. Added
57   CREDITS file.
58 - The internal ls now can cache the listings (--enable-dcache to configure).
59   Please see the README file for some problems that still exist. This option
60   requires quite a bit of code (1028 bytes compiled, on my system), and some RAM
61   for the directory listings and support structure.  I think, however, that the
62   increased performance is worth it.
63 - BetaFTPD can now use poll() if you have it. This removes the old 1024- socket
64   limit, as well as reducing the code size by 496 bytes (on my system).
65 - Added renaming support. (Whee! Almost full RFC1123 compliance!)
66 - Changed all copyright strings to say `1999-2000' (well, it only got to May
67   2000 before I remembered it...) instead of just `1999'.
68 - A new option, --enable-message, makes the server show info about README
69   files, as well as printing any .message or welcome.msg files that may be
70   available.  (This is a quite standard function in other ftpds.)
71 - Made a simple FTP server test suite (not included, since it's really not good
72   enough to live its own life as a standalone product), used in testing.
73 - BetaFTPD now listens on port 21.
74 - Homepage moved to SourceForge (http://betaftpd.sourceforge.net/)[
75
76 Version 0.0.7:
77 - Shadow support. (Give --enable-shadow to configure to enable it.)
78 - No longer ships with precompiled binary -- there are way too many
79   configurations to take care of now (shadow, fork, etc.).
80 - Cleans up a connection if no file transfer has been done in 15 minutes.
81 - More checks in configure script.
82 - Made README file a bit nicer.
83
84 Version 0.0.6:
85 - Fixed PASV bug.
86 - Added upload support! (Give --enable-upload to configure to enable it.)
87   Not 100% tried and tested yet, and requires extra code a lot of places.
88   Amazingly enough, it only gives 700 bytes (uncompressed) extra executable
89   size, and requires about 4 bytes per new connection.
90 - Fixed cosmetic bug in configure script.
91 - All .c files now depend on config.h.
92 - Cleaned up some minor problems in building in a directory different from
93   the source directory.
94 - Added metalab as a mirror site. (The official one is still at my homepage,
95   but I can't offer FTP from there.)
96 - Added LSM entry.
97 - Removed bug that prevented the user from sending _anything_ (including
98   a re-login) if he/she hadn't opened with USER/PASS.
99 - Fixed some problems with compiling on mmap-less machines.
100
101 Version 0.0.5:
102 - Fixed problem in tarfile (aargh!), it should (forever) unpack into its own
103   directory now.
104 - Made handler_table[] const and static (that means minor advantages in speed
105   and executable size).
106 - Added autoconf support. Still not perfect, but much better than nothing.
107 - Re-added support for mmap-less machines as well.
108 - Now only licensed under GPL v2 (_not_ any later or earlier version).
109
110 Version 0.0.4:
111 - Fixed problem where Netscape 4.5 would give double slashes after directory
112   names.
113 - Specifying a non-existant user would make the server segfault ;-)
114 - Implemented non-RFC MDTM command.
115 - Changed prompt for anonymous users to "Login OK, send password (your e-mail)."
116   (added 'your' so people won't begin to send their mail passwords :-)
117 - Fixed a bug where anybody could send a fake user name, and access to a
118   random uid. (Don't worry, it was unexploitable -- the server crashed due
119   to another bug...)
120 - Made the command prototypes in cmds.h a single macro, to reduce source size
121   and improve readability (?).
122 - KNOWN-BUGS file added.
123 - Fixed a problem where the server could segfault (due to writing to free()'d
124   memory).
125 - Stripped some sections from the precompiled binary, to reduce size a little
126   more... (Added a script named `strip-exec' which does just that.)
127 - Fixed a problem where doing a `CWD /' followed by a `PWD' would raise some
128   error messages.
129 - Fixed a _possible_ (I couldn't exploit it) problem if a REST was sent,
130   greater than the size of the file downloaded, and libc would have some
131   kind of problem with negative sizes.
132 - Added some #define's in ftp.h for those who don't need xferlogs and/or
133   fullscreen. The precompiled binary is supposed to be _small_, so it
134   disables both.
135 - Removed all alignment from the precompiled binary (hooray! we're back
136   at 15k!)
137 - Compressed precompiled binary with UPX (10k isn't bad...)
138 - Fixed some bugs, problems with NcFTP etc. (This file got lost, and I
139   had to restore from a slightly older backup.)
140 - Started on an RFC-COMPLIANCE file.
141 - Support for nice, full-screen display (not in precompiled binary).
142 - Now uses mmap() instead of read() and write().
143 - Lots of _real_ testing, in a production environment! That sure fixed
144   a lot of problems :-)
145
146 Version 0.0.3:
147 - CHANGES file added...
148 - Fixed a bug that prevented lynx and IE (?) from getting dir listings.
149 - Added VERY crude logging (only to /var/log/xferlog for now). It fakes
150   some of the traditional xferlog fields. (Note: this alone was almost
151   1k)
152 - Accepts "ftp" as well as "anonymous".
153 - NLST command partly implemented (errr...).
154 - Cleaned up some error numbers, shortened some messages.
155 - Added pseudo-commands MODE and STRU.
156 - Can recognize other home dirs than /home/ftp/ for anonymous users.
157 - Made FTP port a #define in ftpd.h.
158 - Ignores information on stdin (libc workaround).
159 - Globbing support! (ie. you can do things like LIST *.dat)