mirror of
https://kernel.googlesource.com/pub/scm/network/tftp/tftp-hpa
synced 2025-04-27 10:29:53 +03:00
No description
lib | ||
tftp | ||
tftpd | ||
aclocal.m4 | ||
config.h.in | ||
configure.in | ||
install-sh | ||
Makefile | ||
MCONFIG.in | ||
MRULES | ||
README | ||
README.security |
This is tftp-hpa-0.19; this version was put out by H. Peter Anvin <hpa@zytor.com>. The latest version of this collection can be found at: ftp://ftp.kernel.org/pub/software/network/tftp/ This software can be discussed on the SYSLINUX mailing list. To subscribe, send a message containing the word "subscribe" in the body to <syslinux-request@linux.kernel.org>. Please note that my main focus in this work is the tftpd server. Although a tftp client is included, it is by and large the stock OpenBSD version, with a small handful of portability improvements. ===> IMPORTANT: SEE THE FILE "README.security" FOR IMPORTANT SECURITY ===> CHANGES ENACTED IN VERSION 0.17!!!!!!!!! Changes in 0.19: Fork before performing tcpwrappers check. Don't rely on nonstandard bsd_signal() function, instead require that the platform has sigaction(). This is 2001, after all. This may resolve some potential portability problems. Log a message if memory allocation fails, instead of dying silently. Clean up the main dispatch loop. Use <sysexits.h> for exit codes, if it exists. Add support for debugging remapping rulefiles; if logging with -vvv tftpd will log all rules actions. Correct the error code issued by an "abort" rule. Changes in 0.18: Support (almost) arbitrary filename remappings via regular expression-based rulesets. Added -v option for more verbose logging. Changes in 0.17: Add support for tcpwrapper checking (/etc/hosts.allow; /etc/hosts.deny) in tftpd. Compile correctly on glibc 2.1.2. Add -u option to specify the user id to run as (default "nobody".) Operate in "daemon mode" as long as we keep getting requests. This should speed up handling large amounts of requests at once, as can happen when a client starts up, and avoids inetd misconfiguration problems. Changes in 0.16: Correct massive lossage from 0.15: apparently 0.15 was based on an out-of-date CVS repository, somehow. Fix for ACKs in TFTP PUT; patch by Roger Venning. Changes in 0.15: If the operating system allows, try to obtain the local address used for the request packet, and reply using the same local IP address. Some embedded TFTP clients are (probably incorrectly) picky about this. Changes in 0.14: Hacks to signal handling to avoid "zombie servers." Changes in 0.13: Added the non-standard option "blksize2". The "blksize" option is limited in its usability, since TFTP is designed to be implemented in a ROM, and ROM code might find it painful to deal with packets that don't meet certain alignment restrictions. The "blksize2" option tells the server that the block size must be a power of 2 to be usable to the client. The server SHALL respond with a block size that is a power of two, up to a maximum of 32768, or reject the option. Furthermore, the server SHALL grant a block size that is no smaller than 512 bytes unless the client explicitly requested a smaller block size. If the client request both options, the server MAY accept one or the other, but not both. At some point I will probably write up an IETF draft for this option. General information on the tftp-hpa series: This is a conglomerate of a number of versions of the BSD TFTP code, ported to Linux, although it should work on mostly any POSIX-compliant OS with sockets. You may have to use GNU make to build it. The core software was taken from OpenBSD (CVS source as of 1999-09-21). I believe this was the most secure source base available at the time I obtained this code, and it included support for the -s and -c options. The un-BSD-ized Makefiles and a lot of the configure macros were taken from netkit-tftp-0.10 by David Holland; I also followed this example and modernized the code style throughout. Patches by Markus Gutschke and Gero Kuhlmann were the basis for the option negotiation as well as the "blksize" and "tsize" option support, although I made a fair amount of mostly stylistic changes to their code. Adding the -r option (disable a specific option), the "timeout" option, converting to using autoconf for setup, and any additions listed in the Changes list above, has all been my own code, as are any bugs introduced in the merge.