summaryrefslogtreecommitdiffstats
path: root/lib/libfetch/http.c
Commit message (Collapse)AuthorAgeFilesLines
* Ignore HTTP_PROXY if it is defined but empty. This was already handleddes2005-08-241-1/+1
| | | | | | | | | | correctly in the case of FTP_PROXY, because an empty FTP_PROXY has a specific meaning ("don't use any proxy at all for ftp, even if HTTP_PROXY is defined"), while an empty HTTP_PROXY has no meaning at all. PR: bin/85185 Submitted by: Conall O'Brien <conallob=freebsd@maths.tcd.ie> MFC after: 2 weeks
* Set the TCP_NODELAY socket option and clear TCP_NOPUSH in order to flushkbyanc2005-03-021-2/+15
| | | | | | | | any pending HTTP request rather than calling shutdown(2) with SHUT_WR. This makes libfetch (and thus fetch(1)) work again with Squid proxies configured to not allow half-closed connections. Reported by: Pawel Worach (pawel.worach AT telia DOT com)
* Set TCP_NOPUSH on HTTP requests, reducing the number of round-tripskbyanc2005-02-161-1/+9
| | | | | | necessary to establish each connection. MFC after: 2 weeks
* Update copyright years.des2004-09-211-1/+1
|
* Don't forget to allocate space for the terminating NUL when converting todes2004-08-071-1/+1
| | | | | | | | base 64. PR: misc/70022 Submitted by: Herve Masson <herve-bsdbt@mindstep.com> MFC after: 3 days
* Slight tweak to previous commit: don't forget to call _http_seterr() ifdes2004-02-111-0/+1
| | | | we get a genuine 416 reply.
* When restarting a transfer that has already completed, the server willdes2004-02-111-9/+41
| | | | | | | reply with a 416 error code (requested range not satisfiable) because we ask it to start at the end of the file. Handle this gracefully by considering a 416 reply a success if the requested offset exactly matches the length of the file and the requested length is zero.
* Re-wrap some comments.des2004-02-111-6/+7
|
* Don't dereference flags if NULL (see http.c rev 1.87)des2003-03-291-1/+1
|
* Don't parse the proxy URL unless we're actually going to use it. No realdes2003-03-111-3/+6
| | | | functional difference, but debugging output will be less confusing.
* style(9): add parentheses to sizeof even when not strictly required.des2003-01-281-2/+2
| | | | MFC after: 3 days
* A negative offset means "get it all".des2003-01-221-2/+2
|
* Implement and document support for an HTTP_REFERER environment variable.des2002-11-281-12/+21
| | | | | | | PR: 28171 Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de> Approved by: re (bmah) MFC after: 1 week
* Use __func__ and break a long line.des2002-10-301-5/+4
|
* Don't forget to set the error flag when _fetch_read() returns -1.des2002-10-301-2/+6
|
* Eliminate two cases of undefined behaviour: total in _fetch_write() wasdes2002-10-271-0/+1
| | | | | | | | 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
* HTTP authentication got broken in rev. 1.49.ru2002-10-031-4/+4
|
* Don't try to dereference conn when we know it's NULL.des2002-06-191-2/+5
|
* Make SSL support conditional on NOCRYPT.des2002-06-051-0/+3
|
* Add SSL support + slight cleanup.des2002-06-051-1/+6
| | | | Submitted by: Henry Whincup <henry@techiebod.com> (in principle)
* Wrap everything in struct connection, and enforce timeouts everywheredes2002-06-051-33/+52
| | | | | (except for DNS operations). Always use funopen() for HTTP, to support both timeouts and SSL.
* 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-051-77/+84
| | | | | | | | | | 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.
* Reindent, and add parentheses to return statements. Some functions indes2002-02-051-736/+742
| | | | | 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.
* 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
* 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-011-10/+10
| | | | | | | default. PR: 32988 MFC after: 3 days
* Conditionalize some debugging code that didn't use the DEBUG macro.des2001-12-091-8/+10
| | | | 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
* Tons of type, style and warning fixes that have been rotting in my tree fordes2001-10-181-18/+24
| | | | | ages - some of which wouldn't be necessary if gcc wasn't broken or TPTB were willing to do something (-fno-builtin) about it.
* Add __FBSDID()s to libfetchdillon2001-09-301-2/+3
|
* Implement a HTTP_USER_AGENT environment variable.des2001-05-271-1/+4
| | | | | PR: 27669 Submitted by: Eoin Lawless <eoin@maths.tcd.ie>
* Add rudimentary support for an authentication callback function.des2001-05-261-16/+40
|
* Apply 'const' liberally.archie2001-04-241-20/+20
| | | | Fix some other minor glitches.
* Support lower-case versions of the proxy environment variables.des2001-03-071-1/+2
| | | | PR: bin/25494
* Use the documented (and historical) defaults. Centralize the decision logicdes2000-11-101-20/+3
| | | | | | in order to avoid this bug in the future. Submitted by: se
* Use CHECK_FLAGdes2000-10-291-6/+6
|
* Rework proxy handling so that proxies can be specified as URLs.des2000-10-121-132/+65
| | | | As a side effect, remove a lot of duplicate and now redundant code.
* Work around buggy servers such as NCSA httpd which send an incompletedes2000-09-241-9/+18
| | | | HTTP-Version on the Status-Line (see RFC2616 sections 3.1 and 6.1).
* Fix signedness bogon.des2000-08-021-7/+6
|
* Centralize the default port finding code.des2000-07-251-16/+23
| | | | | Work around YA Apache bug: don't send port in Host: header if it's the default port.
* Ignore environment variables that are set but empty.des2000-07-211-40/+81
| | | | | | | | | | | | Sort out the size / length confusion. Always try to report the *real* file size in the url_stat structure, no matter how much of it is actually being sent, and try to detect inconsistencies between sizes. Rearrange the request loop to avoid having to add meaningless code just to silence compiler warnings. Switch to a more sensible and consistent interface for the _http_parse*() functions.
* Don't try to skip to the requested offset if the server returns more datades2000-07-191-8/+10
| | | | | | than requested. Instead, inform the caller of the real offset by modifying the offset field in the original struct url, and let him decide how to handle the situation.
* Introduce fetchXGet*(), which combine the functionalities of fetchGet*() anddes2000-07-171-7/+21
| | | | | | 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.
* Don't forget to set file descriptor to -1 after closing it, since the codedes2000-07-171-1/+1
| | | | | | | outside the loop inspects it to determine whether or not we succeeded in retrieving the requested document. This fixes a bug where fetchGetHTTP() would return a FILE with an invalid file descriptor if it hit the redirect limit without locating the requested document.
* #ifdef DEBUG -> #ifndef NDEBUGdes2000-07-161-2/+2
| | | | Pointed out by: ache
* Reinsert the MIT copyright, which applies to the base64 code and wasdes2000-07-161-0/+32
| | | | left out by accident during the rewrite.
OpenPOWER on IntegriCloud