forked from mirrors/tftp-hpa-google
		
	
		
			
				
	
	
		
			141 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
This is tftp-hpa-0.21; 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.21:
 | 
						|
	Support running in standalone mode, without inetd.
 | 
						|
 | 
						|
	Even more portability improvements.  Now known to compile
 | 
						|
	and run on Solaris 5, 5.1, 6 and 7 as well as 8.
 | 
						|
 | 
						|
 | 
						|
Changes in 0.20:
 | 
						|
	Portability improvements.  Now known to compile and run on
 | 
						|
	Solaris 8.
 | 
						|
 | 
						|
 | 
						|
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.
 | 
						|
 |