aboutsummaryrefslogtreecommitdiff
path: root/lib/transfer.c
AgeCommit message (Collapse)Author
2007-09-27Enabled a few more gcc warnings with --enable-debug. Renamed a fewDan Fandrich
variables to avoid shadowing global declarations.
2007-09-26Philip Langdale provided the new CURLOPT_POST301 option forDaniel Stenberg
curl_easy_setopt() that alters how libcurl functions when following redirects. It makes libcurl obey the RFC2616 when a 301 response is received after a non-GET request is made. Default libcurl behaviour is to change method to GET in the subsequent request (like it does for response code 302 - because that's what many/most browsers do), but with this CURLOPT_POST301 option enabled it will do what the spec says and do the next request using the same method again. I.e keep POST after 301. The curl tool got this option as --post301 Test case 1011 and 1012 were added to verify.
2007-09-11- Bug report #1792649 (http://curl.haxx.se/bug/view.cgi?id=1792649) pointedDaniel Stenberg
out a problem with doing an empty upload over FTP on a re-used connection. I added test case 541 to reproduce it and to verify the fix.
2007-08-30Renamed several libcurl error codes and options to make them more generalDan Fandrich
and allow reuse by multiple protocols. Several unused error codes were removed. In all cases, macros were added to preserve source (and binary) compatibility with the old names. These macros are subject to removal at a future date, but probably not before 2009. An application can be tested to see if it is using any obsolete code by compiling it with the CURL_NO_OLDIES macro defined. Documented some newer error codes in libcurl-error(3)
2007-08-27Fixed some minor type mismatches and missing consts mainly found by splint.Dan Fandrich
2007-08-11Allen Pulsifer provided a patch that makes libcurl set the expected downloadDaniel Stenberg
size earlier when doing HTTP downloads, so that applications and the progress meter etc know get the info earlier in the flow than before.
2007-08-03The previous commit to force the use of libssh2-0.16 by removingJames Housley
LIBSSH2_APINO
2007-08-01Patrick Monnerat and I modified libcurl so that now it *copies* all stringsDaniel Stenberg
passed to it with curl_easy_setopt()! Previously it has always just refered to the data, forcing the user to keep the data around until libcurl is done with it. That is now history and libcurl will instead clone the given strings and keep private copies.
2007-07-23Implemented only the parts of Patrick Monnerat's OS/400 patch that renamedDan Fandrich
some few internal identifiers to avoid conflicts, which could be useful on other platforms.
2007-07-14for now unless we do better fixed LIBSSH2_APINO compares to use long constants.Gunter Knauf
2007-07-10* Finish moving sftp:// into a state machine so it won't block in multi modeJames Housley
* Move scp:// into a state machine so it won't block in multi mode * When available use the full directory entry from the sftp:// server
2007-06-25gah, adding missing braces, removed silly debug output, added new debug outputDaniel Stenberg
2007-06-25Adjusted how libcurl treats HTTP 1.1 responses without content-lenth orDaniel Stenberg
chunked encoding (that also lacks "Connection: close"). It now simply assumes that the connection WILL be closed to signal the end, as that is how RFC2616 section 4.4 point #5 says we should behave.
2007-06-22remove annoying debug outputDaniel Stenberg
2007-05-24stay within 80 colsDaniel Stenberg
2007-05-18Feng Tu reported that curl -w did wrong on TFTP transfers inDaniel Stenberg
bug report #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the transfer-related info "variables" were indeed overwritten with zeroes wrongly and have now been adjusted. The upload size still isn't accurate.
2007-05-02Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0Daniel Stenberg
when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is not very nice if the client wants to be able to use _either_ a HTTP 1.1 server or one within the aliases list... so starting now, libcurl will simply consider 200-alias matches the to be HTTP 1.0 compliant.
2007-05-02Tobias Rundstrom reported a problem they experienced with xmms2 and recentDaniel Stenberg
libcurls, which turned out to be the 25-nov-2006 change which treats HTTP responses without Content-Length or chunked encoding as without bodies. We now added the conditional that the above mentioned response is only without body if the response is HTTP 1.1.
2007-04-26Peter O'Gorman found a problem with SCP downloads when the downloaded fileDaniel Stenberg
was 16385 bytes (16K+1) and it turned out we didn't properly always "suck out" all data from libssh2. The effect being that libcurl would hang on the socket waiting for data when libssh2 had in fact already read it all...
2007-04-24Robert Iakobashvili made the 'master_buffer' get allocated first once it isDaniel Stenberg
can/will be used as it then makes the common cases save 16KB of data for each easy handle that isn't used for pipelining.
2007-04-16- Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is aDaniel Stenberg
function that deprecates the curl_multi_socket() function. Using the new function the application tell libcurl what action that was found in the socket that it passes in. This gives a significant performance boost as it allows libcurl to avoid a call to poll()/select() for every call to curl_multi_socket*().
2007-04-10Ravi Pratap provided fixes for HTTP pipeliningDaniel Stenberg
2007-04-07fix compiler warningYang Tse
2007-04-03Rob Jones fixed better #ifdef'ing for a bunch of #include lines.Daniel Stenberg
2007-03-31*** empty log message ***Daniel Stenberg
2007-03-30Pointer "conn" dereferenced before NULL check. found by coverity.com scanDaniel Stenberg
2007-03-26Internal function Curl_select() renamed to Curl_socket_ready()Yang Tse
2007-03-11reverted the pselect patch => http://curl.haxx.se/mail/lib-2007-03/0100.htmlDaniel Stenberg
2007-03-10- Bryan Henderson introduces two things:Daniel Stenberg
1) the progress callback gets called more frequently (at times) 2) libcurl *might* call the callback when it receives a signal
2007-02-26Removed inclusion of <sys/types.h> and <sys/stat.h> in .c-filesGisle Vanem
since they're already included through "setup.h".
2007-02-21- Ravi Pratap provided work on libcurl making pipelining more robust andDaniel Stenberg
fixing some bugs: o Don't mix GET and POST requests in a pipeline o Fix the order in which requests are dispatched from the pipeline o Fixed several curl bugs with pipelining when the server is returning chunked encoding: * Added states to chunked parsing for final CRLF * Rewind buffer after parsing chunk with data remaining * Moved chunked header initializing to a spot just before receiving headers
2007-02-21curlassert macro replaced with DEBUGASSERT macro defined in setup_once.hYang Tse
2007-02-16use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handlingYang Tse
2007-02-12- Shmulik Regev fixed so that the final CRLF of HTTP response headers are sentDaniel Stenberg
to the debug callback. - Shmulik Regev added CURLOPT_HTTP_CONTENT_DECODING and CURLOPT_HTTP_TRANSFER_DECODING that if set to zero will disable libcurl's internal decoding of content or transfer encoded content. This may be preferable in cases where you use libcurl for proxy purposes or similar. The command line tool got a --raw option to disable both at once.
2007-02-06compiler warning fixYang Tse
2007-02-05- Michael Wallner provided a patch that adds support for CURLOPT_TIMEOUT_MSDaniel Stenberg
and CURLOPT_CONNECTTIMEOUT_MS that, as their names should hint, do the timeouts with millisecond resolution instead. The only restriction to that is the alarm() (sometimes) used to abort name resolves as that uses full seconds. I fixed the FTP response timeout part of the patch. Internally we now count and keep the timeouts in milliseconds but it also means we multiply set timeouts with 1000. The effect of this is that no timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which equals 24.86 days. We probably couldn't before either since the code did *1000 on the timeout values on several places already.
2007-01-26Fixed compiler warning.Dan Fandrich
2007-01-24moved the SSL pending function to the proper place and nameDaniel Stenberg
2007-01-16- Armel Asselin improved libcurl to behave a lot better when an easy handleDaniel Stenberg
doing an FTP transfer is removed from a multi handle before completion. The fix also fixed the "alive counter" to be correct on "premature removal" for all protocols.
2007-01-14- David McCreedy provided libcurl changes for doing HTTP communication onDaniel Stenberg
non-ASCII platforms. It does add some complexity, most notably with more #ifdefs, but I want to see this supported added and I can't see how we can add it without the extra stuff added.
2007-01-13fixed bad variable use when getting the size which we should read whenDaniel Stenberg
attempting not to read data that might belong to the next response (if pipelining)
2006-12-21removed unused variablesDaniel Stenberg
2006-12-21Robson Braga Araujo reported bug #1618359Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1618359) and subsequently provided a patch for it: when downloading 2 zero byte files in a row, curl 7.16.0 enters an infinite loop, while curl 7.16.1-20061218 does one additional unnecessary request. Fix: During the "Major overhaul introducing http pipelining support and shared connection cache within the multi handle." change, headerbytecount was moved to live in the Curl_transfer_keeper structure. But that structure is reset in the Transfer method, losing the information that we had about the header size. This patch moves it back to the connectdata struct.
2006-12-07fixed the printf formatting after I changed the type of 'excess'Daniel Stenberg
2006-12-06Sebastien Willemijns reported bug #1603712Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1603712) which is about connections getting cut off prematurely when --limit-rate is used. While I found no such problems in my tests nor in my reading of the code, I found that the --limit-rate code was severly flawed (since it was moved into the lib, since 7.15.5) when used with the easy interface and it didn't work as documented so I reworked it somewhat and now it works for my tests.
2006-12-05Stefan Krause pointed out a compiler warning with a picky MSCV compiler whenDaniel Stenberg
passing a curl_off_t argument to the Curl_read_rewind() function which takes an size_t argument. Curl_read_rewind() also had debug code left in it and it was put in a different source file with no good reason when only used from one single spot.
2006-12-01Toon Verwaest reported that there are servers that send the Content-Range:Daniel Stenberg
header in a third, not suppported by libcurl, format and we agreed that we could make the parser more forgiving to accept all the three found variations.
2006-11-27no need to access it with conn->data since data is already a local variableDaniel Stenberg
holding the conn->data value
2006-11-25Venkat Akella found out that libcurl did not like HTTP responses that simplyDaniel Stenberg
responded with a single status line and no headers nor body. Starting now, a HTTP response on a persistent connection (i.e not set to be closed after the response has been taken care of) must have Content-Length or chunked encoding set, or libcurl will simply assume that there is no body. To my horror I learned that we had no less than 57(!) test cases that did bad HTTP responses like this, and even the test http server (sws) responded badly when queried by the test system if it is the test system. So although the actual fix for the problem was tiny, going through all the newly failing test cases got really painful and boring.
2006-11-25James Housley fixed SCP downloading by setting the maxdownload.Daniel Stenberg