Skip to content
Snippets Groups Projects
CHANGES 106 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel S (25 Feb 2008)
    - Kaspar Brand made GnuTLS-built libcurl properly acknowledge the option that
      forces it to prefer SSLv3.
    
    
    Daniel S (23 Feb 2008)
    - Sam Listopad provided a patch in feature-request #1900014
      http://curl.haxx.se/bug/feature.cgi?id=1900014 that makes libcurl (built to
      use OpenSSL) support a full chain of certificates in a given PKCS12
      certificate.
    
    
    Daniel S (22 Feb 2008)
    - Georg Lippitsch made the src/Makefile.vc6 makefile use the same memory model
      options as the lib/Makefile.vc6 already did.
    
    
    Daniel S (21 Feb 2008)
    - Zmey Petroff found a crash when libcurl accessed a NULL pointer, which
      happened if you set the connection cache size to 1 and for example failed to
      login to an FTP site. Bug report #1896698
      (http://curl.haxx.se/bug/view.cgi?id=1896698)
    
    
    - Fixed test case 405 to not fail when libcurl is built with GnuTLS
    
    
    - Based on initial work done by Gautam Kachroo to address a bug, we now keep
      better control at the exact state of the connection's SSL status so that we
      know exactly when it has completed the SSL negotiation or not so that there
      won't be accidental re-uses of connections that are wrongly believed to be
      in SSL-completed-negotiate state.
    
    
    - We no longer support setting the CURLOPT_URL option from inside a callback
      such as the CURLOPT_SSL_CTX_FUNCTION one treat that as if it was a Location:
      following. The patch that introduced this feature was done for 7.11.0, but
      this code and functionality has been broken since about 7.15.4 (March 2006)
      with the introduction of non-blocking OpenSSL "connects".
    
      It was a hack to begin with and since it doesn't work and hasn't worked
      correctly for a long time and nobody has even noticed, I consider it a very
      suitable subject for plain removal. And so it was done.
    
    
    Guenter Knauf (19 Feb 2008)
    
    - We do no longer support SSLv2 by default since it has known flaws.
      Kaspar Brand provided a patch for all supported SSL toolkits.
    
    Daniel Fandrich (19 Feb 2008)
    
    - Added test309 to test HTTP redirect to HTTPS URL
    
    
    Daniel S (18 Feb 2008)
    - We're no longer providing a very old ca-bundle in the curl tarball. You can
      get a fresh one downloaded and created with 'make ca-bundle' or you can get
      one from here => http://curl.haxx.se/docs/caextract.html if you want a fresh
      new one extracted from Mozilla's recent list of ca certs.
    
      The configure option --with-ca-bundle now lets you specify what file to use
      as default ca bundle for your build. If not specified, the configure script
      will check a few known standard places for a global ca cert to use.
    
    
    Daniel S (17 Feb 2008)
    - Jerome Muffat-Meridol helped me fix Curl_done() to close the current
      connection by force when it was called before the entire request is
      completed, simply because we can't know if the connection really can be
      re-used safely at that point.
    
    - Based on the same debugging logic, I've also made Curl_http_done() not
      return CURLE_GOT_NOTHING if called "prematurely". This should have no real
      effect to anything but the code makes more sense like this.
    
    - Made the gnutls code path not even try to get the server cert if no peer
      verification is requested. Previously it would even return failure if gnutls
      failed to get the server cert even though no verification was asked for.
      Public server showing the problem: https://www.net222.caisse-epargne.fr
    
    - Fix my Curl_timeleft() leftover mistake in the gnutls code
    
    
    - Pooyan McSporran found and fixed a flaw where you first would do a normal
      http request and then you'd reuse the handle and replace the Accept: header,
      as then libcurl would send two Accept: headers!
    
    
    Daniel S (11 Feb 2008)
    - Yang Tse pointed out a few remaining quirks from my timeout refactoring from
      Feb 7 that didn't abort properly on timeouts. These are actually old
      problems but now they should be fixed.
    
    
    Yang Tse (10 Feb 2008)
    - Bug report #1888932 (http://curl.haxx.se/bug/view.cgi?id=1888932) points out
      and provides test program that demonstrates that libcurl might not set error
      description message for error CURLE_COULDNT_RESOLVE_HOST for Windows threaded
      name resolver builds. Fixed now.
    
    
    Daniel Fandrich (8 Feb 2008)
    
    - Added key words to all SSL-using tests so they can be skipped if necessary.
      Removed a few unnecessary requires SSL statements.
    
    
    Daniel S (8 Feb 2008)
    - Mike Hommey filed and fixed bug report #1889856
      (http://curl.haxx.se/bug/view.cgi?id=1889856): When using the gnutls ssl
      layer, cleaning-up and reinitializing curl ends up with https requests
      failing with "ASN1 parser: Element was not found" errors. Obviously a
      regression added in 7.16.3.
    
    
    Yang Tse (8 Feb 2008)
    - Improved test harness SCP/SFTP start up server verification, doing a real
      connection to the sftp server, authenticating and running a simple sftp
      pwd command using the test harness generated configuration and key files.
    
    
    Daniel S (8 Feb 2008)
    - Günter Knauf added lib/mk-ca-bundle.pl which gets the Firefox ca bundle and
      creates a suitable ca-bundle.crt file in PEM format for use with curl. The
      recommended way to run it is to use 'make ca-bundle' in the build tree root.
    
    
    Daniel Fandrich (7 Feb 2008)
    
    - Added tests 1022 and 1023 to validate output of curl-config --version and
      --vernum
    
    
    Daniel S (7 Feb 2008)
    - Refactored a lot of timeout code into a few functions in an attempt to make
      them all use the same (hopefully correct) logic to make it less error-prone
      and easier to introduce library-wide where it should be used.
    
    
    Yang Tse (6 Feb 2008)
    - Fix an issue in strdup replacement function when dealing with absolutely
      huge strings. Only systems without a standard strdup would be affected.
    
    
    Daniel S (3 Feb 2008)
    - Dmitry Kurochkin cleaned up the pipelining code and removed the need for and
      use of the "is_in_pipeline" struct field.
    
    - I wrote up and added the threaded-ssl.c example source code that shows how
      to do multi-threaded downloads of HTTPS files with a libcurl that is built
      with OpenSSL. It uses pthreads for the threading.
    
    
    - Niklas Angebrand made the cookie support in libcurl properly deal with the
      "HttpOnly" feature introduced by Microsoft and apparently also supported by
      Firefox: http://msdn2.microsoft.com/en-us/library/ms533046.aspx . HttpOnly
      is now supported when received from servers in HTTP headers, when written to
      cookie jars and when read from existing cookie jars.
    
      I modified test case 31 and 46 to also do some basic HttpOnly testing.
    
    
    - Dmitry Kurochkin moved several struct fields from the connectdata struct to
      the SingleRequest one to make pipelining better. It is a bit tricky to keep
      them in the right place, to keep things related to the actual request or to
      the actual connection in the right place.
    
    
    - Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previously
      crash!
    
    
    - Michal Marek fixed minor mistake in test case 553 that prevented it from
      working on other IP-addresses or port numbers.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Version 7.18.0 (28 January 2008)
    
    
    Daniel S (27 Jan 2008)
    - Dmitry Kurochkin: In "real world" testing I found more bugs in
      pipelining. Broken connection is not restored and we get into infinite
      loop. It happens because of wrong is_in_pipeline values.
    
    
    Daniel S (26 Jan 2008)
    - Kevin Reed filed bug report #1879375
      (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl
      got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any
      proxy authentication and the proxy replies with an auth (like NTLM) and then
      closes the connection after that initial informational response.
    
      libcurl would not properly re-initialize the connection to the proxy and
      continue the auth negotiation like supposed. It does now however, as it will
      now detect if one or more authentication methods were available and asked
      for, and will thus retry the connection and continue from there.
    
    - I made the progress callback get called properly during proxy CONNECT.
    
    
    - Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked
      memory, and so did "SESS". Fixed now.
    
    Yang Tse (22 Jan 2008)
    - Check poll.h at configuration time, and use it when sys/poll.h unavailable
    
    
    Daniel S (22 Jan 2008)
    - Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed
      that it is bad anyway. Starting now, removing a handle that is in used in a
      pipeline will break the pipeline - it'll be set back up again but still...
    
    
    Yang Tse (21 Jan 2008)
    - Disable ldap support for cygwin builds, since it breaks whole build process.
      Fixing it will affect other platforms, so it is postponed for another release.
    
    
    Daniel S (18 Jan 2008)
    - Lau Hang Kin found and fixed a problem with the multi interface when doing
      CONNECT over a proxy. curl_multi_fdset() didn't report back the socket
      properly during that state, due to a missing case in the switch in the
      multi_getsock() function.
    
    
    Yang Tse (17 Jan 2008)
    - Don't abort tests 518 and 537 when unable to raise the open-file soft limit.
    
    
    Daniel S (16 Jan 2008)
    - Nathan Coulter's patch that makes runtests.pl respect the PATH when figuring
      out what valgrind to run.
    
    
    Yang Tse (16 Jan 2008)
    - Improved handling of out of memory in the command line tool that afected
      data url encoded HTTP POSTs when reading it from a file.
    
    
    - Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that
      previously had a number of flaws, perhaps most notably when an application
      fired up N transfers at once as then they wouldn't pipeline at all that
      nicely as anyone would think... Test case 530 was also updated to take the
      improved functionality into account.
    
    
    - Calls to Curl_failf() are not supposed to provide a trailing newline as the
      function itself adds that. Fixed on 50 or something strings!
    
    
    Daniel S (15 Jan 2008)
    - I made the torture test on test 530 go through. This was actually due to
      silly code left from when we switched to let the multi handle "hold" the dns
      cache when using the multi interface... Of course this only triggered when a
      certain function call returned error at the correct moment.
    
    
    Daniel S (14 Jan 2008)
    - Joe Malicki filed bug report #1871269
      (http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang-
      problem that occurred when doing a large HTTP POST request with the
      response-body read from a callback.
    
    
    - I re-arranged the curl --help output. All the options are now sorted on
      their long option names and all descriptions are one-liners.
    
    
    - Eric Landes provided the patch (edited by me) that introduces the
      --keepalive-time to curl to set the keepalive probe interval. I also took
      the opportunity to rename the recently added no-keep-alive option to
      no-keepalive to keep a consistent naming and to avoid getting two dashes in
      these option names. Eric also provided an update to the man page for the new
      option.
    
    
    - Daniel Egger made CURLOPT_RANGE work on file:// URLs the very same way it
      already worked for FTP:// URLs.
    
    
    - I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the
      spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved
      performance for the upload resume cases where you want to upload the last
      few bytes of a very large file. To implement this decently, I had to switch
      the client code for uploading from fopen()/fread() to plain open()/read() so
      that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that)
      on systems that offer support for that.
    
    
    Daniel S (10 Jan 2008)
    
    - Michal Marek made curl-config --libs not include /usr/lib64 in the output
      (it already before skipped /usr/lib).  /usr/lib64 is the default library
      directory on many 64bit systems and it's unlikely that anyone would use the
      path privately on systems where it's not.
    
    
    - Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow
      libcurl to seek in a given input stream. This is particularly important when
      doing upload resumes when there's already a huge part of the file present
      remotely. Before, and still if this callback isn't used, libcurl will read
      and through away the entire file up to the point to where the resuming
      begins (which of course can be a slow opereration depending on file size,
      I/O bandwidth and more). This new function will also be preferred to get
      used instead of the CURLOPT_IOCTLFUNCTION for seeking back in a stream when
      doing multi-stage HTTP auth with POST/PUT.
    
    
    - Nikitinskit Dmitriy filed bug report #1868255
      (http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies
      and fixes a problem with parsing WWW-Authenticate: headers with additional
      spaces in the line that the parser wasn't written to deal with.
    
    
    Daniel S (8 Jan 2008)
    - Introducing curl_easy_pause() and new magic return codes for both the read
      and the write callbacks that now can make a connection's reading and/or
      writing get paused.
    
    
    Daniel S (6 Jan 2008)
    - Jeff Johnson filed bug report #1863171
      (http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that
      libcurl's date parser didn't accept a +1300 time zone which actually is used
      fairly often (like New Zealand's Dailight Savings Time), so I modified the
      parser to now accept up to and including -1400 to +1400.
    
    
    Daniel S (5 Jan 2008)
    - Based on further discussion on curl-library, I reverted yesterday's SOCKS5
      code to instead introduce support for a new proxy type called
      CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy
      instead of IP address and there's thus no longer any need for a new
      curl_easy_setopt() option.
    
      The default SOCKS5 proxy is again back to sending the IP address to the
      proxy.  The new curl command line option for enabling sending host name to a
      SOCKS5 proxy is now --socks5-hostname.
    
    
    Daniel S (4 Jan 2008)
    - Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the
      proxy do the host name resolving and only if --socks5ip (or
      CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and
      pass on the IP address only to the proxy.
    
    
    Yang Tse (3 Jan 2008)
    - Modified test harness to allow SCP, SFTP and SOCKS4 tests to run with
      OpenSSH 2.9.9, SunSSH 1.0 or later versions. SOCKS5 tests need OpenSSH
      3.7, SunSSH 1.0 or later.
    
    
    - I fixed two cases of missing return code checks when handling chunked
      decoding where a write error (or abort return from a callback) didn't stop
      libcurl's processing.
    
    
    - I removed the socklen_t use from the public curl/curl.h header and instead
      made it an unsigned int. The type was only used in the curl_sockaddr struct
      definition (only used by the curl_opensocket_callback). On all platforms I
      could find information about, socklen_t is 32 unsigned bits large so I don't
      think this will break the API or ABI. The main reason for this change is of
      course for all the platforms that don't have a socklen_t definition in their
      headers to build fine again. Providing our own configure magic and custom
      definition of socklen_t on those systems proved to work but was a lot of
      cruft, code and extra magic needed - when this very small change of type
      seems harmless and still solves the missing socklen_t problem.
    
    
    - Richard Atterer brought a patch that added support for SOCKS4a proxies,
      which is an inofficial PROXY4 variant that sends the hostname to the proxy
      instead of the resolved address (which is already supported by SOCKS5).
      --socks4a is the curl command line option for it and CURLOPT_PROXYTYPE can
      now be set to CURLPROXY_SOCKS4A as well.
    
    
    Daniel S (1 Jan 2008)
    - Mohun Biswas pointed out that --libcurl generated a source code with an int
      function but without a return statement. While fixing that, I also took care
      about adding some better comments for the generated code.