Skip site navigation (1)Skip section navigation (2)
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>