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> References: <200810121010.m9CAAgGO041854@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Signature=_Tue__14_Oct_2008_03_16_34_+0400_pOqzUn4uF71Z9Rqk Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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 >=20 > 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. > =20 > 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. > =20 > 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. > =20 > 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: > =20 > - 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 > =20 > It supports the following RFCs: > =20 > 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) > =20 > It supports the following unofficial TFTP Options as described at > http://www.compuphase.com/tftp.htm: > =20 > blksize2 - Block size restricted to powers of 2, excluding protocol hea= ders > rollover - Block counter roll-over (roll back to zero or to one) > =20 > From the tftp program point of view the following things are changed: > =20 > - New commands: "blocksize", "blocksize2", "rollover" and "options" > - Development features: "debug" and "packetdrop" > =20 > 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. --=20 Stanislav Sedov ST4096-RIPE --Signature=_Tue__14_Oct_2008_03_16_34_+0400_pOqzUn4uF71Z9Rqk Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEARECAAYFAkjz1tcACgkQK/VZk+smlYHiWwCbBj9mP03VNfEiOPgG+xcFhPWO trMAn2R8T5XfRlp+Z/A56we0rzdi3Far =Tya9 -----END PGP SIGNATURE----- --Signature=_Tue__14_Oct_2008_03_16_34_+0400_pOqzUn4uF71Z9Rqk--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081014031634.11ec48cd.stas>