mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 16:18:48 -05:00
2c72732ebf
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.
51 lines
1.8 KiB
Plaintext
51 lines
1.8 KiB
Plaintext
Curl and libcurl 7.21.0
|
|
|
|
Public curl releases: 116
|
|
Command line options: 138
|
|
curl_easy_setopt() options: 180
|
|
Public functions in libcurl: 58
|
|
Known libcurl bindings: 39
|
|
Contributors: 794
|
|
|
|
This release includes the following changes:
|
|
|
|
o added the --proto and -proto-redir options
|
|
o new configure option --enable-threaded-resolver
|
|
o improve TELNET ability with libcurl
|
|
o added support for PolarSSL
|
|
o added support for FTP wildcard matching and downloads
|
|
o added support for RTMP
|
|
o introducing new LDAP code for new enough OpenLDAP
|
|
|
|
This release includes the following bugfixes:
|
|
|
|
o prevent needless reverse name lookups
|
|
o detect GSS on ancient Linux distros
|
|
o GnuTLS: EOF caused error when it wasn't
|
|
o GnuTLS: SSL handshake phase is non-blocking
|
|
o -J/--remote-header-name strips CRLF
|
|
o MSVC makefiles now use ws2_32.lib instead of wsock32.lib
|
|
o -O crash on windows
|
|
o SSL handshake timeout underflow in libcurl-NSS
|
|
o multi interface missed storing connection time
|
|
o broken CRL support in libcurl-NSS
|
|
o ignore response-body on redirect even if compressed
|
|
o OpenSSL handshake state-machine for multi interface
|
|
o TFTP timeout option sent correctly
|
|
o TFTP block id wrap
|
|
o curl_multi_socket_action() timeout handles inaccuracy in timers better
|
|
|
|
This release includes the following known bugs:
|
|
|
|
o see docs/KNOWN_BUGS (http://curl.haxx.se/docs/knownbugs.html)
|
|
|
|
This release would not have looked like this without help, code, reports and
|
|
advice from friends like these:
|
|
|
|
Rainer Canavan, Paul Howarth, Jerome Vouillon, Ruslan Gazizov, Yang Tse,
|
|
Kamil Dudka, Alex Bligh, Ben Greear, Hoi-Ho Chan, Howard Chu, Dirk Manske,
|
|
Pavel Raiskup, John-Mark Bell, Eric Mertens, Tor Arntsen, Douglas Kilpatrick,
|
|
Igor Novoseltsev
|
|
|
|
Thanks! (and sorry if I forgot to mention someone)
|