summaryrefslogtreecommitdiff
path: root/lib/libfetch/ftp.c
Commit message (Collapse)AuthorAgeFilesLines
* Grok 125 replies to passive RETR. This fixes an interoperability bug withDag-Erling Smørgrav2000-08-211-1/+2
| | | | | | | | | Microsoft FTP Service. Reported by: asmodai, eivind Notes: svn path=/head/; revision=64883
* Don't fail if _ftp_stat() reports a protocol error, since that most likelyDag-Erling Smørgrav2000-07-271-0/+1
| | | | | | | | | | means that the server doesn't understand SIZE or MDTM, which should not be a hard failure. Submitted by: ume Notes: svn path=/head/; revision=63910
* If the server reports the size as 0, treat it as unknown. This works aroundDag-Erling Smørgrav2000-07-251-3/+2
| | | | | | | | | | | | a bug in some ftp servers (most notably ftp.vmunix.com) which report the size of a file correctly in ascii mode, but report it as 0 in binary mode. Reported by: asmodai Also remove an unneeded initialization. Notes: svn path=/head/; revision=63847
* Centralize the default port finding code.Dag-Erling Smørgrav2000-07-251-17/+17
| | | | | | | | Work around YA Apache bug: don't send port in Host: header if it's the default port. Notes: svn path=/head/; revision=63842
* The decision to use an HTTP proxy for FTP documents belongs in the FTP codeDag-Erling Smørgrav2000-07-211-1/+24
| | | | Notes: svn path=/head/; revision=63713
* Don't send port number to proxy unless it's not the standard FTP portDag-Erling Smørgrav2000-07-211-2/+6
| | | | Notes: svn path=/head/; revision=63712
* Fix the case where the file name is preceded by a lone slash.Dag-Erling Smørgrav2000-07-201-1/+1
| | | | Notes: svn path=/head/; revision=63585
* Don't take a failure to stat a file to mean that it doesn't exist, as it mayDag-Erling Smørgrav2000-07-181-1/+5
| | | | | | | | be a dynamically created file, e.g. a tarball on servers that support sending tarballs of directories. Notes: svn path=/head/; revision=63392
* Introduce fetchXGet*(), which combine the functionalities of fetchGet*() andDag-Erling Smørgrav2000-07-171-94/+134
| | | | | | | | | fetchStat*(). In most cases, either fetchGet*() or fetchXGet*() is a wrapper around the other; in all cases, calling fetchGet*() is identical to calling fetchXGet*() with the second argument set to NULL. Notes: svn path=/head/; revision=63340
* Use a symbolic constant instead of hardcoding 999Dag-Erling Smørgrav2000-07-171-10/+11
| | | | Notes: svn path=/head/; revision=63336
* Use fetch_putln()Dag-Erling Smørgrav2000-07-111-11/+5
| | | | Notes: svn path=/head/; revision=62982
* Clean up the debugging outputDag-Erling Smørgrav2000-07-111-9/+1
| | | | Notes: svn path=/head/; revision=62964
* Make EPSV work again. Separate parsing code of 229 replies fromHajimu UMEMOTO2000-07-101-7/+14
| | | | | | | | | the code for 227 and 228. Submitted by: des Notes: svn path=/head/; revision=62888
* Don't assume the remote address in a 227 reply is enclosed in parentheses.Dag-Erling Smørgrav2000-07-081-2/+1
| | | | Notes: svn path=/head/; revision=62814
* Make restart work in active mode, too.Dag-Erling Smørgrav2000-06-291-0/+5
| | | | | | | | PR: bin/18688 Submitted by: Rudolf Cejka <cejkar@dcse.fee.vutbr.cz> Notes: svn path=/head/; revision=62256
* Handle multiline replies properly, instead of kinda-right.Dag-Erling Smørgrav2000-06-281-7/+16
| | | | Notes: svn path=/head/; revision=62215
* Back out wes' commit with extreme prejudice.Dag-Erling Smørgrav2000-06-201-143/+5
| | | | Notes: svn path=/head/; revision=61866
* Add implementation of fetchListFTP.Wes Peters2000-06-201-5/+143
| | | | | | | Reviewed by: silence Notes: svn path=/head/; revision=61838
* Honor FTP_PASSIVE_MODE so caller doesn't need to.Dag-Erling Smørgrav2000-05-261-0/+4
| | | | Notes: svn path=/head/; revision=60951
* Use $FTP_PASSWORD for FTP password. If $FTP_PASSWORD is notHajimu UMEMOTO2000-05-221-1/+11
| | | | | | | found, `yourname@yourhost' is used. Notes: svn path=/head/; revision=60791
* IPv6 support.Hajimu UMEMOTO2000-05-201-35/+197
| | | | Notes: svn path=/head/; revision=60737
* Better handling of some boundary conditions.Dag-Erling Smørgrav2000-05-191-4/+7
| | | | | | | Submitted by: ume Notes: svn path=/head/; revision=60707
* Initialize the struct url_stat at the beginning of fetchStatFTP().Dag-Erling Smørgrav2000-05-151-0/+3
| | | | Notes: svn path=/head/; revision=60582
* Add workaround for ftpds with the Y2K MDTM bugDag-Erling Smørgrav2000-05-111-7/+22
| | | | Notes: svn path=/head/; revision=60383
* Implement restart.Dag-Erling Smørgrav2000-05-071-14/+41
| | | | | | | | Use sizeof more consistently. Outline sanity checking of server port spec. Notes: svn path=/head/; revision=60188
* Fix timestamp handling.Dag-Erling Smørgrav2000-01-261-5/+7
| | | | | | | Submitted by: bde Notes: svn path=/head/; revision=56635
* More old uncommitted patches: implement timeouts at the protocol level.Dag-Erling Smørgrav2000-01-071-97/+119
| | | | | | | Currently only supported for ftp connections. Notes: svn path=/head/; revision=55557
* Patches I've had lying around for several months:Dag-Erling Smørgrav2000-01-071-14/+43
| | | | | | | | | | * Add the 'h' ftp flag (allocate local port in high range) * Add the 'd' flag (use direct connection even if proxy is defined) * Make sure flags != NULL before calling strchr(). * Minor changes to some comments. Notes: svn path=/head/; revision=55544
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50476
* Implement and document file list retrieval.Dag-Erling Smørgrav1998-12-211-1/+12
| | | | Notes: svn path=/head/; revision=41989
* Don't specify a language to compile_et.Dag-Erling Smørgrav1998-12-181-3/+3
| | | | | | | Rename fetchConnect to _fetch_connect since it's internal. Notes: svn path=/head/; revision=41923
* Implement and document fetchStatFTP.Dag-Erling Smørgrav1998-12-161-46/+129
| | | | | | | | Update description of struct url_stat in the man page. Clean up error handling in ftp.c. Notes: svn path=/head/; revision=41869
* Remove unused header files. Fix a few shadowing bugs. Improve error reporting.Dag-Erling Smørgrav1998-12-161-34/+21
| | | | Notes: svn path=/head/; revision=41863
* Add verbose flag, and support functions.Dag-Erling Smørgrav1998-12-161-7/+8
| | | | | | | | | | | | Brucify the Makefile. Differentiate atime and mtime in fetch*Stat(). Fix a few pointer bugs. Tweak some error messages. Don't #include sys/param.h and stdio.h in fetch.h. Document that sys/param.h and stdio.h must be #included before fetch.h. Notes: svn path=/head/; revision=41862
* Second of a series of cleanups to libfetch.Dag-Erling Smørgrav1998-11-061-11/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces the following features: a) the fetchStat*() functions, which return meta-information for a document, such as size, modification time, etc. b) the use of the com_err(3) facilities to report errors. It also fixes a bunch of style bugs and a few logic bugs and somewhat improves the man page. Changed files, in alphabetical order: Makefile: Don't generate macros in {ftp,http}err.c. Generate category fields for the error message lists. Compile the error table. Install fetch_err.h along with fetch.h. common.c: Remove the _netdb_errstring() macro, and add FETCH_ERR_NETDB to the error code in the _netdb_seterr() macro. Add categories to the _netdb_errlist table. Report errors through the Common Error library. common.h: Add the DEBUG macros. Add prototype for fetchConnect(). Remove the prototype for _fetch_errstring(), which is local to common.c Add a categroy field to struct fetcherr, and define constants for error categories. Define macros for _{url,netdb,ftp,http}_seterr(). errors.et: (new file) List error categories. fetch.3: Document the fetchStat*() functions. Move the "unimplemented functionality" comments from NOTES to BUGS. Document that applications which use libfetch must also use libcom_err, and list existing error codes. Undocument fetchLastErr{Code,String}. Remove the (empty) DIAGNOSTICS section. Mention Eugene Skepner in the AUTHORS section. fetch.c: Move the DEBUG macros to common.c Add fetchStat() and fetchStatURL(). Generate error messages for URL parser errors, and fix a minor bug in the parser. Use 'struct url' instead of 'url_t'. Remove fetchLastErr{Code,String}. fetch.h: Use 'struct url' instead of 'url_t', and remove the typedef. Define struct url_stat (used by fetchStat()). Add prototypes for fetchStat*(). Remove the declarations for fetchLastErr{Code,String}. Include fetch_err.h. fetch_err.et: (new file) Error table for libfetch. file.c: Add fetchStatFile(). Use 'struct url' instead of 'url_t'. ftp.c: Add fetchStatFTP(). Use 'struct url' instead of 'url_t'. Don't use fetchLastErrCode. ftp.errors: Add categories to all error messages. http.c: Add fetchStatHTTP(). Use 'struct url' instead of 'url_t'. Don't use fetchLastErr{Code,Text}. http.errors: Add categories to all error messages. Prompted by: jkh and Eugene Skepner Numerous sugestions from: Garett Wollman and Eugene Skepner Notes: svn path=/head/; revision=40975
* First of a series of cleanups to libfetch. Changed files, inDag-Erling Smørgrav1998-11-051-40/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | alphabetical order: Makefile: Add common.c to SRCS. Make debugging easier by making 'CFLAGS += -DNDEBUG' conditional on DEBUG Don't declare struct {ftp,http}err in {ftp,http}err.c; use struct fetcherr instead. README: Remove the todo list, which is out of date anyway. common.c: (new file) Gather utility functions in this file. Merge the error reporting functions intp _fetch_errstring(), _fetch_seterr() and _fetch_syserr(). Set fetchLastErrCode and fetchLastErrText appropriately when fetchConnect fails. common.h: (new file) Gather internal prototypes and structures in this files. fetch.3: Undocument fetchFreeURL(). Document a few more known bugs. Document fetchLastErrCode and fetchLastErrText. fetch.c: Add descriptive comments to all functions that lacked them. Move fetchConnect() to common.c. Obviate the need for fetchFreeURL(), and remove it. fetch.h: Modify struct url_t so the document part is at the end. ftp.c: Remove code that is duplicated elsewhere. http.c: Remove code that is duplicated elsewhere. Prompted by: jkh Notes: svn path=/head/; revision=40939
* Commit a bunch of patches that have been accumulating:Dag-Erling Smørgrav1998-08-171-13/+12
| | | | | | | | | | | | | - Fix the README to reflect the new status of the ftp code. - Change tons of 'if (xxx < 0)' to 'if (xxx == -1)' - Add two new interface functions - Fix the Makefile so it actually works (yay!) Now the manpage is lagging even further behind... :( Next on the todo list is to clean up the http code. Notes: svn path=/head/; revision=38394
* Base64 code (and the MIT copyright) moved to http.cDag-Erling Smørgrav1998-07-121-77/+62
| | | | | | | | FTP STORe and APPEnd added. FTP proxy support added (untested). Notes: svn path=/head/; revision=37608
* FTP retrieve works.Dag-Erling Smørgrav1998-07-111-57/+143
| | | | Notes: svn path=/head/; revision=37573
* Too many changes to list. Basically, FTP is nearly there and errorDag-Erling Smørgrav1998-07-111-95/+235
| | | | | | | reporting is kinda sorted out. Now HTTP needs to catch up... Notes: svn path=/head/; revision=37571
* Imported libfetch into the tree. It compiles, but there's still someDag-Erling Smørgrav1998-07-091-0/+250
work to do. I especially need help with the man page. Notes: svn path=/cvs2svn/branches/DES/; revision=37535