Skip to content
Snippets Groups Projects
CHANGES 54.2 KiB
Newer Older
  • Learn to ignore specific revisions
  •   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.
    
    
    - Using the libssh2 0.19 function libssh2_session_block_directions(), libcurl
      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.
    
    
    Daniel Stenberg (17 Dec 2008)
    - SCP and SFTP with the multi interface had the same flaw: the 'DONE'
      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.
    
    
    Gisle Vanem (16 Dec 2008)
    - Added the possibility to use the Watt-32 tcp/ip stack under Windows.
      The change simply involved adding a USE_WATT32 section in the
      config-win32.h files (under ./lib and ./src). This section disables
      the use of any Winsock headers.
    
    
    Daniel Stenberg (16 Dec 2008)
    - libssh2_sftp_last_error() was wrongly used at some places in libcurl which
      made libcurl sometimes not properly abort problematic SFTP transfers.
    
    
    Daniel Stenberg (12 Dec 2008)
    - More work with Igor Novoseltsev to first fix the remaining stuff for
      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.
    
    
    Yang Tse (12 Dec 2008)
    - Patrick Monnerat fixed a build regression, introduced in 7.19.2, affecting
      OS/400 compilations with IPv6 enabled.
    
    
    - Mark Karpeles filed bug report #2416182 titled "crash in ConnectionExists
      when using duphandle+curl_mutli"
      (http://curl.haxx.se/bug/view.cgi?id=2416182) which 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.
    
    
    Daniel Stenberg (11 Dec 2008)
    - Keshav Krity found out that libcurl failed to deal with dotted IPv6
      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.
    
    
    Daniel Stenberg (11 Dec 2008)
    - Internet Explorer had a broken HTTP digest authentication before v7 and
      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.
    
      (note that there's no way to activate this with the curl tool yet)
    
    
    Daniel Fandrich (9 Dec 2008)
    - Added test cases 1089 and 1090 to test --write-out after a redirect to
      test a report that the size didn't work, but these test cases pass.
    
    - Documented CURLOPT_CONNECT_ONLY as being useful only on HTTP URLs.
    
    
    Daniel Stenberg (9 Dec 2008)
    - Ken Hirsch simplified how libcurl does FTPS: now it doesn't assume any
      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.
    
    
    Daniel Stenberg (8 Dec 2008)
    
    - Fred Machado posted about a weird FTP problem on the curl-users list and when
      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.
    
    
    - Christian Krause filed bug #2221237
      (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!
    
    
    Daniel Fandrich (3 Dec 2008)
    - Fixed the getifaddrs version of Curl_if2ip to work on systems without IPv6
      support (e.g. Minix)
    
    
    Daniel Stenberg (3 Dec 2008)
    - Igor Novoseltsev filed bug #2351645
      (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.
    
    
    - Pawel Kierski pointed out a mistake in the cookie code that could lead to a
      bad fclose() after a fatal error had occured.
      (http://curl.haxx.se/bug/view.cgi?id=2382219)
    
    
    Daniel Fandrich (25 Nov 2008)
    - If a HTTP request is Basic and num is already >=1000, the HTTP test
      server adds 1 to num to get the data section to return. This allows
      testing authentication negotiations using the Basic authentication
      method.
    
    - Added tests 1087 and 1088 to test Basic authentication on a redirect
      with and without --location-trusted
    
    
    Daniel Stenberg (24 Nov 2008)
    - Based on a patch by Vlad Grachov, libcurl now uses a new libssh2 0.19
      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!
    
    
    Daniel Fandrich (20 Nov 2008)
    - Automatically detect OpenBSD's CA cert bundle.
    
    
    - I removed the default use of "Pragma: no-cache" from libcurl when a proxy is
      used. It has been used since forever but it was never a good idea to use
      unless explicitly asked for.
    
    - Josef Wolf's extension that allows a $TESTDIR/gdbinit$testnum file that when
      you use runtests.pl -g, will be sourced by gdb to allow additional fancy or
      whatever you see fit
    
    
    - Christian Krause reported and fixed a memory leak that would occur with HTTP
      GSS/kerberos authentication (http://curl.haxx.se/bug/view.cgi?id=2284386)
    
    
    - Andreas Wurf and Markus Koetter helped me analyze a problem that Andreas got
      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.
    
    
    Daniel Fandrich (17 Nov 2008)
    - Added more compiler warning options for gcc 4.3
    
    
    Yang Tse's avatar
    Yang Tse committed
    Yang Tse (17 Nov 2008)
    - Fix a remaining problem in the inet_pton() runtime configure check. And
      fix internal Curl_inet_pton() failures to reject certain malformed literals.
    
    
    - Make configure script check if ioctl with the SIOCGIFADDR command can be
      used, and define HAVE_IOCTL_SIOCGIFADDR if appropriate.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel Stenberg (16 Nov 2008)
    
    - Christian Krause fixed a build failure when building with gss support
      enabled and FTP disabled.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Added check for NULL returns from strdup() in src/main.c and lib/formdata.c
      - reported by Jim Meyering also prevent buffer overflow on MSDOS when you do
      for example -O on a url with a file name part longer than PATH_MAX letters
    
    - lib/nss.c fixes based on the report by Jim Meyering: I went over and added
      checks for return codes for all calls to malloc and strdup that were
      missing. I also changed a few malloc(13) to use arrays on the stack and a
      few malloc(PATH_MAX) to instead use aprintf() to lower memory use.
    
    - I fixed a memory leak in Curl_nss_connect() when CURLOPT_ISSUERCERT is
      in use.
    
    
    Daniel Fandrich (14 Nov 2008)
    - Added .xml as one of the few common file extensions known by the multipart
      form generator.
    
    
    - Added some #ifdefs around header files and change the EAGAIN test to
      fix compilation on Cell (reported by Jeff Curley).
    
    
    Yang Tse's avatar
    Yang Tse committed
    Yang Tse (14 Nov 2008)
    - Fixed several configure script issues affecting checks for inet_ntoa_r(),
      inet_ntop(), inet_pton(), getifaddrs(), fcntl() and getaddrinfo().
    
    
    Yang Tse (13 Nov 2008)
    - Refactored configure script detection of functions used to set sockets into
      non-blocking mode, and decouple function detection from function capability.