svn commit: r183798 - in user/edwin/tftpd: libexec/tftpd
usr.bin/tftp
Stanislav Sedov
stas at FreeBSD.org
Mon Oct 13 23:16:05 UTC 2008
On Sun, 12 Oct 2008 10:10:42 +0000 (UTC)
Edwin Groothuis <edwin at FreeBSD.org> mentioned:
> Author: edwin
> Date: Sun Oct 12 10:10:42 2008
> New Revision: 183798
> URL: http://svn.freebsd.org/changeset/base/183798
>
> Log:
> It all started when we got some new routers, which told me the
> following when trying to upload configuration or download images
> from it: The TFTP server doesn't support the blocksize option.
>
> My curiousity was triggered, it took me some reading of RFCs and
> other documentation to find out what was possible and what could
> be done. Was plain TFTP very simple in its handshake, TFTP with
> options was kind of messy because of its backwards capability: The
> first packet returned could either be an acknowledgement of options,
> or the first data packet.
>
> Going through the source code of src/libexec/tftpd and going through
> the code of src/usr.bin/tftp showed that there was a lot of duplicate
> code, and the addition of options would only increase the amount
> of duplicate code. After all, both the client and the server can
> act as a sender and receiver.
>
> At the end, it ended up with a nearly complete rewrite of the tftp
> client and server. It has been tested against the following TFTP
> clients and servers:
>
> - Itself (yay!)
> - The standard FreeBSD tftp client and server
> - The Fedora Core 6 tftp client and server
> - Cisco router tftp client
> - Extreme Networks tftp client
>
> It supports the following RFCs:
>
> RFC1350 - THE TFTP PROTOCOL (REVISION 2)
> RFC2347 - TFTP Option Extension
> RFC2348 - TFTP Blocksize Option
> RFC2349 - TFTP Timeout Interval and Transfer Size Options
> RFC3617 - Uniform Resource Identifier (URI) Scheme and Applicability
> Statement for the Trivial File Transfer Protocol (TFTP)
>
> It supports the following unofficial TFTP Options as described at
> http://www.compuphase.com/tftp.htm:
>
> blksize2 - Block size restricted to powers of 2, excluding protocol headers
> rollover - Block counter roll-over (roll back to zero or to one)
>
> From the tftp program point of view the following things are changed:
>
> - New commands: "blocksize", "blocksize2", "rollover" and "options"
> - Development features: "debug" and "packetdrop"
>
> If you try this tftp/tftpd implementation, please let me know if
> it works (or doesn't work) and against which implementaion so I can
> get a list of confirmed working systems.
Great!
The old tftp serves was quite buggy in a number of places.
Just FYI, style(9) requies parenthesis around values of return.
Let me know if you'll need a review.
--
Stanislav Sedov
ST4096-RIPE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-user/attachments/20081013/218480d7/attachment.pgp
More information about the svn-src-user
mailing list