Commit Graph

66 Commits

Author SHA1 Message Date
Kevin Lo
a3a2bf4b67 fgets(3) returns a pointer, so compare against NULL, not integer 0. 2012-01-13 06:51:15 +00:00
Ed Schouten
b3608ae18f Replace index() and rindex() calls with strchr() and strrchr().
The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.
2012-01-03 18:51:58 +00:00
Xin LI
7c9acc776a peeraddr is only used in sizeof() evaluations, so instead of declaring it
a variable, use typedef.

MFC after:	1 month
2011-07-11 05:57:49 +00:00
Kevin Lo
aa7e4bb466 Remove duplicated header files 2011-06-24 07:18:44 +00:00
Craig Rodrigues
f6c506d9cf Acknowledge Edwin Groothuis for the major rewrite he
did of the tftpd and tftp code to support TFTP blocksize.
2011-06-24 05:41:38 +00:00
Craig Rodrigues
fcaab598e0 Update references to RFC's that the newer TFTP implementation supports. 2011-06-22 23:26:04 +00:00
Craig Rodrigues
b68628c826 Bump date.
Document the following commands which were added in the new TFTP implementation:
blocksize, blocksize2, packetdrop, options, rollover
2011-06-22 22:55:51 +00:00
Craig Rodrigues
e5660633d3 Clarify that the TFTP blocksize (RFC2348) or non-standard
TFTP rollover option can be used to transfer larger files.
2011-06-16 02:27:05 +00:00
Craig Rodrigues
f4b7e64d7a Specify correct RFC2347 for TFTP options in diagnostic message. 2011-06-16 02:16:53 +00:00
Warner Losh
f471745a98 Fix a couple of spelling errors.
Submitted by:	bcr@
2011-05-31 16:59:14 +00:00
Joel Dahl
da52b4caaf Remove the advertising clause from UCB copyrighted files in usr.bin. This
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

Also add $FreeBSD$ to a few files to keep svn happy.

Discussed with:	imp, rwatson
2010-12-11 08:32:16 +00:00
Marius Strobl
04ebad3842 Make WARNS=6 clean.
MFC after:	1 week
2010-09-24 10:40:17 +00:00
Marius Strobl
e865ab086c Try to adhere to style.Makefile(5).
MFC after:	3 days
2010-09-23 14:06:15 +00:00
Marius Strobl
ce7704b610 Remove an explicit assignment of the CFLAGS variable intended for
debugging purposes only.

MFC after:	3 days
2010-09-23 10:03:03 +00:00
Gavin Atkinson
c54da67276 Fix transfer statistics in the "send file" case - The conditional used
to print the stats were using an uninitialised variable. [1]

Fix trasnfer statistics in the "receive file" case - the statistics struct
was being cleared both before and after the initial connect to the remote
server.  As a result, the printed time and calculated bandwidth covers
the time to connect ad well as the time to transfer the file.  This may
not be ideal, but now at least matches the "send file" case.

Found by:	clang static analyser [1]
Reviewed by:	imp
2010-06-27 14:21:08 +00:00
Gavin Atkinson
a1ec94b88d Fix core dump when server fails to respond.
Reviewed by:	imp
2010-06-27 14:11:03 +00:00
Gavin Atkinson
3583a05a70 These files are no longer required since r207607 2010-06-12 19:32:52 +00:00
Warner Losh
a3255f9b15 Doh! Add another new file forgotten by the importer of edwin@'s tftp
improvements.

MFC after:	1 week
Pointy Hat: imp-o-rama...
2010-05-04 17:00:18 +00:00
Warner Losh
752fa69402 Go ahead and merge the work edwin@ on tftpd into the tree. It is a
lot better than what's in the tree now.  Edwin tested it at a prior
employer, but can't test it today.  I've found that it works a lot
better with the various uboot versions that I've used in my embedded
work.  Here's the pkg-descr from the port that describes the changes:

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.

Author: Edwin Groothuis <edwin@FreeBSD.org>
2010-05-04 06:13:17 +00:00
Gavin Atkinson
9dfc434d60 Fix return code in the case of successful file transfer, broken in
tftp.c 1.13

PR:		bin/117452
Submitted by:	Spencer Minear  minear securecomputing.com
Approved by:	ed (mentor)
MFC after:	2 weeks
2010-01-03 13:48:58 +00:00
Xin LI
1b0fa6fa40 ANSIfy, plus constify interfaces where possible. 2008-10-13 23:10:19 +00:00
Xin LI
3a4e1f4703 Use strlcpy() instead of strncpy() when we want the string to be
NUL-terminated.
2008-10-13 22:50:38 +00:00
Ruslan Ermilov
10f9229070 Fix markup. 2007-11-07 07:56:57 +00:00
Matteo Riondato
9e0573fdc2 Set txrx_error to 1 when we reach abort. This makes the program correctly set the exit code.
The PR has further details on this.

