release.sh: remove Cogito
[tftp-hpa.git] / CHANGES
blobf7ecfe836f022711bfe47c33bf52887f495a46ad
1 Changes in 0.49:
2         Add IPv6 support.  Patch by Karsten Keil.
5 Changes in 0.48:
6         Unbreak -l -s in the server, which was broken in 0.47.
9 Changes in 0.47:
10         Add -L option to the server to run standalone without
11         detaching from the shell.
13         Parallel make fix.
16 Changes in 0.46:
17         Minor portability improvements.
20 Changes in 0.45:
21         Add -l (literal) option to the client, to override the special
22         treatment of the colon (:) character as a hostname separator.
25 Changes in 0.44:
26         Allow the client to specify a range of local port numbers,
27         just like the server can.
29         Fix sending SIGHUP to update the regular expression table.
32 Changes in 0.43:
33         Fix double-free error on ^c in client.
35         Try to deal with clients that send TFTP requests to broadcasts
36         (apparently some recent Sun boxes do this instead of using the
37         address told by DHCP.  Bad Sun!  Bad Sun!)
39         Portability fixes.
42 Changes in 0.42:
43         Try to disable path MTU discovery for TFTP connections (it's
44         useless anyway.)
46         Add a hack to allow the admin to specify a range of local port
47         numbers to use.
49         Fix local IP number handling on systems which present
50         IP_RECVDSTADDR in recvmsg().
53 Changes in 0.41:
54         Fix bug by which patterns of the form \U\1 weren't converted
55         correctly.
58 Changes in 0.40.1:
59         Solaris build fix.
62 Changes in 0.40:
63         Fix bug which would cause "r" remapping rules to be
64         incorrectly rejected.
67 Changes in 0.39:
68         Support Perl-style \U...\E and \L...\E, as well as allow
69         matching rules to be inverted (execute if rule *doesn't*
70         match.)
72         Fix a timeout bug.
74         Add an RPM spec file.
77 Changes in 0.38:
78         Portability fixes.
81 Changes in 0.37:
82         Fix a pathology where a client sending ACKs for the wrong
83         packet can prevent proper retransmission.
86 Changes in 0.36:
87         Portability fixes.
90 Changes in 0.35:
91         Add an option to control the maximum value of blksize
92         negotiated.
94         Removed workaround for obsolete Cygwin problem.
96         Don't use getopt() -- the -c option doesn't work correctly
97         since it depends on the ordering of arguments and options.  It
98         is now possible to do:
100         tftp -m binary hostname -c get filename
102         This was previous possible by doing:
104         tftp -m binary -c get hostname:filename
106         ... but it seemed that was counterintuitive to people.
108         Somewhat improved configure scripts.
111 Changes in 0.34:
112         Additional Solaris gcc compiler bug workarounds; these
113         actually make the code somewhat cleaner.
114         
116 Changes in 0.33:
117         Even better error messages.
119         Work around a suspect Solaris gcc bug.
121         Configuration fix: readline needs termcap.
123         Support running the tftp client from the command line.  For
124         example:
126                 tftp -m binary -c get hostname:file
129 Changes in 0.32:
130         Better error messages; including the capability to send a
131         custom error message to the client when hitting an "a" rule in
132         a remapping table.
135 Changes in 0.31:
136         Put in a check to make sure xinetd (in particular) doesn't
137         pass us an IPv6 socket.
139         Fix some problems related to timeout negotiation.
141         Allow the user to set the default timeout speed.
144 Changes in 0.30:
145         (Hopefully) better timeout algorithm.
147         Add a "utimeout" option; like "timeout" but in microseconds.
149         Change the log level of client-side errors to LOG_WARNING.
151         autoconf portability improvements.
153         Minor bugfixes.
156 Changes in 0.29:
157         Posixly correctness.
159         Now compiles and runs on Win32 systems using Cygwin
160         (http://www.cygwin.com/).
161         (<http://www.cygwin.com/>).
163         Fixed a bug which could cause a standalone server to exit with
164         a "recvfrom: Interrupted system call" log message if signals
165         arrive at a particularly inopportune moment.
167         Fix a macro substitution bug (thanks to Richard Nyberg.)
170 Changes in 0.28:
171         Fix stupid one-liner bug which broke standalone mode (-l).
174 Changes in 0.27:
175         Make the Digital Unix 4.0F platform work again.  Thanks to
176         Alan Sundell for helping out with this platform!
178         Make the AIX 4.3 platform work again.  Thanks to Josef Siemes
179         for helping out with this platform!
181         Allow replacement patterns to include the IP address of the
182         requesting host (\i).
184         Allow relying on Unix permissions rather than o+r magic if the
185         -p option is specified.  As part of this, set all groups if
186         initgroups() is specified on the platform.
188         Clean up race conditions inherited from the BSD source base.
191 Changes in 0.26:
192         Fix the configuration process so tftpd doesn't end up
193         depending on readline, which apparently could happen on some
194         platforms before.
196         Make parallel builds (make -j) work correctly.
198         Improve parsing of the "connect" command in the tftp client.
200         Add a -V option to both tftp and tftpd to print the version
201         number on stdout and immediately exit.
203         Add a -v option to tftp to start out in verbose mode.
204         
205         Rewrite the man pages using standard "man" troff macros.
207         Enable the (limited) use of readline on systems which don't
208         have readline/history.h.
210         Support compiling under MacOS X with fink (see
211         <http://fink.sourceforge.net/>).  Thanks for Justin Hallett
212         and Eric Eslinger for their help in getting this working!
215 Changes in 0.25:
216         Fixed Sorcerer's Apprentice bug in both the client and the
217         server.  These bugs were inherited from the original BSD code.
220 Changes in 0.24:
221         Fix bugs in both client and server dealing with block number
222         wraparound, usually manifesting themselves as failure to
223         handle files over 32 MB in size.
225         Officially make the client a part of the tftp-hpa project.
228 Changes in 0.23:
229         Correct memory overwrite bug in the tftp client when compiled
230         with readline.
233 Changes in 0.22:
234         Even more portability improvements: FreeBSD and
235         Tru64/Digital Unix.
237         Fix tsize option on systems on which off_t is "long long".
239         Support large files on systems which need _LARGE_FILE_BITS or
240         similar.
242         Some source cleanups; change to autoconf 2.52.
244         Add support for readline command-line editing in tftp.
247 Changes in 0.21:
248         Support running in standalone mode, without inetd.
250         Even more portability improvements.  Now known to compile and
251         run on Linux, Solaris 5, 5.1, 6, 7 and 8, and AIX.  Reports of
252         success or failure on other modern systems always appreciated.
254         Clean and modernize some really ugly old code.
256         Fix a potential illegal memory access when running in "totally
257         insecure mode" - no -s, no directories listed.
260 Changes in 0.20:
261         Portability improvements.  Now known to compile and run on
262         Solaris 8.
265 Changes in 0.19:
266         Fork before performing tcpwrappers check.
268         Don't rely on nonstandard bsd_signal() function, instead
269         require that the platform has sigaction().  This is 2001,
270         after all.  This may resolve some potential portability
271         problems.
273         Log a message if memory allocation fails, instead of dying
274         silently.
276         Clean up the main dispatch loop.
278         Use <sysexits.h> for exit codes, if it exists.
280         Add support for debugging remapping rulefiles; if logging with
281         -vvv tftpd will log all rules actions.
283         Correct the error code issued by an "abort" rule.
286 Changes in 0.18:
287         Support (almost) arbitrary filename remappings via regular
288         expression-based rulesets.
290         Added -v option for more verbose logging.
293 Changes in 0.17:
295         Add support for tcpwrapper checking (/etc/hosts.allow;
296         /etc/hosts.deny) in tftpd.
298         Compile correctly on glibc 2.1.2.
300         Add -u option to specify the user id to run as (default
301         "nobody".)
303         Operate in "daemon mode" as long as we keep getting requests.
304         This should speed up handling large amounts of requests at
305         once, as can happen when a client starts up, and avoids inetd
306         misconfiguration problems.
307         
309 Changes in 0.16:
311         Correct massive lossage from 0.15: apparently 0.15 was based
312         on an out-of-date CVS repository, somehow.
314         Fix for ACKs in TFTP PUT; patch by Roger Venning.
317 Changes in 0.15:
319         If the operating system allows, try to obtain the local
320         address used for the request packet, and reply using the same
321         local IP address.  Some embedded TFTP clients are (probably
322         incorrectly) picky about this.
325 Changes in 0.14:
327         Hacks to signal handling to avoid "zombie servers."
330 Changes in 0.13:
332         Added the non-standard option "blksize2".  The "blksize"
333         option is limited in its usability, since TFTP is designed to
334         be implemented in a ROM, and ROM code might find it painful to
335         deal with packets that don't meet certain alignment
336         restrictions.
338         The "blksize2" option tells the server that the block size
339         must be a power of 2 to be usable to the client.  The server
340         SHALL respond with a block size that is a power of two, up to
341         a maximum of 32768, or reject the option.  Furthermore, the
342         server SHALL grant a block size that is no smaller than 512
343         bytes unless the client explicitly requested a smaller block
344         size.  If the client request both options, the server MAY
345         accept one or the other, but not both.  At some point I will
346         probably write up an IETF draft for this option.
349 General information on the tftp-hpa series:
351 The core software was taken from OpenBSD (CVS source as of
352 1999-09-21).  I believe this was the most secure source base available
353 at the time I obtained this code, and it included support for the -s
354 and -c options.
356 The un-BSD-ized Makefiles and a lot of the configure macros were taken
357 from netkit-tftp-0.10 by David Holland; I also followed this example
358 and modernized the code style throughout.
360 Patches by Markus Gutschke and Gero Kuhlmann were the basis for the
361 option negotiation as well as the "blksize" and "tsize" option
362 support, although I made a fair amount of mostly stylistic changes to
363 their code.
365 Adding the -r option (disable a specific option), the "timeout"
366 option, converting to using autoconf for setup, and any additions
367 listed in the Changes list above, has all been my own code, as are any
368 bugs introduced in the merge.