Newer
Older
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
- 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.
- Howard Chu split the I/O handling functions into private handlers.
Howard Chu brought the bulk work of this patch that properly moves out the
sending and recving of data to the parts of the code that are properly
responsible for the various ways of doing so.
Daniel Stenberg assisted with polishing a few bits and fixed some minor
flaws in the original patch.
Another upside of this patch is that we now abuse CURLcodes less with the
"magic" -1 return codes and instead use CURLE_AGAIN more consistently.
Daniel Stenberg (5 May 2010)
- Hoi-Ho Chan introduced support for using the PolarSSL library. You control
this with the new configure option --with-polarssl.
Daniel Stenberg (29 Apr 2010)
- Ben Greear made telnet a lot better/easier to use by an application:
The main change is to allow input from user-specified methods, when they are
specified with CURLOPT_READFUNCTION. All calls to fflush(stdout) in
telnet.c were removed, which makes using 'curl telnet://foo.com' painful
since prompts and other data are not always returned to the user promptly.
Use 'curl --no-buffer telnet://foo.com' instead. In general, the user
should have their CURLOPT_WRITEFUNCTION do a fflush for interactive use.
Also fix assumption that reading from stdin never returns < 0.
Old code could crash in that case.
Call progress functions in telnet main loop.
Daniel Stenberg (26 Apr 2010)
- Make use of the libssh2_init/exit functions that libssh2 added in version
1.2.5. Using them will improve how libcurl works in threaded situations when
SCP and SFTP are transfered.
Daniel Stenberg (25 Apr 2010)
- Based on work by Kamil Dudka, I've introduced the new configure option
--enable-threaded-resolver. When used, the configure script will check for
pthreads and if around, it will build libcurl to use pthreads to do name
resolving in a threaded manner. Note that this is just a fix to offer an
option that can enable the code that already included. The threader resolver
code was mostly added on Jan 26 2010.
Daniel Stenberg (24 Apr 2010)
- Alex Bligh introduced the --proto and -proto-redir options that limit what
protocols curl accepts for the requests and when following redirects.
Kamil Dudka (24 Apr 2010)
- Fixed test536 in order to not fail with threaded DNS resolver and tweaked
comments in certain examples using curl_multi_fdset().
- Fixed SSL handshake timeout underflow in libcurl-NSS, which caused test405
to hang on a slow machine.
Daniel Stenberg (21 Apr 2010)
- The -O option caused curl to crash on windows and DOS due to the tool
writing out of boundary memory.
Yang Tse (20 Apr 2010)
- Ruslan Gazizov detected that MSVC makefiles were using wsock32.lib instead
of ws2_32.lib, this generated linking issues on MSVC IPv6 enabled builds
that were done using those makefiles.
Daniel Stenberg (19 Apr 2010)
- -J/--remote-header-name didn't strip trailing carriage returns or linefeeds
properly, so they could be used in the file name.
Daniel Stenberg (16 Apr 2010)
- Jerome Vouillon made the GnuTLS SSL handshake phase non-blocking.
- The recent overhaul of the SSL recv function made the GnuTLS specific code
treat a zero returned from gnutls_record_recv() as an error, and this caused
our HTTPS test cases to fail. We leave it to upper layer code to detect if
an EOF is a problem or not.
- I reverted the resolver fix from yesterday and instead removed all uses of
AI_CANONNAME all over libcurl and made the only user of that info (krb5.c)
use the host name from the URL instead. No reverse resolving is a good
thing.
- Paul Howarth made configure properly detect GSS "on ancient Linux distros"
by editing in which order we use headers to detect GSS.
Daniel Stenberg (15 Apr 2010)
- Rainer Canavan filed bug report #2987196 that identified libcurl doing
unnecesary reverse name lookups in many cases when built to use IPv4 and
getaddrinfo(). The logic for ipv6 is now used for ipv4 too.
(http://curl.haxx.se/bug/view.cgi?id=2963679)
Daniel Stenberg (9 Apr 2010)
- 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.
Kamil Dudka (4 Apr 2010)
- Eliminated a race condition in Curl_resolv_timeout().
- Refactorized interface of Curl_ssl_recv()/Curl_ssl_send().
- libcurl-NSS now provides more accurate messages and error codes in case of
client certificate problem. Either during connection, or transfer phase.
Daniel Stenberg (1 Apr 2010)
- 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.
Daniel Stenberg (28 Mar 2010)
- Ben Greear: If you pass a URL to pop3 that does not contain a message ID as
part of the URL, it would previously ask for 'INBOX' which just causes the
pop3 server to return an error.
Now libcurl treats en empty message ID as a request for LIST (list of pop3
message IDs). User's code could then parse this and download individual
messages as desired.
Daniel Stenberg (27 Mar 2010)
- 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
protocls actually have that feature in their URL definition spec.
Daniel Stenberg (26 Mar 2010)
- Ben Greear brought code that makes the rate limiting code for the easy
interface a bit smoother as it introduces sub-second sleeps during it and it
also takes the buffer sizes into account.
Daniel Stenberg (24 Mar 2010)
- 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.
- 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.
- The 'ares' subtree has been removed from the source repository. It was
always a separate project that sort of piggybacked on the curl project since
the dawn of times and now the time has come for it to go stand on its own
legs and continue living its own life. All details on c-ares and its new
source code repository is found at http://c-ares.haxx.se/
Daniel Stenberg (23 Mar 2010)
- 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)
- 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.
- 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
Loading full blame...