summaryrefslogtreecommitdiffstats
path: root/lib/libfetch/ftp.c
Commit message (Collapse)AuthorAgeFilesLines
* Use the documented (and historical) defaults. Centralize the decision logicdes2000-11-101-17/+4
| | | | | | in order to avoid this bug in the future. Submitted by: se
* Use CHECK_FLAGdes2000-10-291-11/+11
|
* Stricter error checking in the I/O functions.des2000-10-291-1/+25
|
* Fix this my way. David had absolutely no call overriding MAINTAINER withoutdes2000-10-281-3/+3
| | | | even giving me 24 hours to read his mail and find the bug.
* Repeat after me, "check to see that a pointer isn't NULL beforeobrien2000-10-281-3/+3
| | | | dereferenceing it". This fixes ``pkg_add -r''.
* MFS: don't expect result code until you close the data connectiondes2000-10-271-3/+3
|
* Use funopen() instead of fdopen(). This fixes three problems:des2000-10-221-4/+118
| | | | | | | | | | | | | | - ftpTimeout was not honored when reading actual data, as opposed to talking protocol - connection caching was broken because _ftp_cached_connect() would see the result of the transfer instead of the result of the NOOP. - if the RETR succeeded, but an error occurred later (as can happen when talking to a proxy), the error would not be detected. There still remains to register an atexit(3) callback to close the cached connection gracefully instead of just dropping it on the floor.
* Argh! Fix passive mode selection (again)des2000-10-171-2/+3
|
* Use the right user namedes2000-10-131-3/+3
|
* Rework proxy handling so that proxies can be specified as URLs.des2000-10-121-74/+91
| | | | As a side effect, remove a lot of duplicate and now redundant code.
* Grok 125 replies to passive RETR. This fixes an interoperability bug withdes2000-08-211-1/+2
| | | | | | Microsoft FTP Service. Reported by: asmodai, eivind
* Don't fail if _ftp_stat() reports a protocol error, since that most likelydes2000-07-271-0/+1
| | | | | | | means that the server doesn't understand SIZE or MDTM, which should not be a hard failure. Submitted by: ume
* If the server reports the size as 0, treat it as unknown. This works arounddes2000-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.
* Centralize the default port finding code.des2000-07-251-17/+17
| | | | | Work around YA Apache bug: don't send port in Host: header if it's the default port.
* The decision to use an HTTP proxy for FTP documents belongs in the FTP codedes2000-07-211-1/+24
|
* Don't send port number to proxy unless it's not the standard FTP portdes2000-07-211-2/+6
|
* Fix the case where the file name is preceded by a lone slash.des2000-07-201-1/+1
|
* Don't take a failure to stat a file to mean that it doesn't exist, as it maydes2000-07-181-1/+5
| | | | | be a dynamically created file, e.g. a tarball on servers that support sending tarballs of directories.
* Introduce fetchXGet*(), which combine the functionalities of fetchGet*() anddes2000-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.
* Use a symbolic constant instead of hardcoding 999des2000-07-171-10/+11
|
* Use fetch_putln()des2000-07-111-11/+5
|
* Clean up the debugging outputdes2000-07-111-9/+1
|
* Make EPSV work again. Separate parsing code of 229 replies fromume2000-07-101-7/+14
| | | | | | the code for 227 and 228. Submitted by: des
* Don't assume the remote address in a 227 reply is enclosed in parentheses.des2000-07-081-2/+1
|
* Make restart work in active mode, too.des2000-06-291-0/+5
| | | | | PR: bin/18688 Submitted by: Rudolf Cejka <cejkar@dcse.fee.vutbr.cz>
* Handle multiline replies properly, instead of kinda-right.des2000-06-281-7/+16
|
* Back out wes' commit with extreme prejudice.des2000-06-201-143/+5
|
* Add implementation of fetchListFTP.wes2000-06-201-5/+143
| | | | Reviewed by: silence
* Honor FTP_PASSIVE_MODE so caller doesn't need to.des2000-05-261-0/+4
|
* Use $FTP_PASSWORD for FTP password. If $FTP_PASSWORD is notume2000-05-221-1/+11
| | | | found, `yourname@yourhost' is used.
* IPv6 support.ume2000-05-201-35/+197
|
* Better handling of some boundary conditions.des2000-05-191-4/+7
| | | | Submitted by: ume
* Initialize the struct url_stat at the beginning of fetchStatFTP().des2000-05-151-0/+3
|
* Add workaround for ftpds with the Y2K MDTM bugdes2000-05-111-7/+22
|
* Implement restart.des2000-05-071-14/+41
| | | | | Use sizeof more consistently. Outline sanity checking of server port spec.
* Fix timestamp handling.des2000-01-261-5/+7
| | | | Submitted by: bde
* More old uncommitted patches: implement timeouts at the protocol level.des2000-01-071-97/+119
| | | | Currently only supported for ftp connections.
* Patches I've had lying around for several months:des2000-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.
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Implement and document file list retrieval.des1998-12-211-1/+12
|
* Don't specify a language to compile_et.des1998-12-181-3/+3
| | | | Rename fetchConnect to _fetch_connect since it's internal.
* Implement and document fetchStatFTP.des1998-12-161-46/+129
| | | | | Update description of struct url_stat in the man page. Clean up error handling in ftp.c.
* Remove unused header files. Fix a few shadowing bugs. Improve error reporting.des1998-12-161-34/+21
|
* Add verbose flag, and support functions.des1998-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.
* Second of a series of cleanups to libfetch.des1998-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
* First of a series of cleanups to libfetch. Changed files, indes1998-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
* Commit a bunch of patches that have been accumulating:des1998-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.
* Base64 code (and the MIT copyright) moved to http.cdes1998-07-121-77/+62
| | | | | FTP STORe and APPEnd added. FTP proxy support added (untested).
* FTP retrieve works.des1998-07-111-57/+143
|
* Too many changes to list. Basically, FTP is nearly there and errordes1998-07-111-95/+235
| | | | reporting is kinda sorted out. Now HTTP needs to catch up...
OpenPOWER on IntegriCloud