summaryrefslogtreecommitdiff
path: root/lib/libfetch/common.c
Commit message (Collapse)AuthorAgeFilesLines
* Reintroduce debugging code that somehow got lost in a previous revision.Dag-Erling Smørgrav2002-06-241-0/+2
| | | | Notes: svn path=/head/; revision=98748
* Add a reference count to struct fetchconn so we don't prematurely close andDag-Erling Smørgrav2002-06-111-0/+19
| | | | | | | free a cached FTP connection. Notes: svn path=/head/; revision=98117
* Make SSL support conditional on NOCRYPT.Dag-Erling Smørgrav2002-06-051-0/+11
| | | | Notes: svn path=/head/; revision=97891
* Add SSL support + slight cleanup.Dag-Erling Smørgrav2002-06-051-1/+49
| | | | | | | Submitted by: Henry Whincup <henry@techiebod.com> (in principle) Notes: svn path=/head/; revision=97868
* Wrap everything in struct connection, and enforce timeouts everywhereDag-Erling Smørgrav2002-06-051-61/+130
| | | | | | | | (except for DNS operations). Always use funopen() for HTTP, to support both timeouts and SSL. Notes: svn path=/head/; revision=97866
* First step towards SSL support: wrap connections in a 'struct connection'Dag-Erling Smørgrav2002-06-051-24/+56
| | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=97856
* Switch to a self-starting allocation scheme.Dag-Erling Smørgrav2002-02-051-10/+3
| | | | Notes: svn path=/head/; revision=90268
* Reindent, and add parentheses to return statements. Some functions inDag-Erling Smørgrav2002-02-051-233/+230
| | | | | | | | 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. Notes: svn path=/head/; revision=90267
* Remove VT100 escapes from debugging messages now that they're enabled byDag-Erling Smørgrav2002-01-011-3/+3
| | | | | | | | | | default. PR: 32988 MFC after: 3 days Notes: svn path=/head/; revision=88769
* Back out part of previous commit which was gcc-centricDag-Erling Smørgrav2001-10-191-2/+2
| | | | Notes: svn path=/head/; revision=85143
* Tons of type, style and warning fixes that have been rotting in my tree forDag-Erling Smørgrav2001-10-181-5/+8
| | | | | | | | ages - some of which wouldn't be necessary if gcc wasn't broken or TPTB were willing to do something (-fno-builtin) about it. Notes: svn path=/head/; revision=85093
* Add __FBSDID()s to libfetchMatthew Dillon2001-09-301-2/+3
| | | | Notes: svn path=/head/; revision=84203
* MAXPATHLEN -> PATH_MAXDag-Erling Smørgrav2001-05-261-1/+1
| | | | Notes: svn path=/head/; revision=77237
* Apply 'const' liberally.Archie Cobbs2001-04-241-9/+9
| | | | | | | Fix some other minor glitches. Notes: svn path=/head/; revision=75891
* Don't try to get the proxy port number from /etc/services.Dag-Erling Smørgrav2000-11-271-4/+0
| | | | Notes: svn path=/head/; revision=69271
* Use the documented (and historical) defaults. Centralize the decision logicDag-Erling Smørgrav2000-11-101-0/+34
| | | | | | | | | in order to avoid this bug in the future. Submitted by: se Notes: svn path=/head/; revision=68551
* Introduce the (undocumented) variable fetchRestartCalls, which controls whetherDag-Erling Smørgrav2000-07-171-2/+2
| | | | | | | | | | or not interrupted system calls will be restarted. This fixes a bug where fetch(1) would hang (potentially forever) if a server stopped responding, because the signal handler would absorb the user's efforts to interrupt the transfer. Notes: svn path=/head/; revision=63334
* Add _fetch_putln()Dag-Erling Smørgrav2000-07-111-5/+29
| | | | Notes: svn path=/head/; revision=62981
* Clean up the debugging outputDag-Erling Smørgrav2000-07-111-3/+2
| | | | Notes: svn path=/head/; revision=62964
* Free chunks obtained by getaddrinfo(3).Hajimu UMEMOTO2000-07-101-0/+1
| | | | | | | Approved by: des Notes: svn path=/head/; revision=62911
* Output newline after debugging messageDag-Erling Smørgrav2000-05-251-0/+1
| | | | Notes: svn path=/head/; revision=60928
* Dump com_err, it's a stinking crock of shit.Dag-Erling Smørgrav2000-05-251-45/+11
| | | | Notes: svn path=/head/; revision=60924
* IPv6 support.Hajimu UMEMOTO2000-05-201-22/+26
| | | | Notes: svn path=/head/; revision=60737
* Use sizeof more consistently.Dag-Erling Smørgrav2000-05-071-1/+1
| | | | Notes: svn path=/head/; revision=60190
* More old uncommitted patches: implement timeouts at the protocol level.Dag-Erling Smørgrav2000-01-071-0/+82
| | | | | | | Currently only supported for ftp connections. Notes: svn path=/head/; revision=55557
* $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/+43
| | | | Notes: svn path=/head/; revision=41989
* Don't specify a language to compile_et.Dag-Erling Smørgrav1998-12-181-2/+2
| | | | | | | Rename fetchConnect to _fetch_connect since it's internal. Notes: svn path=/head/; revision=41923
* Add verbose flag, and support functions.Dag-Erling Smørgrav1998-12-161-19/+56
| | | | | | | | | | | | 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-18/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+134
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