PR:		bin/103206
Submitted by:	John Hickey <jjh-freebsd@daedalian.us>
MFC after:	3 days
2006-09-28 21:22:21 +00:00
Stefan Farfeleder
2110d9c31a Use the new name H_SETSIZE instead of the old H_EVENT to set the history
size.

PR:	86355
2005-10-19 15:37:43 +00:00
Stefan Farfeleder
a3ae5e4ede Use socklen_t where appropriate. 2005-08-05 09:58:49 +00:00
Stefan Farfeleder
78e3eed071 Fix most cases where the address of an int is passed to a function expecting a
socklen_t * argument.
2005-02-14 17:42:58 +00:00
Ruslan Ermilov
6c7216df78 Sort sections. 2005-01-18 13:43:56 +00:00
Ruslan Ermilov
6a3e8b0adc Mechanically kill hard sentence breaks. 2004-07-02 22:22:35 +00:00
Ruslan Ermilov
79e447559c Bumped the document date. 2004-05-19 09:54:14 +00:00
Tim J. Robbins
7f3a5689e7 Fix BSS buffer overflow in makeargv(). 2003-10-12 00:27:55 +00:00
Simon L. B. Nielsen
891ca8cf3b tftp.1:
- Add the optional port argument to SYNOPSIS.
main.c:
- Sync usage with the manual page.

Approved by:	trhodes (main.c part)
Obtained from:	OpenBSD (jmc)
MFC after:	2 weeks
2003-10-01 21:01:14 +00:00
Simon L. B. Nielsen
d7b645262d Make the description of the connect, get, and put commands clearer.
Reported by:	Gary W. Swearingen <underway@comcast.net>
Submitted by:	Jim Brown <jpb@sixshooter.v6.thrupoint.net> (original version)
Reviewed by:	ru
PR:		docs/36459
MFC after:	3 weeks
2003-09-13 23:34:34 +00:00
Jonathan Chen
2e34a0f429 fix reverse logic in "connect" command that cause port specifications to be ignored.
MFC after:	1 week
2003-03-25 02:33:35 +00:00
Ruslan Ermilov
06e482e60a mdoc(7) police: markup polishing.
Approved by:	re
2002-11-26 17:33:37 +00:00
Ruslan Ermilov
50965a6892 mdoc(7) police: markup nits. 2002-05-30 06:18:53 +00:00
Brian S. Dean
73f899cae1 To perform even basic error checking, one must have an exit code that
indicates that not everything worked as expected.  Exit non-zero if we
timed out while transmitting or receiving a file or if the file did
not exist, etc.

MFC After:	3 days (re@ willing)
2002-05-12 01:47:50 +00:00
Hajimu UMEMOTO
a2df389f20 Backout copyright notice I broke by my previous commit. 2002-04-26 12:16:34 +00:00
Philippe Charnier
e8937ba009 Use `The .Nm utility' 2002-04-20 12:18:28 +00:00
David Malone
8da9a6b0c5 Add some constness to make this WARNS clean again. 2002-04-13 18:38:16 +00:00
Hajimu UMEMOTO
4dac6235cf IPv6 support for tftp/tftpd.
Obtained from:	KAME
MFC after:	2 weeks
2002-04-11 17:14:22 +00:00
David Malone
6dfc206096 Clean up vendor ID and FBSDID.
We now seem to include <arpa/inet.h> to get ntoh*.
2002-03-30 14:18:15 +00:00
Warner Losh
3f330d7d1a remove __P 2002-03-22 01:42:45 +00:00
David Malone
8f4c8256b2 1) Move FreeBSD ID below vendor ID and don't compile vendor ID.
2) Cast some numbers we know to be positive to size_t before we MIN them
   with the result of a sizeof.
3) Compare result of inet_addr to INADDR_NONE, not -1.
2002-02-27 15:22:12 +00:00
Mark Murray
e35f9517d6 Remove NO_WERRORs and WARNS=n's. To be revisited after GCC3. 2002-02-08 23:07:37 +00:00
Guido van Rooij
b50764b00b Argh...argv->argc 2002-01-04 13:46:57 +00:00
Guido van Rooij
57aa7d5027 Fix the coredump that occurs when, from the tfpt prompt, a 'c' command is
issued without an argument.
2002-01-04 13:42:14 +00:00
Mark Murray
8049f797e3 WARNS=2 fixes. NO_WERROR set as there are some hard-to-fix
signed/unsigned comparisons. Use __FBSDID().
2001-12-11 23:43:15 +00:00
Bruce Evans
8979160a62 Fixed most style bugs in previous commit. 2001-10-19 12:27:26 +00:00
Bruce Evans
1c6f6c1195 Fixed missing DPADD and misplaced $FreeBSD$ in previous commit. 2001-10-19 12:15:56 +00:00