aboutsummaryrefslogtreecommitdiff
path: root/libexec/tftpd
Commit message (Collapse)AuthorAgeFilesLines
* MFC: r235857Marius Strobl2013-03-021-8/+4
| | | | | | | mdoc: Only use macros inside a reference block. Notes: svn path=/stable/8/; revision=247651
* MFC: r233648 (partial)Marius Strobl2013-03-021-3/+3
| | | | | | | Remove trailing whitespace per mdoc lint warning. Notes: svn path=/stable/8/; revision=247649
* MFC: r231973Marius Strobl2013-03-021-1/+2
| | | | | | | Avoid error log for transfer stop w/o error code. Notes: svn path=/stable/8/; revision=247647
* MFC: r244686Marius Strobl2013-03-021-2/+1
| | | | | | | | | | | Use correct size in snprintf. Remove unused buffer. PR: 174631 Submitted by: Henning Petersen Notes: svn path=/stable/8/; revision=247646
* MFC: r246106, r246139Marius Strobl2013-03-024-16/+18
| | | | | | | Mark tftp_log() as __printflike() and deal with the fallout. Notes: svn path=/stable/8/; revision=247645
* MFC: r241720 (partial)Marius Strobl2013-03-023-5/+5
| | | | | | | Fix warnings found by -Wmising-variable-declarations. Notes: svn path=/stable/8/; revision=247639
* MFC: r235643Marius Strobl2013-03-021-1/+3
| | | | | | | Properly use LDADD & DPADD to link against libwrap. Notes: svn path=/stable/8/; revision=247636
* MFC r241848:Eitan Adler2012-10-271-1/+4
| | | | | | | | | | | | Check the return error of set[e][ug]id. While this can never fail in the current version of FreeBSD, this isn't guarenteed by the API. Custom security modules, or future implementations of the setuid and setgid may fail. Approved by: cperciva (implicit) Notes: svn path=/stable/8/; revision=242164
* MFC 203377-231538. This records mergeinfo for already mergedCraig Rodrigues2012-02-114-19/+98
| | | | | | | | | | | | | | | | | | | | | | | changesets, but brings in the following changes: MFC 222326 - Fix tftp_log() usage MFC 223137 - Man page updates MFC 223487 - Bring back syncnet() implementation from older tftp implementation. MFC 229780 - Spelling fixes for libexec/ MFC 229904 - Fix warning when compiling with gcc46: error: variable 'bp' set but not used Notes: svn path=/stable/8/; revision=231539
* MFC r224536:Sean Bruno2011-11-041-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Confirmed behavior of a Cisco 6509 in production. In the old TFTP server, there was an undocumented behavior where the block counter would rollover to 0 if a file larger than 65535 blocks was transferred. With the default block size of 512 octets per block, this is a file size of approximately 32 megabytes. The new TFTP server code would report an error and stop transferring the file if a file was larger than 65535 blocks. This patch restores the old TFTP server's behavior to the new TFTP server code. If a TFTP client transfers a file larger than 65535 blocks, and does *not* specify the "rollover" option, then automatically rollover the block counter to 0 every time we reach 65535 blocks. This restores interoperability with the FreeBSD 6 TFTP client. Without this change, if a FreeBSD 6 TFTP client tried to retrieve a file larger than 65535 blocks from a FreeBSD 9 TFTP server, the transfer would fail. The same file could be retrieved successfully if the same FreeBSD 6 TFTP client was used against a FreeBSD 6 TFTP server. Notes: svn path=/stable/8/; revision=227083
* MFC r215034:Rebecca Cran2010-11-201-1/+1
| | | | | | | | | | Fix typos. PR: bin/148894 Submitted by: olgeni Notes: svn path=/stable/8/; revision=215588
* MFC r213488:Xin LI2010-10-091-2/+2
| | | | | | | Use a defined FreeBSD version. Notes: svn path=/stable/8/; revision=213641
* MFC: r213102Marius Strobl2010-10-041-1/+0
| | | | | | | | | | | | Remove the duplicate logging of failed read requests, whose error message also was inappropriate as it triggered for every EACCESS and ENOTFOUND, not just the case the -n option is intended to deal with and thus really spammed us with ~20 messages in the default configuration when booting a diskless FreeBSD client, introduced with r207608 (commited to stable/8 in 213038) again. Notes: svn path=/stable/8/; revision=213419
* MFC: r213099Marius Strobl2010-10-046-44/+38
| | | | | | | Make WARNS=6 clean. Notes: svn path=/stable/8/; revision=213417
* MFC: 213075Marius Strobl2010-10-041-5/+3
| | | | | | | Try to adhere to style.Makefile(5). Notes: svn path=/stable/8/; revision=213415
* MFC: r207608, r207614, r212651, r212665Marius Strobl2010-09-2213-497/+2414
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/stable/8/; revision=213038
* MFC: r205076 (partial)Marius Strobl2010-09-221-1/+1
| | | | | | | | | | | Fix several typos in macros or macro misusage. Found by: make manlint Reviewed by: ru Approved by: philip (mentor) Notes: svn path=/stable/8/; revision=213030
* Add "with" to make the line go smoother.Edwin Groothuis2007-11-231-1/+1
| | | | Notes: svn path=/head/; revision=173854
* Add the -W options, which acts the same as -w but will generateEdwin Groothuis2007-11-233-8/+104
| | | | | | | | | | | | | | unique names based on the submitted filename, a strftime(3) format string and a two digit sequence number. By default the strftime(3) format string is %Y%m%d (YYYYMMDD), but this can be changed by the -F option. PR: bin/106049 (based on patch in that PR) Approved by: grog@ (mentor) Notes: svn path=/head/; revision=173852
* Correct a typo.Bjoern A. Zeeb2007-06-031-1/+1
| | | | | | | | PR: 106049 Submitted by: edwin (as part of a larger patch) Notes: svn path=/head/; revision=170240
* Markup fixes.Ruslan Ermilov2006-09-171-1/+1
| | | | Notes: svn path=/head/; revision=162387
* - Improve and extend mark-up.Yaroslav Tykhiy2006-08-071-20/+32
| | | | | | | | | | | | | - Don't use full path in .Nm (we just don't do that). - Correct some frivolous and poorly rendering language, such as using possessive case for .Nm or .Fl . - Use the same capitalization for "user ID" as in setuid(2) and getuid(2). - Bring SEE ALSO in accord with the text. MFC after: 5 days Notes: svn path=/head/; revision=161046
* o Missed colon in getopt(3) argument makes tftpd(8) crash. Fix that.Maxim Konovalov2005-05-311-1/+1
| | | | | | | | | PR: misc/81732 Submitted by: Denis Grudkin MFC after: 2 weeks Notes: svn path=/head/; revision=146827
* NI_WITHSCOPEID cleanup. Neither RFC 2553 nor RFC 3493 definesHajimu UMEMOTO2005-05-131-3/+2
| | | | | | | | NI_WITHSCOPEID, and our getaddrinfo(3) does nothing special for it, now. Notes: svn path=/head/; revision=146187
* - Use socklen_t.Stefan Farfeleder2005-02-141-8/+5
| | | | | | | | - No need for 'fromlen' to have file scope. - Remove an unused variable. Notes: svn path=/head/; revision=141922
* Instead of "OpenFirmware", "openfirmware", etc. use the official spellingMarius Strobl2004-08-161-1/+1
| | | | | | | | | "Open Firmware" from IEEE 1275 and OpenFirmware.org (no pun intended). Ok'ed by: tmm Notes: svn path=/head/; revision=133862
* mdoc(7) fixes.Ruslan Ermilov2004-07-071-2/+5
| | | | Notes: svn path=/head/; revision=131754
* The call to setuid(2) subsequently causes setgroups(2) to fail. setgroups(2)Christian S.J. Peron2004-06-301-2/+2
| | | | | | | | requires super-user access in order to complete successfully. Move setgroups(2) to execute before setuid(2) so that it is successful. Notes: svn path=/head/; revision=131358
* Call tzset() at startup.Brian Somers2004-06-211-0/+3
| | | | | | | Submitted by: Andrzej Toboƅa <ato@iem.pw.edu.pl> Notes: svn path=/head/; revision=130839
* o Reduce path names in RRQ and WRQ packets by:Brian Somers2004-06-211-2/+34
| | | | | | | | | | | | | | | | | | | | Reducing "/+./" strings to "/" Reducing "/[^/]+/../" to "/" o Don't send an OACK when the result of the [RW]RQ is an error. These changes allow tftpd to interact with pxelinux.bin from the syslinux package. Whilst the path reducing code doesn't properly handle situations where the path component before the "/../" is a symlink to (say) ".", I would suggest that it does the right thing in terms of the clients perception of what their path string actually represents. This seems better than using realpath() and breaking environments where symlinks point outside of the directory hierarchy that tftpd is configured to allow. Notes: svn path=/head/; revision=130834
* - Close fd if fdopen(fd) fails.Matthew N. Dodd2004-05-251-1/+2
| | | | | | | - Format return () to resemble the one 5 lines up. Notes: svn path=/head/; revision=129683
* Add two new flags: -w, which allows new files to be created,Matthew N. Dodd2004-05-242-5/+32
| | | | | | | | | and -U, which allows the umask to be set. Obtained from: Patton Electronics, Co. Notes: svn path=/head/; revision=129680
* Fix a bug which causes wrong filename being written into the syslogMaxim Sobolev2003-11-201-1/+10
| | | | | | | | | | in the case when client sends request with RFC2347 options. Approved by: re MFC After: 2 weeks Notes: svn path=/head/; revision=122916
* properly refuse a connection in the -c case if the client ip's subdirectoryBill Fumerola2003-04-191-5/+6
| | | | | | | | | | | does not exist. PR: bin/38303 Submitted by: Woei-Luen, Shyu <m8535@cn.ee.ccu.edu.tw> the committed patch differs from the submitted one, any inaccuracies are mine. Notes: svn path=/head/; revision=113714
* Clean up some warnings that don't result in a change in the object file:David Malone2003-03-201-17/+20
| | | | | | | | | | Constness, missing prototypes, non-ansi prototypes, missing initialisers, unnecessary declarations, shadowing. Reviewed by: md5 Notes: svn path=/head/; revision=112452
* The .Nm utilityPhilippe Charnier2002-07-061-3/+4
| | | | Notes: svn path=/head/; revision=99500
* Correct indent.Hajimu UMEMOTO2002-04-261-14/+14
| | | | Notes: svn path=/head/; revision=95496
* IPv6 support for tftp/tftpd.Hajimu UMEMOTO2002-04-111-14/+59
| | | | | | | | Obtained from: KAME MFC after: 2 weeks Notes: svn path=/head/; revision=94443
* Better handle the case with a network that drops packets by retryingDoug Ambrisko2002-04-091-3/+13
| | | | | | | | | | | | | with a back off. This was discovered when Luigi sent me code to handle this for Etherboot. The Etherboot patch worked okay but FreeBSD's tftpd had trouble handling it and would fail to transfer the file since it would abort on send and not retry. Submitted by: luigi MFC after: 1 week Notes: svn path=/head/; revision=94299
* o __P removalWarner Losh2002-02-071-41/+31
| | | | | | | | | | o Use new-style prototypes and function definitions. o Fix timeout and justquit to have proper signatures for signal handlers. Mark the args as __unused. o remove register Notes: svn path=/head/; revision=90333
* Change the failure mode in option parsing to silently bailing out of optionBenno Rice2001-11-221-2/+9
| | | | | | | | | | | | | negotiation rather than rejecting the request. Apple OpenFirmware 3.0f3 (the version in my iMac) adds trailing garbage to the end of an otherwise valid request. Without this change, the requests were rejected which prevented me from booting. Reviewed by: obrien Notes: svn path=/head/; revision=86765
* When we set our UID to `nobody', set an appropriate group also.David E. O'Brien2001-10-221-0/+1
| | | | | | | Submitted by: peter Notes: svn path=/head/; revision=85299
* RFC2349 (http://www.hypermail.org/rfcs/rfc2349.html) adds supportDavid E. O'Brien2001-09-271-9/+120
| | | | | | | | | | | | | | for negotiation of timeout and file size to the tftp protocol. This is required by some firmware like EFI boot managers (at least on HP i2000 Itanium servers) in order to boot an image using tftp. The attached patch implements the RFC, and in doing so also implements RFC2347; a generic tftp option extension. PR: 30710 Submitted by: Espen Skoglund <esk@ira.uka.de> Notes: svn path=/head/; revision=84047
* Remove whitespace at EOL.Dima Dorfman2001-07-151-7/+7
| | | | Notes: svn path=/head/; revision=79754
* mdoc(7) police: removed HISTORY info from the .Os call.Ruslan Ermilov2001-07-101-1/+1
| | | | Notes: svn path=/head/; revision=79529
* mdoc(7) police: normalize .Nd.Ruslan Ermilov2001-04-181-2/+1
| | | | Notes: svn path=/head/; revision=75670
* - Backout botched attempt to intoduce MANSECT feature.Ruslan Ermilov2001-03-261-0/+1
| | | | | | | - MAN[1-9] -> MAN. Notes: svn path=/head/; revision=74814
* Set the default manual section for libexec/ to 8.Ruslan Ermilov2001-03-201-1/+0
| | | | Notes: svn path=/head/; revision=74529
* First appeared in 4.3, not 5.0Kris Kennaway2001-03-041-1/+1
| | | | Notes: svn path=/head/; revision=73493
* Fix tftpd and tftp to support file transfers of over 65535 blocksJeroen Ruigrok van der Werven2001-02-022-2/+7
| | | | | | | | | | (about 31 MB - 32 MB). Submitted (partially) by: Pascal Hofstee <daeron@wit401305.student.utwente.nl> Notes: svn path=/head/; revision=71926