mirror of
https://kernel.googlesource.com/pub/scm/network/tftp/tftp-hpa
synced 2025-04-26 18:09:53 +03:00
Factor out a lot of information out of the README file
This commit is contained in:
parent
02a2558d11
commit
a426cbf9a3
3 changed files with 150 additions and 147 deletions
138
CHANGES
Normal file
138
CHANGES
Normal file
|
@ -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 <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:
|
||||
|
||||
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.
|
|
@ -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/
|
||||
|
|
152
README
152
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 <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:
|
||||
|
||||
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!
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue