aboutsummaryrefslogtreecommitdiff
path: root/RELEASE-NOTES
AgeCommit message (Collapse)Author
2010-06-01multi_socket: handles timer inaccuracy better for timeoutsDaniel Stenberg
Igor Novoseltsev reported a problem with the multi socket API and using timeouts and timers. It boiled down to a problem with libcurl's use of GetTickCount() interally to figure out the current time, while Igor's own application code used another function call. It made his app call the socket API timeout function a bit _before_ libcurl would consider the timeout to trigger, and that could easily lead to timeouts or stalls in the app. It seems GetTickCount() in general often has no better resolution than 16ms and switching to the alternative function QueryPerformanceCounter has its share of problems: http://www.virtualdub.org/blog/pivot/entry.php?id=106 We address this problem by simply having libcurl treat timers that already has occured or will occur within 40ms subject for treatment. I'm confident that there are other implementations and operating systems with similarly in accurate timer functions so it makes sense to have applied generically and I don't believe we sacrifice much by adding a 40ms inaccuracy on these timeouts.
2010-05-25LDAP: properly implemented as a curl_handlerHoward Chu
makes the LDAP code much cleaner, nicer and in general being a better libcurl citizen. If a new enough OpenLDAP version is detect, the new and shiny lib/openldap.c code is then used instead of the old cruft Code by Howard, minor cleanups by Daniel.
2010-05-21TFTP: block id wrap bug fixDaniel Stenberg
In a normal expression, doing [unsigned short] + 1 will not wrap at 16 bits so the comparisons and outputs were done wrong. I added a macro do make sure it gets done right. Douglas Kilpatrick filed bug report #3004787 about it: http://curl.haxx.se/bug/view.cgi?id=3004787
2010-05-19lib: Fix AIX build failureTor Arntsen
2010-05-18TFTP: send timeout option correctlyDaniel Stenberg
Eric Mertens posted bug report #3003005 pointing out that the libcurl TFTP code was not sending the timeout option properly to the server, and suggested a fix. (http://curl.haxx.se/bug/view.cgi?id=3003005)
2010-05-16ftp wildcard: a new option CURLOPT_FNMATCH_DATAKamil Dudka
2010-05-14OpenSSL: multi interface handshake could hangDaniel Stenberg
John-Mark Bell filed bug #3000052 that identified a problem (with an associated patch) with the OpenSSL handshake state machine when the multi interface is used: Performing an https request using a curl multi handle and using select or epoll to wait for events results in a hang. It appears that the cause is the fix for bug #2958179, which makes ossl_connect_common unconditionally return from the step 2 loop when fetching from a multi handle. When ossl_connect_step2 has completed, it updates connssl->connecting_state to ssl_connect_3. ossl_connect_common will then return to the caller, as a multi handle is in use. Eventually, the client code will call curl_multi_fdset to obtain an updated fdset to select or epoll on. For https requests, curl_multi_fdset will cause https_getsock to be called. https_getsock will only return a socket handle if the connecting_state is ssl_connect_2_reading or ssl_connect_2_writing. Therefore, the client will never obtain a valid fdset, and thus not drive the multi handle, resulting in a hang. (http://curl.haxx.se/bug/view.cgi?id=3000052)
2010-05-14follow redirect: ignore response-body on redirect even if compressedDaniel Stenberg
Sebastian V reported bug #3000056 identifying a problem with redirect following. It showed that when curl followed redirects it didn't properly ignore the response body of the 30X response if that response was using compressed Content-Encoding! (http://curl.haxx.se/bug/view.cgi?id=3000056)
2010-05-13changelogs: mention RTMP and the FTP wildcard supportDaniel Stenberg
2010-05-11changelog: fixed CRL support in libcurl-NSSKamil Dudka
2010-05-07multi interface: missed storing connection timeDaniel Stenberg
Dirk Manske reported a regression. When connecting with the multi interface, there were situations where libcurl wouldn't store connect time correctly as it used to (and is documented to) do. Using his fine sample program we could repeat it, and I wrote up test case 573 using that code. The problem does not easily show itself using the local test suite though. The fix, also as suggested by Dirk, is a bit on the ugly side as it adds yet another call to Curl_verboseconnect() and setting the TIMER_CONNECT time. That situation is subject for some closer inspection in the future.
2010-05-07changelogs: split the I/O handlingDaniel Stenberg
2010-05-05changelog: PolarSSLDaniel Stenberg
2010-04-29changelog: mention Ben Greear's telnet workDaniel Stenberg
2010-04-25new configure option --enable-threaded-resolverDaniel Stenberg
2010-04-24nss: fix SSL handshake timeout underflowKamil Dudka
2010-04-24RELEASE-NOTES: update top numbersDaniel Stenberg
2010-04-24changelog: added the --proto and -proto-redir optionsDaniel Stenberg
2010-04-21curl: -O crash on windowsDaniel Stenberg
The -O option caused curl to crash on windows and DOS due to the tool writing out of boundary memory.
2010-04-20replaced wsock32.lib usage with ws2_32.lib in MSVC makefilesRuslan Gazizov
2010-04-19changelog: -J/--remote-header-name strips CRLFDaniel Stenberg
2010-04-16changelog: GnuTLS: SSL handshake phase is non-blockingDaniel Stenberg
2010-04-16changelog: GnuTLS fix, no reverse loopkups and fixed GSS detectionDaniel Stenberg
2010-04-15changelog: prevent needless reverse name lookupsDaniel Stenberg
2010-04-14bumped to start the journey towards 7.20.2Daniel Stenberg
2010-04-09FTP quote commands prefixed with '*' now can fail without abortingDaniel Stenberg
Prefixing the FTP quote commands with an asterisk really only worked for the postquote actions. This is now fixed and test case 227 has been extended to verify.
2010-04-02updated contributor countDaniel Stenberg
2010-04-01fix SFTP download hangDaniel Stenberg
Matt Wixson found and fixed a bug in the SCP/SFTP area where the code treated a 0 return code from libssh2 to be the same as EAGAIN while in reality it isn't. The problem caused a hang in SFTP transfers from a MessageWay server.
2010-03-28Ben's POP3 changeDaniel Stenberg
2010-03-27minor language fixDaniel Stenberg
2010-03-27allow user+password in the URL for all protocolsBen Greear
Ben Greear brought a patch that from now on allows all protocols to specify name and user within the URL, in the same manner HTTP and FTP have been allowed to in the past - although far from all of the libcurl supported protocols actually have that feature in their URL definition spec.
2010-03-26changelogged: smoother rate limitingDaniel Stenberg
2010-03-24fix: timeout after last data chunk was handledBob Richmond
Bob Richmond: There's an annoying situation where libcurl will read new HTTP response data from a socket, then check if it's a timeout if one is set. If the last packet received constitutes the end of the response body, libcurl still treats it as a timeout condition and reports a message like: "Operation timed out after 3000 milliseconds with 876 out of 876 bytes received" It should only a timeout if the timer lapsed and we DIDN'T receive the end of the response body yet.
2010-03-24RTSP GET_PARAMETER fixDaniel Stenberg
Christopher Conroy fixed a problem with RTSP and GET_PARAMETER reported to us by Massimo Callegari. There's a new test case 572 that verifies this now.
2010-03-24The 'ares' subtree has been removed from the source repositoryDaniel Stenberg
2010-03-23mark connection as connectedDaniel Stenberg
Kenny To filed the bug report #2963679 with patch to fix a problem he experienced with doing multi interface HTTP POST over a proxy using PROXYTUNNEL. He found a case where it would connect fine but bits.tcpconnect was not set correct so libcurl didn't work properly. (http://curl.haxx.se/bug/view.cgi?id=2963679)
2010-03-23chunked-encoding with Content-Length: header problemDaniel Stenberg
Akos Pasztory filed debian bug report #572276 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572276 mentioning a problem with a resource that returns chunked-encoded _and_ with a Content-Length and libcurl failed to properly ignore the latter information.
2010-03-23delayed easy handle kill caused double Curl_close() callDaniel Stenberg
Hauke Duden provided an example program that made the multi interface crash. His example simply used the multi interface and did first one FTP transfer and after completion it used a second easy handle and did another FTP transfer on the same FTP server. This triggered a bug in the "delayed easy handle kill" system that curl uses: when an FTP connection is left alive it must keep an easy handle around internally - only for the purpose of having an easy handle when it later disconnects it. The code assumed that when the easy handle was removed and an internal reference was made, that version could be killed later on when a new easy handle came using the same connection. This was wrong as Hauke's example showed that the removed handle wasn't killed for real until later. This caused a double close attempt => segfault.
2010-03-22Thomas Lopatic fixed the alarm()-based DNS timeoutDaniel Stenberg
2010-03-22Fix insufficient initialization in Curl_clone_ssl_config()douglas steinwand
which could have caused a double free when reusing curl handle.
2010-03-21Ben Greear's two fixes explainedDaniel Stenberg
2010-03-15- Constantine Sapuntzakis brought a patch:Daniel Stenberg
The problem mentioned on Dec 10 2009 (http://curl.haxx.se/bug/view.cgi?id=2905220) was only partially fixed. Partially because an easy handle can be associated with many connections in the cache (e.g. if there is a redirect during the lifetime of the easy handle). The previous patch only cleaned up the first one. The new fix now removes the easy handle from all connections, not just the first one.
2010-03-06- Ben Greear brought a patch that fixed the rate limiting logic for TFTP whenDaniel Stenberg
the easy interface was used.
2010-03-05Daniel Johnson provided fixes for building with the clang compilerDaniel Stenberg
2010-03-05Constantine Sapuntzakis detected and fixed a double free in builds doneYang Tse
with threaded resolver enabled (Windows default configuration) that would get triggered when a curl handle is closed while doing DNS resolution.
2010-03-02- [Daniel Johnson] I've been trying to build libcurl with clang on Darwin andDaniel Stenberg
ran into some issues with the GSSAPI tests in configure.ac. The tests first try to determine the include dirs and libs and set CPPFLAGS and LIBS accordingly. It then checks for the headers and finally sets LIBS a second time, causing the libs to be included twice. The first setting of LIBS seems redundant and should be left out, since the first part is otherwise just about finding headers. My second issue is that 'krb5-config --libs gssapi' on Darwin is less than useless and returns junk that, while it happens to work with gcc, causes clang to choke. For example, --libs returns $CFLAGS along with the libs, which is really retarded. Simply setting 'LIBS="$LIBS -lgssapi_krb5 -lresolv"' on Darwin is sufficient.
2010-03-02- Based on patch provided by Jacob Moshenko, the transfer logic now properlyDaniel Stenberg
makes sure that when using sub-second timeouts, there's no final bad 1000ms wait. Previously, a sub-second timeout would often make the elapsed time end up the time rounded up to the nearest second (e.g. 1s for 200ms timeout)
2010-03-02- Andrei Benea filed bug report #2956698 and pointed out that theDaniel Stenberg
CURLOPT_CERTINFO feature leaked memory due to a missing OpenSSL function call. He provided the patch to fix it too. http://curl.haxx.se/bug/view.cgi?id=2956698
2010-03-02- Markus Duft pointed out in bug #2961796 that even though Interix has aDaniel Stenberg
poll() function it doesn't quite work the way we want it so we must disable it, and he also provided a patch for it. http://curl.haxx.se/bug/view.cgi?id=2961796
2010-03-02- Made the pingpong timeout code properly deal with the response timeout ANDDaniel Stenberg
the global timeout if set. Also, as was reported in the bug report #2956437 by Ryan Chan, the time stamp to use as basis for the per command timeout was not set properly in the DONE phase for FTP (and not for SMTP) so I fixed that just now. This was a regression compared to 7.19.7 due to the conversion of FTP code over to the generic pingpong concepts. http://curl.haxx.se/bug/view.cgi?id=2956437