aboutsummaryrefslogtreecommitdiff
path: root/lib/transfer.c
AgeCommit message (Collapse)Author
2006-02-07Philippe Vaucher provided a brilliant piece of test code that show a problemDaniel Stenberg
with re-used FTP connections. If the second request on the same connection was set not to fetch a "body", libcurl could get confused and consider it an attempt to use a dead connection and would go acting mighty strange.
2006-01-30Based on an error report by Philippe Vaucher, we no longer count a retriedDaniel Stenberg
connection setup as a follow-redirect. It turns out 1) this fails when a FTP connection is re-setup and 2) it does make the max-redirs counter behave wrong. This fix was not verified since the reporter vanished, but I believe this is the right fix nonetheless.
2005-11-24Doug Kaufman's set of patches to make curl build fine on DJGPP again usingDaniel Stenberg
configure.
2005-11-18fix compiler warningDaniel Stenberg
2005-11-17I extended a patch from David Shaw to make libcurl _always_ provide an errorDaniel Stenberg
string in the given error buffer to address the flaw mention on 21 sep 2005.
2005-10-27Nis Jorgensen filed bug report #1338648Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1338648) which really is more of a feature request, but anyway. It pointed out that --max-redirs did not allow it to be set to 0, which then would return an error code on the first Location: found. Based on Nis' patch, now libcurl supports CURLOPT_MAXREDIRS set to 0, or -1 for infinity. Added test case 274 to verify.
2005-09-27An anonymous submitter filed bug #1299181Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1299181) that identified a silly problem with Content-Range: headers with the 'bytes' keyword written in a different case than all lowercase! It would cause a segfault!
2005-09-21return an error string for the missing URL caseDaniel Stenberg
2005-08-24Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessibleDaniel Stenberg
from the command line tool with --ignore-content-length. This will make it easier to download files from Apache 1.x (and similar) servers that are still having problems serving files larger than 2 or 4 GB. When this option is enabled, curl will simply have to wait for the server to close the connection to signal end of transfer. I wrote test case 269 that runs a simple test that this works.
2005-08-17- Jeff Pohlmeyer found out that if you ask libcurl to load a cookiefile (withDaniel Stenberg
CURLOPT_COOKIEFILE), add a cookie (with CURLOPT_COOKIELIST), tell it to write the result to a given cookie jar and then never actually call curl_easy_perform() - the given file(s) to read was never read but the output file was written and thus it caused a "funny" result. - While doing some tests for the bug above, I noticed that Firefox generates large numbers (for the expire time) in the cookies.txt file and libcurl didn't treat them properly. Now it does.
2005-08-13James Bursa identified a libcurl HTTP bug and a good way to repeat it. If aDaniel Stenberg
site responds with bad HTTP response that doesn't contain any header at all, only a response body, and the write callback returns 0 to abort the transfer, it didn't have any real effect but the write callback would be called once more anyway.
2005-07-12Adrian Schuur added trailer support in the chunked encoding stream. TheDaniel Stenberg
trailer is then sent to the normal header callback/stream.
2005-05-29Eric Cooper reported about a problem with HTTP servers that responds withDaniel Stenberg
binary zeroes within the headers. They confused libcurl to do wrong so the downloaded headers become incomplete. The fix is now verified with test case 262.
2005-05-10Hm, this doesn't feel right. The error bits returned from Curl_select() canDaniel Stenberg
be returned at times when we want to ignore them. Test case 160 fails on Linux, so I modify the comparison to check for _only_ the error bit set...
2005-05-10me stupid, errno is not set for mere select()-exceptionsDaniel Stenberg
2005-05-10include protos to fix warningsDaniel Stenberg
2005-05-10If Curl_select() returns with the error bit set, bail out.Daniel Stenberg
2005-04-30there cannot be chunked problem when no_body (HEAD) is true since withoutDaniel Stenberg
body there is nothing chunked-encoded!
2005-04-26Cory Nelson's work on nuking compiler warnings when building on x64 withDaniel Stenberg
VS2005.
2005-04-08fixed the 304 response-with-content-length problem reported by Cory NelsonDaniel Stenberg
2005-04-07GnuTLS support added. There's now a "generic" SSL layer that we use all overDaniel Stenberg
internally, with code provided by sslgen.c. All SSL-layer-specific code is then written in ssluse.c (for OpenSSL) and gtls.c (for GnuTLS). As far as possible, internals should not need to know what SSL layer that is in use. Building with GnuTLS currently makes two test cases fail. TODO.gnutls contains a few known outstanding issues for the GnuTLS support. GnuTLS support is enabled with configure --with-gnutls
2005-02-16Christopher R. Palmer reported a problem with HTTP-POSTing using "anyauth"Daniel Stenberg
that picks NTLM. Thanks to David Byron letting me test NTLM against his servers, I could quickly repeat and fix the problem. It turned out to be: When libcurl POSTs without knowing/using an authentication and it gets back a list of types from which it picks NTLM, it needs to either continue sending its data if it keeps the connection alive, or not send the data but close the connection. Then do the first step in the NTLM auth. libcurl didn't send the data nor close the connection but simply read the response-body and then sent the first negotiation step. Which then failed miserably of course. The fixed version forces a connection if there is more than 2000 bytes left to send.
2005-02-14Rename Curl_pretransfersec() to *_second_connect() since it does not justDaniel Stenberg
do pretransfer stuff like Curl_pretransfer().
2005-02-09David Byron identified the lack of SSL_pending() use, and this is my takeDaniel Stenberg
at fixing this issue.
2005-02-09FTP code turned into state machine. Not completely yet, but a good start.Daniel Stenberg
The tag 'before_ftp_statemachine' was set just before this commit in case of future need.
2005-02-08Curl_wait_for_resolv() no longer disconnects on failure, but leaves thatDaniel Stenberg
operation to the caller. Disconnecting has the disadvantage that the conn pointer gets completely invalidated and this is not handled on lots of places in the code.
2005-02-04David Byron pointed out that this -1 on the buffer size is pointless sinceDaniel Stenberg
the buffer is already BUFSIZE +1 one big to fit the extra trailing zero. This change is reported to fix David's weird SSL problem...
2005-01-29Using the multi interface, and doing a requsted a re-used connection thatDaniel Stenberg
gets closed just after the request has been sent failed and did not re-issue a request on a fresh reconnect like the easy interface did. Now it does! (define CURL_MULTIEASY, run test case 160)
2005-01-21FTP third transfer support overhaul. See CHANGES for details.Daniel Stenberg
2005-01-11Dan Torop cleaned up a few no longer used variables from David Phillips'Daniel Stenberg
select() overhaul fix.
2005-01-11Cyrill Osterwalder posted a detailed analysis about a bug that occurs whenDaniel Stenberg
using a custom Host: header and curl fails to send a request on a re-used persistent connection and thus creates a new connection and resends it. It then sent two Host: headers. Cyrill's analysis was posted here: http://curl.haxx.se/mail/archive-2005-01/0022.html
2004-12-05Dan Fandrich added the --disable-cookies option to configure to buildDaniel Stenberg
libcurl without cookie support. This is mainly useful if you want to build a minimalistic libcurl with no cookies support at all. Like for embedded systems or similar.
2004-12-03Bug report #1078066: when a chunked transfer was pre-maturely closed exactlyDaniel Stenberg
at a chunk boundary it was not considered an error and thus went unnoticed. Added test case 207 to verify.
2004-11-26I changed my mind. Remove ioctl() macro in setup.h instead.Gisle Vanem
2004-11-26Renamed urldata.h members 'ioctl*' to 'ioctrl*' due toGisle Vanem
clash with djgpp ioctl() macro in setup.h.
2004-11-26As reported in Mandrake's bug tracker bug 12289Daniel Stenberg
(http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a newline to "finish" the progress meter after each redirect and not only after a completed transfer.
2004-11-24HTTP "auth done right". See lib/README.httpauthDaniel Stenberg
2004-11-19David Phillips' FD_SETSIZE fixDaniel Stenberg
2004-11-18Dan Fandrich fix: eliminates some pedantic CodeWarrior compiler warnings andDaniel Stenberg
errors.
2004-11-02Paul Nolan fix to make libcurl build nicely on Windows CEDaniel Stenberg
2004-10-25Tomas Pospisek filed bug report #1053287 that proved -C - and --fail on aDaniel Stenberg
file that was already completely downloaded caused an error, while it doesn't if you don't use --fail! I added test case 194 to verify the fix. Grrr. CURLOPT_FAILONERROR is now added to the list stuff to remove in libcurl v8 due to all the kludges needed to support it.
2004-10-19Alexander Krasnostavsky made it possible to make FTP 3rd party transfers withDaniel Stenberg
both source and destination being the same host. It can be useful if you want to move a file on a server or similar.
2004-10-06Chih-Chung Chang reported that if you use CURLOPT_RESUME_FROM and enabledDaniel Stenberg
CURLOPT_FOLLOWLOCATION, libcurl reported error if a redirect happened even if the new URL would provide the resumed file. Test case 188 added to verify the fix (together with existing test 99).
2004-09-16Location: problem with bad original URL, identified in bug report #1029478Daniel Stenberg
2004-09-13no longer includes getdate.h, there's no need for itDaniel Stenberg
2004-08-30Make "Proxy-Connection: close" close the current proxy connection, asDaniel Stenberg
Roman Koifman found out.
2004-08-20Alexander Krasnostavsky made the write callback get called even when a zeroDaniel Stenberg
byte file is downloaded.
2004-08-10more typecasts to please picky compilersDaniel Stenberg
2004-08-09typecast the assigment of an unsigned variable to a signed one to preventDaniel Stenberg
picky warnings
2004-08-09->fread() should get a size_t variable passed inDaniel Stenberg