Date: Tue, 14 Oct 2008 03:16:34 +0400 From: Stanislav Sedov <stas@FreeBSD.org> To: Edwin Groothuis <edwin@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r183798 - in user/edwin/tftpd: libexec/tftpd usr.bin/tftp Message-ID: <20081014031634.11ec48cd.stas@FreeBSD.org> In-Reply-To: <200810121010.m9CAAgGO041854@svn.freebsd.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] On Sun, 12 Oct 2008 10:10:42 +0000 (UTC) Edwin Groothuis <edwin@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 [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEARECAAYFAkjz1tcACgkQK/VZk+smlYHiWwCbBj9mP03VNfEiOPgG+xcFhPWO trMAn2R8T5XfRlp+Z/A56we0rzdi3Far =Tya9 -----END PGP SIGNATURE-----home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081014031634.11ec48cd.stas>
