summaryrefslogtreecommitdiffstats
path: root/lib/libfetch
Commit message (Collapse)AuthorAgeFilesLines
...
* Recommit the non-broken parts of 1.34 and 1.37.des2002-10-301-6/+11
| | | | Change the type and name of a variable introduced in 1.33.
* Don't forget to set the error flag when _fetch_read() returns -1.des2002-10-301-2/+6
|
* Reinstate revs 1.35-36 and 1.38. Revisions 1.34 and 1.37 were specificallyimp2002-10-301-12/+38
| | | | | | | | the root cause of the bus errors I was experiencing. Submitted by: fenner Tested by: obrien Prompted by: peter
* Fix `pkg_add -r' by backing out revs 1.34-1.38.obrien2002-10-291-52/+19
| | | | | Revs 1.37-8 produce a bus error in some environments. Revs 1.34-6 do not bus error, but write corrupted files.
* libfetch is now WARNS5 clean in the non-SSL case.des2002-10-281-1/+1
|
* Fix an off-by-one error (> where >= should have been used) which causeddes2002-10-281-6/+5
| | | | | | | | | _fetch_writev() to incorrectly report EPIPE in certain cases. Also fix a number of const warnings by using __DECONST(), plus a signed / unsigned comparison by casting the rhs to ssize_t. Submitted by: fenner, Craig Rodrigues <rodrigc@attbi.com>
* Up WARNS to 3 if not building with crypto.fenner2002-10-281-1/+3
| | | | Approved by: des
* Slight amendment to rev 1.34: instead of considering any short read andes2002-10-271-6/+8
| | | | | | error, only report an error if no data was read at all (unless len was 0 to start with). Otherwise, the final read of practically any transfer will end in a fatal error.
* Introduce _fetch_writev(), which is the conn_t version of writev(2). Indes2002-10-272-7/+38
| | | | | | | | | | | | | | 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
* Eliminate two cases of undefined behaviour: total in _fetch_write() wasdes2002-10-272-0/+2
| | | | | | | | not initialized before use, and _http_growbuf() did not return a value on success. Reported by: Peter Edwards <pmedwards@eircom.net> MFC after: 2 weeks
* Back out the previous commit, and fix the bug rather than try to hide itsdes2002-10-271-10/+18
| | | | | | | symptoms: make timeouts and short transfers fatal, and set errno to an appropriate value (ETIMEDOUT for a timeout, EPIPE for a short transfer). MFC after: 2 weeks
* The FTP connection caching needs a better interface -- connections arenjl2002-10-251-0/+4
| | | | | | | | | | | | | closed through _fetch_close() which is the only one who knows the connection REALLY was closed (since ref -> 0). However, FTP keeps its own local cached_connection and checks if it is valid by comparing it to NULL. This is bogus since it may have been freed elsewhere by _fetch_close(). This change checks if we are closing the cached_connection and the ref is 1 (soon to be 0). If so, set cached_connection to NULL so we don't accidentally reuse it. The REAL fix should be to move connection caching to the common.c level (_fetch_* functions) and NULL the cache(s) in _fetch_close(). Then all layers could benefit from caching.
* Use a warns setting we can catch regressions with.obrien2002-10-201-3/+1
|
* When recycling a cached connection, increment the reference count so thattjr2002-10-201-1/+1
| | | | | the heap block does not get freed and reused. This should fix the pkg_add -r crashes that have been happening for months.
* HTTP authentication got broken in rev. 1.49.ru2002-10-031-4/+4
|
* Zap now-unused SHLIB_MINORpeter2002-09-281-1/+0
|
* Fix an infinite loop when _fetch_read() can return 0 (if thealfred2002-09-201-1/+5
| | | | | connection is broken), take this into account and return at this point.
* Make _fetch_connect() always set the error code.fenner2002-09-172-4/+5
| | | | Tell ftp that _fetch_connect() always sets the error code (http already knew)
* Surround prototypes with __BEGIN_DECLS / __END_DECLS.des2002-07-221-0/+4
| | | | | PR: misc/40399 MFC after: 3 days
* Cope with 2292bis-01 getaddrinfo (no NI_WITHSCOPEID, always attachume2002-07-021-0/+1
| | | | | | | scope identifier). Approved by: des MFC after: 3 weeks
* Reintroduce debugging code that somehow got lost in a previous revision.des2002-06-241-0/+2
|
* Fix incorrect library ordering. I thought I'd committed this already...des2002-06-211-2/+2
|
* Don't try to dereference conn when we know it's NULL.des2002-06-191-2/+5
|
* Add a reference count to struct fetchconn so we don't prematurely close anddes2002-06-113-1/+22
| | | | free a cached FTP connection.
* libfetch now depends on libcrypto and libssl.ru2002-06-061-5/+6
|
* Make SSL support conditional on NOCRYPT.des2002-06-054-0/+21
|
* During buildworld, "regular" libraries are built before crypto stuff, sodes2002-06-051-2/+2
| | | | | libfetch can't depend on lib{crypto,ssl}. Move the dependency to fetch until we can figure out how to fix this.
* Add SSL support + slight cleanup.des2002-06-054-20/+78
| | | | Submitted by: Henry Whincup <henry@techiebod.com> (in principle)
* Wrap everything in struct connection, and enforce timeouts everywheredes2002-06-054-113/+204
| | | | | (except for DNS operations). Always use funopen() for HTTP, to support both timeouts and SSL.
* Add the necessary dependencies for SSL.des2002-06-051-0/+2
|
* Rename struct cookie to struct httpio to avoid confusion (it's not an HTTPdes2002-06-051-50/+50
| | | | cookie) and increase symmetry with equivalent FTP code.
* Add comments to struct cookie.des2002-06-051-8/+8
|
* Fix a bug I introduced in the chunk decoder in the previous commit..des2002-06-051-1/+1
|
* First step towards SSL support: wrap connections in a 'struct connection'des2002-06-054-196/+255
| | | | | | | | | | 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.
* Do not use __progname directly (except in [gs]etprogname(3)).markm2002-03-291-3/+1
| | | | | | Also, make an internal _getprogname() that is used only inside libc. For libc, getprogname(3) is a weak symbol in case a function of the same name is defined in userland.
* Modernize my email addressphk2002-03-251-1/+1
|
* Switch to a self-starting allocation scheme.des2002-02-051-10/+3
|
* Reindent, and add parentheses to return statements. Some functions indes2002-02-058-1989/+1997
| | | | | 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.
* Eliminate a redundant loop.des2002-02-051-2/+1
|
* Check the return value from read() when reading the CR/LF at the end of ades2002-01-201-2/+4
| | | | | | | chunk. PR: bin/33608 MFC after: 2 weeks
* Mark uploads as O_WRONLY, not O_RDONLY.des2002-01-201-2/+6
| | | | | PR: misc/34043 MFC after: 2 weeks
* Remove long-obsolete README.des2002-01-011-10/+0
|
* In verbose mode, display the full error message from the server, strippingdes2002-01-011-3/+48
| | | | | | | it of HTML tags and comments. PR: bin/32989 MFC after: 1 week
* Remove VT100 escapes from debugging messages now that they're enabled bydes2002-01-014-22/+21
| | | | | | | default. PR: 32988 MFC after: 3 days
* Don't build with NDEBUG.des2001-12-091-3/+0
| | | | | PR: bin/32615 MFC after: 1 week
* Conditionalize some debugging code that didn't use the DEBUG macro.des2001-12-091-8/+10
| | | | MFC after: 1 week
* Introduce a fetchDebug global. Change the DEBUG macro so it only runs thedes2001-12-093-1/+5
| | | | | | | debugging code if fetchDebug is set. PR: bin/32615 MFC after: 1 week
* Properly handle being redirected to an FTP URL.des2001-12-041-1/+10
| | | | | | | | | Also fix a couple of not-so-minor bugs: - missing case for HTTP_SEE_OTHER - incorrect definition of HTTP_NEED_PROXY_AUTH PR: 20259 MFC after: 2 weeks
* Add prototype for _ftp_request().des2001-12-041-4/+8
|
* Reorganize to reduce code duplication.des2001-12-041-64/+32
|
OpenPOWER on IntegriCloud