From a426cbf9a39b71eeaec6c1aa1afe8a3c9f280a65 Mon Sep 17 00:00:00 2001 From: hpa Date: Mon, 12 Nov 2001 23:44:05 +0000 Subject: [PATCH] Factor out a lot of information out of the README file --- CHANGES | 138 ++++++++++++++++++++++++++++++++++++++++++++++ INSTALL.tftp | 7 +++ README | 152 ++------------------------------------------------- 3 files changed, 150 insertions(+), 147 deletions(-) create mode 100644 CHANGES diff --git a/CHANGES b/CHANGES new file mode 100644 index 0000000..2135ed0 --- /dev/null +++ b/CHANGES @@ -0,0 +1,138 @@ +$Id$ + +Changes in 0.22: + Even more portability improvements: FreeBSD and + Tru64/Digital Unix. + + Fix tsize option on systems on which off_t is "long long". + + Support large files on systems which need _LARGE_FILE_BITS or + similar. + + Some source cleanups; change to autoconf 2.52. + + Add support for readline command-line editing in tftp. + + +Changes in 0.21: + Support running in standalone mode, without inetd. + + Even more portability improvements. Now known to compile and + run on Linux, Solaris 5, 5.1, 6, 7 and 8, and AIX. Reports of + success or failure on other modern systems always appreciated. + + Clean and modernize some really ugly old code. + + Fix a potential illegal memory access when running in "totally + insecure mode" - no -s, no directories listed. + + +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 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: + +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. diff --git a/INSTALL.tftp b/INSTALL.tftp index 16094a9..4bd87a5 100644 --- a/INSTALL.tftp +++ b/INSTALL.tftp @@ -29,3 +29,10 @@ client installing as /usr/bin/tftp and the tftpd server installing as "make install" supports specifying an INSTALLROOT, which points to what will be the root of the filesystem at runtime; this is typically used when preparing packages for package-management systems. + +You almost certainly will need GNU make to build tftp-hpa. If you +don't already have it, you can find GNU make at: + + ftp://ftp.gnu.org/pub/make/ +or + ftp://mirrors.kernel.org/gnu/make/ diff --git a/README b/README index 56f9253..ce178d9 100644 --- a/README +++ b/README @@ -18,151 +18,9 @@ server. Although a tftp client is included, it is by and large the stock OpenBSD version, with a small handful of portability improvements. -You almost certainly will need to use GNU make to build tftp-hpa; GNU -make can be obtained at: - - ftp://ftp.gnu.org/pub/make/ -or - ftp://mirrors.kernel.org/gnu/make/ - - -===> IMPORTANT: SEE THE FILE "README.security" FOR IMPORTANT SECURITY -===> CHANGES ENACTED IN VERSION 0.17!!!!!!!!! - -Changes in 0.22: - Even more portability improvements: FreeBSD and - Tru64/Digital Unix. - - Fix tsize option on systems on which off_t is "long long". - - Support large files on systems which need _LARGE_FILE_BITS or - similar. - - Some source cleanups; change to autoconf 2.52. - - Add support for readline command-line editing in tftp. - - -Changes in 0.21: - Support running in standalone mode, without inetd. - - Even more portability improvements. Now known to compile and - run on Linux, Solaris 5, 5.1, 6, 7 and 8, and AIX. Reports of - success or failure on other modern systems always appreciated. - - Clean and modernize some really ugly old code. - - Fix a potential illegal memory access when running in "totally - insecure mode" - no -s, no directories listed. - - -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 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: - -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. +Please see the INSTALL and INSTALL.tftp files for compilation and +installation instructions. +===> IMPORTANT: IF YOU ARE UPGRADING FROM ANOTHER TFTP SERVER, OR FROM +===> A VERSION OF TFTP-HPA OLDER THAN 0.17 SEE THE FILE +===> "README.security" FOR IMPORTANT SECURITY CHANGES!