aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2009-01-13spell-checked a bunch of commentsDaniel Stenberg
2009-01-10- Emil Romanus fixed:Daniel Stenberg
When using the multi interface over HTTP and the server returns a Location header, the running easy handle will get stuck in the CURLM_STATE_PERFORM state, leaving the external event loop stuck waiting for data from the ingoing socket (when using the curl_multi_socket_action stuff). While this bug was pretty hard to find, it seems to require only a one-line fix. The break statement on line 1374 in multi.c caused the function to skip the call to multistate(). How to reproduce this bug? Well, that's another question. evhiperfifo.c in the examples directory chokes on this bug only _sometimes_, probably depending on how fast the URLs are added. One way of testing the bug out is writing to hiper.fifo from more than one source at the same time.
2009-01-08Unified much of the SessionHandle initialization done in Curl_open() andDan Fandrich
curl_easy_reset() by creating Curl_init_userdefined(). This had the side effect of fixing curl_easy_reset() so it now also resets CURLOPT_FTP_FILEMETHOD and CURLOPT_SSL_SESSIONID_CACHE
2009-01-07Created a CURLMIN macro to match CURLMAXDan Fandrich
2009-01-07fix compiler warningsDaniel Stenberg
2009-01-07- Rob Crittenden did once again provide an NSS update:Daniel Stenberg
I have to jump through a few hoops now with the NSS library initialization since another part of an application may have already initialized NSS by the time Curl gets invoked. This patch is more careful to only shutdown the NSS library if Curl did the initialization. It also adds in a bit of code to set the default ciphers if the app that call NSS_Init* did not call NSS_SetDomesticPolicy() or set specific ciphers. One might argue that this lets other application developers get lazy and/or they aren't using the NSS API correctly, and you'd be right. But still, this will avoid terribly difficult-to-trace crashes and is generally helpful.
2008-12-30added HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID to ares Makefile.netware and sync'd ↵Gunter Knauf
with other Makefile.netware.
2008-12-30changed HAVE_SIN6_SCOPE_ID define to HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID since ↵Gunter Knauf
just found that ares already uses this define.
2008-12-30added HAVE_SIN6_SCOPE_ID define to all non-configure platforms which seem to ↵Gunter Knauf
be IPv6-aware.
2008-12-29 - Phil Lisiecki filed bug report #2413067Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=2413067) that identified a problem that would cause libcurl to mark a DNS cache entry "in use" eternally if the subsequence TCP connect failed. It would thus never get pruned and refreshed as it should've been.
2008-12-28- Peter Korsgaard fixed building libcurl with "configure --with-sslDaniel Stenberg
--disable-verbose".
2008-12-28silent 'unused' warnings.Gunter Knauf
2008-12-22Remove trailing #undef value. Typo?Gisle Vanem
2008-12-22libssh2_sftp_seek2 was just renamed to libssh2_sftp_seek64 ...Daniel Stenberg
2008-12-22- Given a recent enough libssh2, libcurl can now seek/resume with SFTP evenDaniel Stenberg
on file indexes beyond 2 or 4GB.
2008-12-22- Anthony Bryan provided a set of patches that cleaned up manual language,Daniel Stenberg
corrected spellings and more.
2008-12-20malloc+memset => callocDaniel Stenberg
2008-12-20same procedure, simpler codeDaniel Stenberg
2008-12-20- Igor Novoseltsev fixed a bad situation for the multi_socket() API when doingDaniel Stenberg
pipelining, as libcurl could then easily get confused and A) work on the handle that was not "first in queue" on a pipeline, or even B) tell the app to REMOVE a socket while it was in use by a second handle in a pipeline. Both errors caused hanging or stalling applications.
2008-12-20make the debug/helper function output to stderr as that makes it play nicerDaniel Stenberg
in combination with infof() calls
2008-12-19- curl_multi_timeout() could return a timeout value of 0 even though nothingDaniel Stenberg
was actually ready to get done, as the internal time resolution is higher than the returned millisecond timer. Therefore it could cause applications running on fast processors to do short bursts of busy-loops. curl_multi_timeout() will now only return 0 if the timeout is actually alreay triggered.
2008-12-19oops, removing debug output that wasn't supposed to be thereDaniel Stenberg
2008-12-19- Using the libssh2 0.19 function libssh2_session_block_directions(), libcurlDaniel Stenberg
now has an improved ability to do right when the multi interface (both "regular" and multi_socket) is used for SCP and SFTP transfers. This should result in (much) less busy-loop situations and thus less CPU usage with no speed loss.
2008-12-17- SCP and SFTP with the multi interface had the same flaw: the 'DONE'Daniel Stenberg
operation didn't complete properly if the EAGAIN equivalent was returned but libcurl would simply continue with a half-completed close operation performed. This ruined persistent connection re-use and cause some SSH-protocol errors in general. The correction is unfortunately adding a blocking function - doing it entirely non-blocking should be considered for a better fix.
2008-12-16Updated dependencies based on "gcc -MM".Gisle Vanem
2008-12-16Added the use of Watt-32 tcp/ip stack for Win32 target.Gisle Vanem
If USE_WATT32=1 one needs to use stack-based calls (-3s). So to keep the makefile nice and clean, specify -3s for Winsock target too (there's hardly any speed-gain using -3r).
2008-12-16Added the use of Watt-32 tcp/ip stack for Win32 targets.Gisle Vanem
2008-12-15- libssh2_sftp_last_error() was wrongly used at some places in libcurl whichDaniel Stenberg
made libcurl sometimes not properly abort problematic SFTP transfers.
2008-12-12- More work with Igor Novoseltsev to first fix the remaining stuff forDaniel Stenberg
removing easy handles from multi handles when the easy handle is/was within a HTTP pipeline. His bug report #2351653 (http://curl.haxx.se/bug/view.cgi?id=2351653) was also related and was eventually fixed by a patch by Igor himself.
2008-12-12Make the getoff all pipelines function only set _inuse to FALSE if theDaniel Stenberg
specified data pointer was head.
2008-12-11- Bug report #2416182 titled "crash in ConnectionExists when usingDaniel Stenberg
duphandle+curl_mutli" (http://curl.haxx.se/bug/view.cgi?id=2416182) showed that curl_easy_duphandle() wrongly also copied the pointer to the connection cache, which was plain wrong and caused a segfault if the handle would be used in a different multi handle than the handle it was duplicated from.
2008-12-11Dan F pointed out that we don't need to scan IPv6 addresses for '%'-lettersDaniel Stenberg
in the parse_remote_port() function as the scope id has already been stripped from the string.
2008-12-11- Keshav Krity found out that libcurl failed to deal with dotted IPv6Daniel Stenberg
addresses if they were very long (>39 letters) due to a too strict address validity parser. It now accepts addresses up to 45 bytes long.
2008-12-11_ Use getaddrinfo/getnameinfo ascii wrappers on OS400.Patrick Monnerat
_ Adjust OS400 make script for non-CVS distributions. _ Upgrade ILE/RPG binding. _ Define CURL_HIDDEN_SYMBOLS on OS400, since only CURL_EXTERN-marked symbols are exported.
2008-12-10- Internet Explorer had a broken HTTP digest authentication before v7 andDaniel Stenberg
there are servers "out there" that relies on the client doing this broken Digest authentication. Apache even comes with an option to work with such broken clients. The difference is only for URLs that contain a query-part (a '?'-letter and text to the right of it). libcurl now supports this quirk, and you enable it by setting the CURLAUTH_DIGEST_IE bit in the bitmask you pass to the CURLOPT_HTTPAUTH or CURLOPT_PROXYAUTH options. They are thus individually controlled to server and proxy.
2008-12-09- Ken Hirsch simplified how libcurl does FTPS: now it doesn't assume anyDaniel Stenberg
particular state for the control connection like it did before for implicit FTPS (libcurl assumed such control connections to be encrypted while some FTPS servers such as FileZilla assumes such connections to be clear mode). Use the CURLOPT_USE_SSL option to set your desired level.
2008-12-08- Fred Machado posted about a weird FTP problem on the curl-users list and whenDaniel Stenberg
researching it, it turned out he got a 550 response back from a SIZE command and then I fell over the text in RFC3659 that says: The presence of the 550 error response to a SIZE command MUST NOT be taken by the client as an indication that the file cannot be transferred in the current MODE and TYPE. In other words: the change I did on September 30th 2008 and that has been included in the last two releases were a regression and a bad idea. We MUST NOT take a 550 response from SIZE as a hint that the file doesn't exist.
2008-12-08- Christian Krause filed bug #2221237Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=2221237) that identified an infinite loop during GSS authentication given some specific conditions. With his patience and great feedback I managed to narrow down the problem and eventually fix it although I can't test any of this myself!
2008-12-04Fixed the getifaddrs version of Curl_if2ip to work on systems without IPv6Dan Fandrich
support (e.g. Minix)
2008-12-03- Igor Novoseltsev filed bug #2351645Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=2351645) that identified a problem with the multi interface that occured if you removed an easy handle while in progress and the handle was used in a HTTP pipeline.
2008-12-03- Pawel Kierski pointed out a mistake in the cookie code that could lead to aDaniel Stenberg
bad fclose() after a fatal error had occured. (http://curl.haxx.se/bug/view.cgi?id=2382219)
2008-12-02explain the two *channel_inuse fields somewhat betterDaniel Stenberg
2008-11-29Further adjust a libssh2 preprocessor function-symbol definition checkYang Tse
2008-11-29Adjust some libssh2 preprocessor symbol definition checksYang Tse
2008-11-26narrow the comment to < 80 columnsDaniel Stenberg
2008-11-24- Based on a patch by Vlad Grachov, libcurl now uses a new libssh2 0.19Daniel Stenberg
function when built to support SCP and SFTP that helps the library to know in which direction a particular libssh2 operation would return EAGAIN so that libcurl knows what socket conditions to wait for before trying the function call again. Previously (and still when using libssh2 0.18 or earlier), libcurl will busy-loop in this situation when the easy interface is used!
2008-11-19- I removed the default use of "Pragma: no-cache" from libcurl when a proxy isDaniel Stenberg
used. It has been used since forever but it was never a good idea to use unless explicitly asked for.
2008-11-19- Christian Krause reported and fixed a memory leak that would occur with HTTPDaniel Stenberg
GSS/kerberos authentication (http://curl.haxx.se/bug/view.cgi?id=2284386)
2008-11-19- Andreas Wurf and Markus Koetter helped me analyze a problem that Andreas gotDaniel Stenberg
when uploading files to a single FTP server using multiple easy handle handles with the multi interface. Occasionally a handle would stall in mysterious ways. The problem turned out to be a side-effect of the ConnectionExists() function's eagerness to re-use a handle for HTTP pipelining so it would select it even if already being in use, due to an inadequate check for its chances of being used for pipelnining.
2008-11-18Avoid creating garbage on an OOM errorDan Fandrich