4 Make the Digital Unix 4.0F platform work again. Thanks to
5 Alan Sundell for helping out with this platform!
7 Make the AIX 4.3 platform work again. Thanks to Josef Siemes
8 for helping out with this platform!
10 Allow replacement patterns to include the IP address of the
15 Fix the configuration process so tftpd doesn't end up
16 depending on readline, which apparently could happen on some
19 Make parallel builds (make -j) work correctly.
21 Improve parsing of the "connect" command in the tftp client.
23 Add a -V option to both tftp and tftpd to print the version
24 number on stdout and immediately exit.
26 Add a -v option to tftp to start out in verbose mode.
28 Rewrite the man pages using standard "man" troff macros.
30 Enable the (limited) use of readline on systems which don't
31 have readline/history.h.
33 Support compiling under MacOS X with filk (see
34 <http://filk.sourceforge.net/>). Thanks for Justin Hallett
35 and Eric Eslinger for their help in getting this working!
39 Fixed Sorcerer's Apprentice bug in both the client and the
40 server. These bugs were inherited from the original BSD code.
44 Fix bugs in both client and server dealing with block number
45 wraparound, usually manifesting themselves as failure to
46 handle files over 32 MB in size.
48 Officially make the client a part of the tftp-hpa project.
52 Correct memory overwrite bug in the tftp client when compiled
57 Even more portability improvements: FreeBSD and
60 Fix tsize option on systems on which off_t is "long long".
62 Support large files on systems which need _LARGE_FILE_BITS or
65 Some source cleanups; change to autoconf 2.52.
67 Add support for readline command-line editing in tftp.
71 Support running in standalone mode, without inetd.
73 Even more portability improvements. Now known to compile and
74 run on Linux, Solaris 5, 5.1, 6, 7 and 8, and AIX. Reports of
75 success or failure on other modern systems always appreciated.
77 Clean and modernize some really ugly old code.
79 Fix a potential illegal memory access when running in "totally
80 insecure mode" - no -s, no directories listed.
84 Portability improvements. Now known to compile and run on
89 Fork before performing tcpwrappers check.
91 Don't rely on nonstandard bsd_signal() function, instead
92 require that the platform has sigaction(). This is 2001,
93 after all. This may resolve some potential portability
96 Log a message if memory allocation fails, instead of dying
99 Clean up the main dispatch loop.
101 Use <sysexits.h> for exit codes, if it exists.
103 Add support for debugging remapping rulefiles; if logging with
104 -vvv tftpd will log all rules actions.
106 Correct the error code issued by an "abort" rule.
110 Support (almost) arbitrary filename remappings via regular
111 expression-based rulesets.
113 Added -v option for more verbose logging.
118 Add support for tcpwrapper checking (/etc/hosts.allow;
119 /etc/hosts.deny) in tftpd.
121 Compile correctly on glibc 2.1.2.
123 Add -u option to specify the user id to run as (default
126 Operate in "daemon mode" as long as we keep getting requests.
127 This should speed up handling large amounts of requests at
128 once, as can happen when a client starts up, and avoids inetd
129 misconfiguration problems.
134 Correct massive lossage from 0.15: apparently 0.15 was based
135 on an out-of-date CVS repository, somehow.
137 Fix for ACKs in TFTP PUT; patch by Roger Venning.
142 If the operating system allows, try to obtain the local
143 address used for the request packet, and reply using the same
144 local IP address. Some embedded TFTP clients are (probably
145 incorrectly) picky about this.
150 Hacks to signal handling to avoid "zombie servers."
155 Added the non-standard option "blksize2". The "blksize"
156 option is limited in its usability, since TFTP is designed to
157 be implemented in a ROM, and ROM code might find it painful to
158 deal with packets that don't meet certain alignment
161 The "blksize2" option tells the server that the block size
162 must be a power of 2 to be usable to the client. The server
163 SHALL respond with a block size that is a power of two, up to
164 a maximum of 32768, or reject the option. Furthermore, the
165 server SHALL grant a block size that is no smaller than 512
166 bytes unless the client explicitly requested a smaller block
167 size. If the client request both options, the server MAY
168 accept one or the other, but not both. At some point I will
169 probably write up an IETF draft for this option.
172 General information on the tftp-hpa series:
174 The core software was taken from OpenBSD (CVS source as of
175 1999-09-21). I believe this was the most secure source base available
176 at the time I obtained this code, and it included support for the -s
179 The un-BSD-ized Makefiles and a lot of the configure macros were taken
180 from netkit-tftp-0.10 by David Holland; I also followed this example
181 and modernized the code style throughout.
183 Patches by Markus Gutschke and Gero Kuhlmann were the basis for the
184 option negotiation as well as the "blksize" and "tsize" option
185 support, although I made a fair amount of mostly stylistic changes to
188 Adding the -r option (disable a specific option), the "timeout"
189 option, converting to using autoconf for setup, and any additions
190 listed in the Changes list above, has all been my own code, as are any
191 bugs introduced in the merge.