Skip to content
CHANGES 101 KiB
Newer Older
                                  _   _ ____  _
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
Daniel Stenberg's avatar
Daniel Stenberg committed
                             \___|\___/|_| \_\_____|

Daniel Stenberg's avatar
Daniel Stenberg committed
                                  Changelog
Daniel Stenberg (7 May 2010)
- 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's avatar
Daniel Stenberg committed
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.

- 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's avatar
Daniel Stenberg committed
Version 7.20.1 (14 April 2010)

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's avatar
Daniel Stenberg committed
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's avatar
Daniel Stenberg committed
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.

Daniel Stenberg's avatar
Daniel Stenberg committed
- 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...