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
13 Allow relying on Unix permissions rather than o+r magic if the
14 -p option is specified. As part of this, set all groups if
15 initgroups() is specified on the platform.
17 Clean up race conditions inherited from the BSD source base.
21 Fix the configuration process so tftpd doesn't end up
22 depending on readline, which apparently could happen on some
25 Make parallel builds (make -j) work correctly.
27 Improve parsing of the "connect" command in the tftp client.
29 Add a -V option to both tftp and tftpd to print the version
30 number on stdout and immediately exit.
32 Add a -v option to tftp to start out in verbose mode.
34 Rewrite the man pages using standard "man" troff macros.
36 Enable the (limited) use of readline on systems which don't
37 have readline/history.h.
39 Support compiling under MacOS X with filk (see
40 <http://filk.sourceforge.net/>). Thanks for Justin Hallett
41 and Eric Eslinger for their help in getting this working!
45 Fixed Sorcerer's Apprentice bug in both the client and the
46 server. These bugs were inherited from the original BSD code.
50 Fix bugs in both client and server dealing with block number
51 wraparound, usually manifesting themselves as failure to
52 handle files over 32 MB in size.
54 Officially make the client a part of the tftp-hpa project.
58 Correct memory overwrite bug in the tftp client when compiled
63 Even more portability improvements: FreeBSD and
66 Fix tsize option on systems on which off_t is "long long".
68 Support large files on systems which need _LARGE_FILE_BITS or
71 Some source cleanups; change to autoconf 2.52.
73 Add support for readline command-line editing in tftp.
77 Support running in standalone mode, without inetd.
79 Even more portability improvements. Now known to compile and
80 run on Linux, Solaris 5, 5.1, 6, 7 and 8, and AIX. Reports of
81 success or failure on other modern systems always appreciated.
83 Clean and modernize some really ugly old code.
85 Fix a potential illegal memory access when running in "totally
86 insecure mode" - no -s, no directories listed.
90 Portability improvements. Now known to compile and run on
95 Fork before performing tcpwrappers check.
97 Don't rely on nonstandard bsd_signal() function, instead
98 require that the platform has sigaction(). This is 2001,
99 after all. This may resolve some potential portability
102 Log a message if memory allocation fails, instead of dying
105 Clean up the main dispatch loop.
107 Use <sysexits.h> for exit codes, if it exists.
109 Add support for debugging remapping rulefiles; if logging with
110 -vvv tftpd will log all rules actions.
112 Correct the error code issued by an "abort" rule.
116 Support (almost) arbitrary filename remappings via regular
117 expression-based rulesets.
119 Added -v option for more verbose logging.
124 Add support for tcpwrapper checking (/etc/hosts.allow;
125 /etc/hosts.deny) in tftpd.
127 Compile correctly on glibc 2.1.2.
129 Add -u option to specify the user id to run as (default
132 Operate in "daemon mode" as long as we keep getting requests.
133 This should speed up handling large amounts of requests at
134 once, as can happen when a client starts up, and avoids inetd
135 misconfiguration problems.
140 Correct massive lossage from 0.15: apparently 0.15 was based
141 on an out-of-date CVS repository, somehow.
143 Fix for ACKs in TFTP PUT; patch by Roger Venning.
148 If the operating system allows, try to obtain the local
149 address used for the request packet, and reply using the same
150 local IP address. Some embedded TFTP clients are (probably
151 incorrectly) picky about this.
156 Hacks to signal handling to avoid "zombie servers."
161 Added the non-standard option "blksize2". The "blksize"
162 option is limited in its usability, since TFTP is designed to
163 be implemented in a ROM, and ROM code might find it painful to
164 deal with packets that don't meet certain alignment
167 The "blksize2" option tells the server that the block size
168 must be a power of 2 to be usable to the client. The server
169 SHALL respond with a block size that is a power of two, up to
170 a maximum of 32768, or reject the option. Furthermore, the
171 server SHALL grant a block size that is no smaller than 512
172 bytes unless the client explicitly requested a smaller block
173 size. If the client request both options, the server MAY
174 accept one or the other, but not both. At some point I will
175 probably write up an IETF draft for this option.
178 General information on the tftp-hpa series:
180 The core software was taken from OpenBSD (CVS source as of
181 1999-09-21). I believe this was the most secure source base available
182 at the time I obtained this code, and it included support for the -s
185 The un-BSD-ized Makefiles and a lot of the configure macros were taken
186 from netkit-tftp-0.10 by David Holland; I also followed this example
187 and modernized the code style throughout.
189 Patches by Markus Gutschke and Gero Kuhlmann were the basis for the
190 option negotiation as well as the "blksize" and "tsize" option
191 support, although I made a fair amount of mostly stylistic changes to
194 Adding the -r option (disable a specific option), the "timeout"
195 option, converting to using autoconf for setup, and any additions
196 listed in the Changes list above, has all been my own code, as are any
197 bugs introduced in the merge.