summaryrefslogtreecommitdiffstats
path: root/lib/libfetch/common.h
Commit message (Collapse)AuthorAgeFilesLines
* Add and document support for a FETCH_BIND_ADDRESS environment variabledes2003-03-031-0/+1
| | | | | | specifying a local address to bind sockets to. Caveat: lightly tested. PR: bin/37572
* Experimental support for .netrc.des2003-01-221-0/+1
|
* Introduce _fetch_writev(), which is the conn_t version of writev(2). Indes2002-10-271-0/+4
| | | | | | | | | | | | | | the SSL case, it is no different from the old _fetch_write(), but in the non-SSL case it uses writev(2) to send the entire vector as a single packet (provided it can fit in one packet). Implement _fetch_write() and _fetch_putln() in terms of _fetch_writev(). This should improve performance in the non-SSL case (by reducing protocol overhead) and solve the problem where too-smart-for-their-own-good firewalls reject FTP packets that do not end in CRLF. PR: bin/44123 Submitted by: fenner
* Add a reference count to struct fetchconn so we don't prematurely close anddes2002-06-111-0/+2
| | | | free a cached FTP connection.
* Make SSL support conditional on NOCRYPT.des2002-06-051-0/+4
|
* Add SSL support + slight cleanup.des2002-06-051-2/+3
| | | | Submitted by: Henry Whincup <henry@techiebod.com> (in principle)
* Wrap everything in struct connection, and enforce timeouts everywheredes2002-06-051-4/+5
| | | | | (except for DNS operations). Always use funopen() for HTTP, to support both timeouts and SSL.
* First step towards SSL support: wrap connections in a 'struct connection'des2002-06-051-3/+26
| | | | | | | | | | which contains the socket descriptor, the input buffer and (yet unused) SSL state variables. This has the neat side effect of greatly improving reentrance (though we're not *quite* there yet) and opening the door to HTTP connection caching. This commit is inspired by email conversations with and patches from Henry Whincup <henry@techiebod.com> last fall.
* Reindent, and add parentheses to return statements. Some functions indes2002-02-051-7/+6
| | | | | ftp.c and http.c now have exceedingly long lines due to deep nesting; this will be corrected by reorganizing the code in a later revision.
* Introduce a fetchDebug global. Change the DEBUG macro so it only runs thedes2001-12-091-1/+1
| | | | | | | debugging code if fetchDebug is set. PR: bin/32615 MFC after: 1 week
* Add prototype for _ftp_request().des2001-12-041-4/+8
|
* Tons of type, style and warning fixes that have been rotting in my tree fordes2001-10-181-10/+10
| | | | | ages - some of which wouldn't be necessary if gcc wasn't broken or TPTB were willing to do something (-fno-builtin) about it.
* Apply 'const' liberally.archie2001-04-241-8/+9
| | | | Fix some other minor glitches.
* Use the documented (and historical) defaults. Centralize the decision logicdes2000-11-101-0/+4
| | | | | | in order to avoid this bug in the future. Submitted by: se
* Add CHECK_FLAGS, a macro for (safely) checking if a particular flag is set.des2000-10-291-0/+5
|
* ftp.c needs _http_request()des2000-10-121-0/+11
|
* Centralize the default port finding code.des2000-07-251-0/+3
| | | | | Work around YA Apache bug: don't send port in Host: header if it's the default port.
* Add _fetch_putln()des2000-07-111-1/+1
|
* Dump com_err, it's a stinking crock of shit.des2000-05-251-1/+1
|
* IPv6 support.ume2000-05-201-1/+1
|
* More old uncommitted patches: implement timeouts at the protocol level.des2000-01-071-2/+3
| | | | Currently only supported for ftp connections.
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Implement and document file list retrieval.des1998-12-211-2/+4
|
* Don't specify a language to compile_et.des1998-12-181-2/+2
| | | | Rename fetchConnect to _fetch_connect since it's internal.
* Add verbose flag, and support functions.des1998-12-161-2/+3
| | | | | | | | | 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-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+44
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
OpenPOWER on IntegriCloud