2 Unbreak -l -s in the server, which was broken in 0.47.
6 Add -L option to the server to run standalone without
7 detaching from the shell.
13 Minor portability improvements.
17 Add -l (literal) option to the client, to override the special
18 treatment of the colon (:) character as a hostname separator.
22 Allow the client to specify a range of local port numbers,
23 just like the server can.
25 Fix sending SIGHUP to update the regular expression table.
29 Fix double-free error on ^c in client.
31 Try to deal with clients that send TFTP requests to broadcasts
32 (apparently some recent Sun boxes do this instead of using the
33 address told by DHCP. Bad Sun! Bad Sun!)
39 Try to disable path MTU discovery for TFTP connections (it's
42 Add a hack to allow the admin to specify a range of local port
45 Fix local IP number handling on systems which present
46 IP_RECVDSTADDR in recvmsg().
50 Fix bug by which patterns of the form \U\1 weren't converted
59 Fix bug which would cause "r" remapping rules to be
64 Support Perl-style \U...\E and \L...\E, as well as allow
65 matching rules to be inverted (execute if rule *doesn't*
78 Fix a pathology where a client sending ACKs for the wrong
79 packet can prevent proper retransmission.
87 Add an option to control the maximum value of blksize
90 Removed workaround for obsolete Cygwin problem.
92 Don't use getopt() -- the -c option doesn't work correctly
93 since it depends on the ordering of arguments and options. It
94 is now possible to do:
96 tftp -m binary hostname -c get filename
98 This was previous possible by doing:
100 tftp -m binary -c get hostname:filename
102 ... but it seemed that was counterintuitive to people.
104 Somewhat improved configure scripts.
108 Additional Solaris gcc compiler bug workarounds; these
109 actually make the code somewhat cleaner.
113 Even better error messages.
115 Work around a suspect Solaris gcc bug.
117 Configuration fix: readline needs termcap.
119 Support running the tftp client from the command line. For
122 tftp -m binary -c get hostname:file
126 Better error messages; including the capability to send a
127 custom error message to the client when hitting an "a" rule in
132 Put in a check to make sure xinetd (in particular) doesn't
133 pass us an IPv6 socket.
135 Fix some problems related to timeout negotiation.
137 Allow the user to set the default timeout speed.
141 (Hopefully) better timeout algorithm.
143 Add a "utimeout" option; like "timeout" but in microseconds.
145 Change the log level of client-side errors to LOG_WARNING.
147 autoconf portability improvements.
155 Now compiles and runs on Win32 systems using Cygwin
156 (http://www.cygwin.com/).
157 (<http://www.cygwin.com/>).
159 Fixed a bug which could cause a standalone server to exit with
160 a "recvfrom: Interrupted system call" log message if signals
161 arrive at a particularly inopportune moment.
163 Fix a macro substitution bug (thanks to Richard Nyberg.)
167 Fix stupid one-liner bug which broke standalone mode (-l).
171 Make the Digital Unix 4.0F platform work again. Thanks to
172 Alan Sundell for helping out with this platform!
174 Make the AIX 4.3 platform work again. Thanks to Josef Siemes
175 for helping out with this platform!
177 Allow replacement patterns to include the IP address of the
178 requesting host (\i).
180 Allow relying on Unix permissions rather than o+r magic if the
181 -p option is specified. As part of this, set all groups if
182 initgroups() is specified on the platform.
184 Clean up race conditions inherited from the BSD source base.
188 Fix the configuration process so tftpd doesn't end up
189 depending on readline, which apparently could happen on some
192 Make parallel builds (make -j) work correctly.
194 Improve parsing of the "connect" command in the tftp client.
196 Add a -V option to both tftp and tftpd to print the version
197 number on stdout and immediately exit.
199 Add a -v option to tftp to start out in verbose mode.
201 Rewrite the man pages using standard "man" troff macros.
203 Enable the (limited) use of readline on systems which don't
204 have readline/history.h.
206 Support compiling under MacOS X with fink (see
207 <http://fink.sourceforge.net/>). Thanks for Justin Hallett
208 and Eric Eslinger for their help in getting this working!
212 Fixed Sorcerer's Apprentice bug in both the client and the
213 server. These bugs were inherited from the original BSD code.
217 Fix bugs in both client and server dealing with block number
218 wraparound, usually manifesting themselves as failure to
219 handle files over 32 MB in size.
221 Officially make the client a part of the tftp-hpa project.
225 Correct memory overwrite bug in the tftp client when compiled
230 Even more portability improvements: FreeBSD and
233 Fix tsize option on systems on which off_t is "long long".
235 Support large files on systems which need _LARGE_FILE_BITS or
238 Some source cleanups; change to autoconf 2.52.
240 Add support for readline command-line editing in tftp.
244 Support running in standalone mode, without inetd.
246 Even more portability improvements. Now known to compile and
247 run on Linux, Solaris 5, 5.1, 6, 7 and 8, and AIX. Reports of
248 success or failure on other modern systems always appreciated.
250 Clean and modernize some really ugly old code.
252 Fix a potential illegal memory access when running in "totally
253 insecure mode" - no -s, no directories listed.
257 Portability improvements. Now known to compile and run on
262 Fork before performing tcpwrappers check.
264 Don't rely on nonstandard bsd_signal() function, instead
265 require that the platform has sigaction(). This is 2001,
266 after all. This may resolve some potential portability
269 Log a message if memory allocation fails, instead of dying
272 Clean up the main dispatch loop.
274 Use <sysexits.h> for exit codes, if it exists.
276 Add support for debugging remapping rulefiles; if logging with
277 -vvv tftpd will log all rules actions.
279 Correct the error code issued by an "abort" rule.
283 Support (almost) arbitrary filename remappings via regular
284 expression-based rulesets.
286 Added -v option for more verbose logging.
291 Add support for tcpwrapper checking (/etc/hosts.allow;
292 /etc/hosts.deny) in tftpd.
294 Compile correctly on glibc 2.1.2.
296 Add -u option to specify the user id to run as (default
299 Operate in "daemon mode" as long as we keep getting requests.
300 This should speed up handling large amounts of requests at
301 once, as can happen when a client starts up, and avoids inetd
302 misconfiguration problems.
307 Correct massive lossage from 0.15: apparently 0.15 was based
308 on an out-of-date CVS repository, somehow.
310 Fix for ACKs in TFTP PUT; patch by Roger Venning.
315 If the operating system allows, try to obtain the local
316 address used for the request packet, and reply using the same
317 local IP address. Some embedded TFTP clients are (probably
318 incorrectly) picky about this.
323 Hacks to signal handling to avoid "zombie servers."
328 Added the non-standard option "blksize2". The "blksize"
329 option is limited in its usability, since TFTP is designed to
330 be implemented in a ROM, and ROM code might find it painful to
331 deal with packets that don't meet certain alignment
334 The "blksize2" option tells the server that the block size
335 must be a power of 2 to be usable to the client. The server
336 SHALL respond with a block size that is a power of two, up to
337 a maximum of 32768, or reject the option. Furthermore, the
338 server SHALL grant a block size that is no smaller than 512
339 bytes unless the client explicitly requested a smaller block
340 size. If the client request both options, the server MAY
341 accept one or the other, but not both. At some point I will
342 probably write up an IETF draft for this option.
345 General information on the tftp-hpa series:
347 The core software was taken from OpenBSD (CVS source as of
348 1999-09-21). I believe this was the most secure source base available
349 at the time I obtained this code, and it included support for the -s
352 The un-BSD-ized Makefiles and a lot of the configure macros were taken
353 from netkit-tftp-0.10 by David Holland; I also followed this example
354 and modernized the code style throughout.
356 Patches by Markus Gutschke and Gero Kuhlmann were the basis for the
357 option negotiation as well as the "blksize" and "tsize" option
358 support, although I made a fair amount of mostly stylistic changes to
361 Adding the -r option (disable a specific option), the "timeout"
362 option, converting to using autoconf for setup, and any additions
363 listed in the Changes list above, has all been my own code, as are any
364 bugs introduced in the merge.