Skip to content
Snippets Groups Projects
CHANGES 43.8 KiB
Newer Older
  • Learn to ignore specific revisions
  •                                   _   _ ____  _
                                  ___| | | |  _ \| |
                                 / __| | | | |_) | |
                                | (__| |_| |  _ <| |___
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
                                 \___|\___/|_| \_\_____|
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
                                      Changelog
    
    
    Daniel (17 May 2004)
    - All 191 test cases run through the torture test OK!
    
    Daniel (14 May 2004)
    - With a slightly modified ftpserver.pl I've now run almost all tests through
      with runtests.pl -t. This is goodness!
    
    - Since I have been unable to contact the CVS admins for several months, I've
      decided that the current CVS hosting was not good enough. I've now moved the
      CVS repo once again, see README for updated cvs checkout instructions.
    
    Daniel (13 May 2004)
    - runtests.pl -t now runs fine all the way to test 100. I believe test case
      100 fails because of an FTP server problem.
    
    Daniel (12 May 2004)
    - General cleanups all over to make libcurl survive and do well when a memory
      function returns NULL. runtests.pl -t now works fine for the first 26 test
      cases.
    
    
    Daniel (11 May 2004)
    
    - Seshubabu Pasam provided a patch that introduces curl_global_init_mem() -
      like normal curl_global_init() but allows the app to replace all memory
      functions with its own set. I modified it slightly.
    
    
    - Based on Luca Alteas' comments, I modified the curllib.dsp generation code.
    
    Daniel (10 May 2004)
    - Gisle mailed Simon Josefsson (of libidn fame) about the benefits of a
      separate free()-function by that lib to make sure the memory is freed by the
      same memory subsystem that allocated it. He responded positively and this
      will likely cause us to require a newer version of libidn as soon as Simon
      releases one with such a libidn_free() function.
    
    - James Bursa made runtests.pl's -t option work for any given test case, and I
      edited to allow -g too. Not even test case 1 worked...
    
    - Luca Altea made the nc= field not use quotes in outgoing HTTP Digest headers.
    
    - Andrés García fixed a problem in the test script that made it fail to
      recognize our own running HTTP server.
    
    
    - James Bursa fixed the memanalyze.pl script to conder malloc(0) areas OK to
      free() and he made two failed-resolve error messages use the new display-
      name instead of the internally-used name.
    
    - Gisle Vanem tried curl with
      www.etdomenenavnkanmaksimaltinneholdesekstitrebokstaversliksomdette.com
      which caused problems, and I fixed the single zero byte buffer overwrite
    
      that occurred (due to a stupid protocol buffer size and parser).
    
    - Made the lib/curllib.dsp file get generated automaticly when a distribution
      package is made, with the msvcproj.* files as templates and all
      win32-sources added. I think this can be made to work better than the always
      lagging-behind previous approach. I'm not sure this builds a working project
      file right now though!
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (6 May 2004)
    - Michael Benedict brought a fix that fills in the errorbuffer properly when
      ares fails to resolve a name for a case not previously dealt with like this.
    
    Daniel (5 May 2004)
    - Joe Halpin fixed the annoying typecast warning in lib/ldap.c
    
    - Gisle Vanem fixes:
      o memdebug to not access NULL on several places
      o libcurl.def; curl_formparse is gone.
      o progress.c; fixed the percent values being trunced to 0.
      o if2ip.*; constified the 'interface' argument.
    
    - Tor Arntsen reported that many of his autobuilds froze and I found and fixed
      a problem introduced with the HTTP auth overhaul that could lead to a
      never-ending internal request-loop due to un-initialized variables!
    
    - Removed several compiler warnings on various compilers/platforms.
    
    
    Daniel (4 May 2004)
    - curl_formparse() has been removed from the library. It has been marked and
      mentioned as deprecated for several years.
    
    
    Daniel (3 May 2004)
    - Rewritten HTTP authentication code. The previous code could not properly
      deal with the added test cases 167, 168 and 169. I've now rewritten the code
      to better separate host and proxy authentication and not re-use the same
      variables as much as before as it proved non working in the more involved
      cases. All the current tests run OK now, and so do the new ones. The curl
      tool got a new option named --proxy-digest to enable HTTP Digest
      authentication with the proxy. I also made the library support it.
    
    - Gisle Vanem made the LDAP code work with wldap32.dll as supplied with
      Win-98/ME/2000/XP, so no extra .dlls are required when curl/libcurl is used
      on these Windows versions.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (30 April 2004)
    - runtests.pl now scans the valgrind log for valgrind-detected memory leaks
      after each test case if valgrind was found and used.
    
    - I modified the app-code in curl to include the new lib/curlx.h and only
      access those functions using the curlx_-prefix in preparation for the future
      removal of several curl_-functions from the public libcurl API.
    
    - Introduced lib/curlx.h as a single header to provide the curlx_-functions
      to apps.
    
    - Added notices in the man pages for curl_getenv, curl_mprintf, curl_strequal
      and curl_strnequal that they are subject for removal in a future release.
      STOP USING THESE FUNCTIONS.
    
    - Mihai Ionescu noticed he couldn't do formposts with whitespace in the file
      names and yes, I broke that on April 23. Sigh. I fixed it now and added
      test case 166 to verify it.
    
    - Luca Altea pointed out a mistake left from the Digest patch of yesterday.
    
    Daniel (29 April 2004)
    - Made IDN domains work when sending requsts over HTTP proxy as well. Added
      test case 165 to verify the functionality.
    
    - Fixed a bug in the new internal host name setup when re-using connections.
    
    - James Bursa found out that curl_easy_duphandle() with ares-built libcurl
      created a bad handle that would crash in the first name resolve attempt. This
      is now fixed and test case 512 was added to verify it.
    
    - Luca Altea provided a major HTTP Digest code fix and cleanup. We now follow
      the Digest RFC a lot better.
    
    - Gisle Vanem made the SSL code use ERR_error_string_n() where applicable.
    
    
    Daniel (27 April 2004)
    - I remodeled Gisle's IDN code slightly and now we convert both the host name
      and proxy name to the ACE encoded version to use internally for resolves and
      cookies etc. They are now using one 'struct hostname' each that keep both
      the original name and the possibly encoded name. IDN resolves work for me
      now using ipv6, ipv4 and ares resolving. Even cookies on IDN sites seem to
      do right. I got some failures at first when CHARSET wasn't set at all which
      confused libidn completely and it decided by encoding of choice was
      'ANSI_X3.4-1968'...
    
    - made 'configure --without-libidn' work
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (25 April 2004)
    
    - Fixed the src/hugehelp.c file to include "setup.h" instead of "config.h" to
      make the problems with USE_MANUAL on windows go away.
    
    - configure --without-ssl could still wrongly include some OpenSSL info in the
    
      Makefiles if pkg-config had info about OpenSSL. Bug #941762 reported by
      Martin.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Since we can now build and use quite a large set of 3rd party libraries, I
      decided I would make configure produce a summary at the end showing what
      libraries it uses and if not, what option to use to make it use that. I also
      added some other random info that is nice in a "configure summary" output.
    
    - Applied TommyTam's patch that now make curl work with telnet and stdin
      properly on Windows.
    
    - The changes for today below were made by me and Gisle Vanem.
    
      The file previously known as hostip.c has now undergone a huge cleanup and
    
      split:
    
      hostip.c explained
      ==================
    
      The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c
      source file are these:
    
      CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use
      that. The host may not be able to resolve IPv6, but we don't really have to
      take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4
      defined.
    
      CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous
      name resolves. It cannot have ENABLE_IPV6 defined at the same time, as
      c-ares has no ipv6 support. This can be Windows or *nix.
    
      CURLRES_THREADED - is defined if libcurl is built to run under (native)
      Windows, and then the name resolve will be done in a new thread, and the
      supported asynch API will be the same as for ares-builds.
    
      If any of the two previous are defined, CURLRES_ASYNCH is defined too. If
      libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is
      defined.
    
      The host*.c sources files are split up like this:
    
      hostip.c   - method-independent resolver functions and utility functions
      hostasyn.c - functions for asynchronous name resolves
      hostsyn.c  - functions for synchronous name resolves
      hostares.c - functions for ares-using name resolves
      hostthre.c - functions for threaded name resolves
      hostip4.c  - ipv4-specific functions
      hostip6.c  - ipv6-specific functions
    
      The hostip.h is the single united header file for all this. It defines the
      CURLRES_* defines based on the config*.h and setup.h defines.
    
    - Added function header comments to many functions in an attempt to better
      explain the purpose of them all.
    
    - configure --with-libidn is now supported. It makes the configure script
      check for libidn libs and include files in the prefix path given. If you
      say --with-libidn=/usr/local, it will check for the lib in /usr/local/lib
      and the includes in /usr/local/include etc.
    
    - curl_version_info() now returns a struct aged CURLVERSION_THIRD including
      libidn version info. The string curl_version() returns also includes libidn
      version info, if available.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Version 7.11.2 (26 April 2004)
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (25 April 2004)
    - Erwin Authried pointed out that configure --disable-manual didn't do right
      if you already had a src/hugehelp.c source file present (which most people
      do I guess). It now uses the USE_MANUAL define properly.
    
    
    Daniel (23 April 2004)
    
    - Gisle Vanem found and fixed a memory leak when doing (failing) Windows
      threaded name resolves.
    
    
    - I also added test case 163 just to make sure -F "var=<file" works fine and
      can pass on characters such as newlines, carriage-return and tabs.
    
    - When we added test case 162 without adding the necessary requirement field
      in the test meta data we could see that curl didn't complain if you used
      --proxy-ntlm even if the underlying libcurl it uses has no NTLM support! I
      now made it check this first, and it now exists with a "the installed
      libcurl version doesn't support this" message if it happens again.
    
    
    - David Byron found and fixed a small bug with the --fail and authentication
      stuff added a few weeks ago.  Turns out that if you specify --proxy-ntlm and
      communicate with a proxy that requires basic authentication, the proxy
      properly returns a 407, but the failure detection code doesn't realize it
      should give up, so curl returns with exit code 0. Test case 162 added to
      verify the functionality.
    
    
    - allow newlines in the contents when doing -F "var=[contents]"
      Robert Marlow reported.
    
    
    - If a transfer is found out to be only partial, libcurl will now treat that
      as a problem serious enough to skip the final QUIT command before closing
      the control connection. To avoid the risk that it will "hang" waiting for
      the QUIT response. Added test case 161 to verify this.
    
    
    Daniel (21 April 2004)
    - Modified the heuristics for dealing with the test 160 scenario. When a
      connection is re-used and nothing at all is received from it (because the
      server closes the connection), we will now retry the request on a fresh new
      connection. The previous ECONNRESET stuff from January 30 was removed again
      as it didn't detect the situation good enough.
    
    Daniel (20 April 2004)
    - Added test case 160 to verify that curl works correctly when it gets a
      connection reset when trying to re-use a connection. It should then simply
      create a new connection and resend the request.
    
    
    Daniel (19 April 2004)
    - No more 512 byte limit for host name (inclusing name + password) in libcurl.
      An added bonus is that we use less memory for the typical (shorter URL)
      case.
    
    - Cleaned up the sources to better use the terms 'hostname' and 'path'
      internally when referring to that data. The buffers used for keep that info
      is called 'namebuffer' and 'pathbuffer'. Much easier to read and understand
      than the previous mess.
    
    
    Daniel (15 April 2004)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Modified runtests.pl again to remove all log files in the log/ dir between
      each test, and then made -p display all non-zero byte files in the log dir.
      It should make that data more usable and contain less rubbish.
    
    - ftpserver.pl now produces log files more similar to how the sws ones look
      and they now also contains a bit more details to help debugging ftp
      problems.
    
    
    - Removed the fixed maximum amount of dir levels the FTP code supported.
      Previously we had a fixed array for 100 levels, now we save space in each
      handle by allocating only for a few level by default and then enlarging that
      in case of need (with no maximum depth). Adjusted test case 142 to verify
    
      that 150 dir levels work fine.  An added bonus is that we use less memory
      for the typical (not very deep) case.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (14 April 2004)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Asking for CURL_IPRESOLVE_V6 when ipv6 addresses can't be resolved will
      now cause the resolve function to return NULL immediately. This flaw was
      pointed out by Gisle Vanem.
    
    - Gisle Vanem made curl -4/-6 actually set the desired option to libcurl.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - runtests.pl now has a new option (-p) that will display "interesting" log
      files to stdout in case of a test failure. This is primarily intended to be
      used in the 'full-test' make target that is used by the autobuild tests, as
      we then get a much better chance to understand (remote) test failures based
      on autobuild logs alone.
    
    Daniel (13 April 2004)
    - Gisle Vanem made the multi interface work again on Windows even when built
      without ares. Before this, select() would return -1 during the name resolve
      phase since curl_multi_fdset() didn't return any fd_set at all which wasn't
      appreciated!
    
    - curl_easy_duphandle() now duplicates the tcp_nodelay info as well.
    
    Daniel (11 April 2004)
    - Applied David Byron's patch for the MSVC libcurl makefile for builds with
      zlib.
    
    Daniel (9 April 2004)
    - Dirk Manske improved the timer resolution for CURLINFO_*_TIME, it can now
      be down to usec if the system sypports it.
    
    
    Daniel (7 April 2004)
    - A request that sends "Expect: 100-continue" and gets nothing but a single
      100 response back will now return a CURLE_GOT_NOTHING. Test 158 verifies.
    
    - The strtoofft() macro is now named curlx_strtoofft() to use the curlx_*
      approach fully.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (6 April 2004)
    
    - Gisle Vanem's fixed bug #927979 reported by Nathan O'Sullivan. The problem
      made libcurl on Windows leak a small amount of memory in each name resolve
      when not used as a DLL.
    
    - New authentication code added, particularly noticable when doing POST or PUT
      with Digest or NTLM. libcurl will now use HEAD to negotiate the
      authentication and when done perform the requested POST. Previously libcurl
      sent POST immediately and expected the server to reply a final status code
      with an error and then libcurl would not send the request-body but instead
      send then next request in the sequence.
    
      The reason for this change is due to IIS6 barfing on libcurl when we attempt
      to POST with NTLM authentication. The reason for the problems is found in
      RFC2616 section 8.2.3 regarding how servers should deal with the 100
      continue request-header:
    
            If it responds with a final status code, it MAY close the transport
            connection or it MAY continue to read and discard the rest of the
            request.
    
      Previous versions of IIS clearly did close the connection in this case,
      while this newer version decided it should "read and discard". That would've
      forced us to send the whole POST (or PUT) data only to have it discarded and
      then be forced to send it again. To avoid that huge penality, we switch to
      using HEAD until we are authenticated and then send the POST.
    
      The only actual drawback I can think of (except for the odd sites that might
      treat HEAD differently than they would treat POST/PUT when given the same
      URL) is that if you do POST with CURLAUTH_ANY set and the site requires NO
      authentication, libcurl will still use a HEAD in a first round and then do a
      POST.
    
      If you do a HEAD or a GET on a site using CURLAUTH_ANY, libcurl will send
      an un-authenticated request at once, which then is the only request if the
      site requires no auth.
    
      Alan Pinstein helped me work out the protocol details by figuring out why
      libcurl failed and what IIS6 expects.
    
    
    - The --limit-rate logic was corrected and now it works a lot better for
      higher speeds, such as '10m' or similar. Reported in bug report #930249.
    
    - Introducing curlx_tvnow() and curlx_tvdiff() using the new curlx_* fashion.
      #include "timeval.h" from the lib dir to get the protos etc.  Note that
      these are NOT part of the libcurl API. The curl app simply uses the same
      source files as the library does and therefore the file needs to be compiled
      and linked with curl too, not just when creating libcurl.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - lib/strerror.c no longer uses sys_nerr on non-windows platforms since it
      isn't portable enough
    
    Daniel (2 April 2004)
    - In the curl_strnqual.3 man page, we now prepend the man3 dir to the file
      name to work better. As pointed out by Robin Kay.
    
    - Andrés García updated the mingw makefiles.
    
    - Dirk Manske fixed a problem I recently added in the progress meter code that
      broke subsecond resolution for CURLINFO_TOTAL_TIME. He also pointed out a
      mistake in the code that produces the final update of the progress meter
      that would often prevent it from actually being updated that final time.
    
    Daniel (1 April 2004)
    - Dirk Manske fixed a memory leak that happened when we use ares for name
      resolves and decides to time-out before ares does it. This fix uses the
      brand new ares_cancel() function which is not present in c-ares 1.1.0.
    
      When told to enable ares, the configure script now checks for presence of
      the ares_cancel function to alert users if they attempt to use a too old
      c-ares library.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (31 March 2004)
    - Roy Shan fixed a flaw that prevented ares name resolve timeouts to occur!
    
    - Dirk Manske found out that libcurl timed out waiting for resolves far too
      easy when libcurl was built to use (c-)ares for name resolving.
    
    - Further Digest fixing and a successful test case 153 now makes me believe
      Mitz Wark's problems are fixed.
    
    - Andres Garcia figured out that test case 63, while working, only proved a
      flaw in libcurl's 'http_proxy' parser when a user name and password is
      provided. The user name was not extracted properly (and 'http' was always
      used as user name).
    
    - Andrés García fixed compiler warnings in our ioctlsocket() usage.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Joe Halpin faced problems with the getnameinfo() argument ai_flags and the
      particular bit named 'NI_WITHSCOPEID' on Solaris 9 for Intel.  I've now
      written a configure test that checks for a working NI_WITHSCOPEID
      implemenation. No code uses the result from this test yet, it is still
      experimental. James Carlson wrote in comp.unix.solaris: "It's a bug
      (5006623) -- it's not supported and shouldn't be in the header file."
    
    - I provided Mitz Wark with a first patch in order to fix libcurl's problems
      to re-negotiate Digest authentication (when 'stale=true' is included in the
      response header).
    
    - Roy Shan discovered that the multi interface didn't properly timeout name
      lookups which could make handles get stuck in that state and thus never get
      completed. I've produced a first test patch that attempts to correct this.
    
    
    - David Byron's patch was appplied to make CURLOPT_FAILONERROR work nicely
      even with authentcations such as NTLM or Digest enabled. Test cases 150, 151
      and 152 were added to verify the functionality.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (29 March 2004)
    - Gisle Vanem updated files for the djgpp/MS-DOS build.
    
    - Andrés García helped me work out a fix for the runtests.pl script to make
      the file:// tests run fine when tested with the mingw-built version of curl.
    
    - Fixed an include issue with netinet/tcp.h on AIX, based on input by Tor.
      This also required a minor fix of the configure script.
    
    - The postit2.c source example used the wrong struct name for the post data.
    
    Daniel (26 March 2004)
    - Gisle Vanem improved ipv6 support on windows by making the curl build to use
      the correct getaddrinfo() function.
    
    Daniel (25 March 2004)
    - It turned out that AIX, despite having a "thread-safe libc", doesn't offer
      all traditional functions thread-safe. This URL is informative on this
      subject:
    
        http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
        genprogc/thread_quick_ref.htm
    
      As a result of this, we now check for three *_r() functions on recent AIX
      versions as well that the URL mentions aren't thread-safe in AIX 5.1.
    
    - renamed curl_strerror.[ch] to strerror.[ch]
    
    - Joe Halpin added CURLOPT_TCP_NODELAY and --tcp-nodelay to make it possible
      for users to disable the Nagle algorthim-usage.
    
    - Tor Arntsen provided some interesting strerror_r() knowledge. glibc has its
      own API which differs from the POSIX one. Daniel adjusted the configure
      script to detect the version in use, and the code now uses the new defines
      accordingly.
    
    - Fixed some build flaws with the new lib/curl_strerror.c source file.
    
    Daniel (24 March 2004)
    - Gisle Vanem's fix to replace the bad use of strerror(). This introduces
      Curl_strerror() that attempts to be thread-safe _and_ works on Windows too!
    
    - Tor Arntsen spell-fixed lots of libcurl man pages.
    
    - Tor Arntsen made testcurl.pl work with older perl 5 versions, and Daniel
      made it not use chdir .. to go back, as that isn't very good when you've
      setup a testdir containing symlinks.
    
    - Added a check for strerror_r() in the configure script.
    
    
    - Added Greg Hewgill's testcurl.pl script to CVS. We have not moved over to
      use this script for the real distributed testing just yet, but it is only
      a matter of time.
    
    - Gisle Vanem provided code that makes curl report a better error message
      if --interface fails on windows.
    
    
    - The regular progress meter is now fixed to never wrap due to long lines. All
      fields are now static sized. If the time in the time fields get a time value
      that would represent a time that is 100 hours or more (if not, it remains
      using a HH:MM:SS display), it switches first to a "NNNd NNh" display (for
      days and hours) and if that isn't enough it switches to a "NNNd" display if
      it is more than 999 days.
    
      Several of the calculations were also moved to fixed-point math instead of
      using doubles.
    
    
    Daniel (22 March 2004)
    
    - Glen Nakamura noticed CURLINFO_CONTENT_LENGTH_DOWNLOAD didn't work as it
      used to do if CURLOPT_NOBODY is set TRUE.
    
    - Kevin Roth patched the cygwin package makefile and README to adjust to
      new cygwin packaging guidelines.
    
    
    - Enabled "NT responses" in the NTLM authentication. Doing this simply means
      that we provide an extra chunk of data in each "type-3 message". The only
      reason for doing this is that it seems that using only the "Lanmanager hash"
      (as we've been doing until now) doesn't support passwords longer than 14
      characters and it turns out there are users out there who want to use
      libcurl and NTLM with such passwords! ;-) Seven NTLM-related test cases were
      updated accordingly. Mentioned as issue 29 in TODO-RELEASE, bug report
      #915609
    
    - Moved the generated libcurl version info to a new header file, named
      curl/curlver.h. Now interested parties can include ONLY version info, should
      anyone want that (and it seems at least some windows resource files would).
      Mentioned as issue 27 in TODO-RELEASE.
    
    Daniel (21 March 2004)
    - Fixed the root Makefile to use tabs for the netware target. Günter Knauf
      pointed this out.
    
    - Marty Kuhrt's VMS cleanup
    
    - Thomas Schwinge made buildconf recognize ACLOCAL_FLAGS to invoke aclocal
      with particular pre-determined options.
    
    
    Version 7.11.1 (19 March 2004)
    
    
    Daniel (18 March 2004)
    - Tor Arntsen brought some info about SGI IRIX:
    
      IRIX supports 3 different executable/object formats, -32, -n32 and -64.
      -n32 is default 32-bit format, -32 is the "old" 32-bit format, and -64 is
      the 64-bit format.  Libraries for the different formats are in lib, lib32
      and lib64 respectively.
    
      We've now adjusted the configure script to adapt to this when scanning for
      3rd party libs, such as OpenSSL.
    
    
    Daniel (17 March 2004)
    
    - Watz pointed out a few missing files in the MSVC project description file.
    
    
    - Günter Knauf brought patches, code and makefiles to build curl on Novell
      NetWare.
    
    
    Daniel (15 March 2004)
    
    - Lots of libcurl man pages were updated to contain references to other man
      pages the recognized way so that they appear as nice hyperlinks in the HTML
      versions.
    
    
    - buildconf now checks the m4 version too, since autoconf requires a GNU m4
      version to build proper configure scripts.
    
    
    Daniel (12 March 2004)
    - Added CURLOPT_POSTFIELDSIZE_LARGE, the large file version of
      CURLOPT_POSTFIELDSIZE to allow POSTs larger than 2GB.
    
    - David Byron fixed an uninitialized variable case/crash.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (10 March 2004)
    - Jeff Lawson fixed the SSL connection to deal with received signals during the
      connect.
    
    - Changed the OS string for win32 to become "i386-pc-win32".
    
    Daniel (9 March 2004)
    - Changed the internals to use curl_socket_t for socket variable type. This
      should enable us to build with less warnings on Windows, where SOCKET is
      used which is an unsigned int, while most other platforms use a mere int.
    
    - Modified lib/config-win32.h to build fine on MSVC again.
    
    
    Version 7.11.1-pre1 (8 March 2004)
    
    Daniel (8 March 2004)
    - Minor fix to make curl CURL_VERSION_LARGEFILE is only set if curl_off_t is
      larger than 4 bytes.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (4 March 2004)
    
    - Improved PUT/POST with NTLM/Digest authentication, the so called issue 12.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Modified the test HTTP server a lot to work with the upcoming changes for
      PUT/POST with NTLM/Digest authentication (like test case 88). Added Andrés
      García's win32-changes. Improved the logging.
    
    - Fixed the file:-related progress/getinfo stuff a bit more.
    
    Daniel (4 March 2004)
    - I corrected a problem with the multi interface when following a Location:
      header or when doing multiple-request authentications. A subsequent request
      could erroneously re-use a previous connection that was sent with
      Connection: close. Christopher R. Palmer reported.
    
    - Andrés García patched curl to prevent warnings while compiling with mingw,
      mainly because it is now possible to have both WIN32 and HAVE_CONFIG_H
      defined.
    
    - When transferring files from a file: URL, the progress meter and other
      transfer metrics were not updated properly.
    
    - David Byron provided a "version resource" file to the curl executable for
      the windows builds.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (3 March 2004)
    
    - David Byron's work on making libcurl only require winsock 1.1 on Windows
      machines.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - More variable cleanups based on compiler warnings generated by Tor Arntsen's
      autobuilds with MIPSPro.
    
    - Joe Halpin helped us fix some pedantic compiler warnings on FreeBSD.
    
    - Applied Tom Bates' patch to build on nsr-tandem-nsk.
    
    - Dan Fandrich corrected some flaws in the configure GSS detection.
    
    Daniel (2 March 2004)
    - Fixed the libcurl code to use FORMAT_OFF_T for printf() formatting
      curl_off_t types internally.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (1 March 2004)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Added CURL_VERSION_LARGEFILE as a feature-bit in the curl_version_info()
      response, that signals if this libcurl supports >2GB files. curl -V now
      outputs 'Largefile' in the Features: field if this is the case. Most systems
      are likely to support this.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - We offer a CURL_FORMAT_OFF_T define in the public header, which can be used
      to printf() curl_off_t variables. We also modified the libcurl sources to
      use this define instead of the previous %Od approach (although I've left the
      O-flag functional in the code). This should also prevent compilers to warn
      on the home-grown option.
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Fixed the resume-check code to test for a working resume at the end of the
      headers and not at the first body-byte.
    
    - CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If
      you need a global DNS cache for whatever reason, use the share interface and
      you'll get a global cache that works the way it should work. You can even
      have any number of global caches, all at your command. This is now also
      mentioned in the docs.
    
    - Made the *printf code support the z-flag to enable size_t printf() in a
      manner similar to how glibc allows it. To make printfing of this work on
      platforms with 64bit size_t and 32bit ints. If there even are any! ;-)
    
    - Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and
      CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would
      loop without succeeding to authenticate due to the new connection that was
      made for all round-trips in the authentication. Now, the FRESH_CONNECT is
      remade to only matter for the first connection made with curl_easy_perform()
      and all the rest that might follow due to FOLLOWLOCATION or HTTP
      authentication are now ignoring that option.
    
    - Adjusted the QUIT code slightly since it could core-dump.
    
    - Corrected the test suite's FTP server to provide a correct size to the
      'verifiedserver' request.
    
    Daniel (27 February 2004)
    - Joe Halpin made the FTP code send QUIT on the control connection before
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      disconnecting the TCP connection. This is what good-behaving ftp clients
    
      should do.
    
    Daniel (26 February 2004)
    - David Byron updated several files to make curl build fine on MSVC 6. He
      also added the 'buildconf.bat' that works like the 'buildconf + configure'
      combo does on unixes.
    
    - Gisle Vanem made the memdebug stuff support calloc() as well.
    
    - Tor Arntsen pointed out that testcurl.sh needed to remove the generated
      files in order to have them re-generated in each build.
    
    - Andy Serpa found out that the share interface did not enjoy life when not
      having the lock and unlock callbacks set, even though documented to be
      OK. It still is OK, and now the code won't segfault anymore!
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (25 February 2004)
    - Based on a patch by Greg Hewgill I modified how long long is used in the
      mprintf code, as we can use a 64bit type with MSVC that is a long long
      equivalent. This corrects some weird large file behaviors on windows.
    
    - Tor Arntsen helped me work out --enable-debug to work better with different
      versions of the gcc and icc compilers.
    
    - Added CURLOPT_SHARE to the curl_easy_setopt.3 man page.
    
    
    Daniel (22 February 2004)
    - Applied the final pieces of Gisle Vanem's patch that brings a working name
      resolve timeout to the windows versions of curl!
    
    Daniel (21 February 2004)
    - David Byron's fix to allow the speed-limit logic work even if you set
      limit-rate. It does work on the expense of the rate limiter.
    
    
    Daniel (20 February 2004)
    - configure --enable-debug with gcc now also tries to detect the icc compiler
      (which somehow gets treated as if it is a gcc) to stop using all the gcc
      options with it, and we also provide -isystem options for each extra -I
      option the configure script has figured out (for OpenSSL, kerberos, zlib,
      Heimdal etc). This of course to prevent warnings on headers we don't have
      control of.
    
    
    Daniel (19 February 2004)
    - Doug Porter made libcurl use the HOME environment variable before the
      getpwuid results when looking for .netrc files.
    
    - If 'configure --enable-debug' is used with gcc, it now checks which gcc
      version it is and uses as picky compiler options as possible for the
      particular version.
    
    - Code that can be used in both the lib and in the curl app is now made to use
      the curlx_ prefix. The first function to be available like this is the
      curlx_strtoll() function. This is made to allow the app to use existing code,
      but without polluting the libcurl API. Further explanations posted here:
    
        http://curl.haxx.se/mail/lib-2004-02/0215.html
    
    Daniel (18 February 2004)
    - Fixed buildconf to not use "which" as AIX and Tru64 have what have been
      referred to as "horribly broken 'which' programs".
    
    - Made sure dns cache timeout set to -1 really means caching forever.
    
    Daniel (17 February 2004)
    - Made it possibly to build c-ares with the libcurl memdebug system to better
      track memory.
    
    
    - When using ares, we now initialize the ares 'channel' in curl_easy_init()
      and re-use that same handle during the entire curl handle's life-time. It
      improves performance.
    
    
    - Fixed a problem when displaying verbose for ipv6-enabled libcurls and
      re-used connections. Problem reported and fix verified by Grigory Entin.
    
    - Jeff Lawson fixed the version-check in the SOCKS5 code.
    
    Daniel (15 February 2004)
    - Fixed a case where a host cache entry was not flagged in-use properly when a
      cached entry was used.
    
    - Andrés García's patch that checks for winmm in the configure script was
      applied.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (13 February 2004)
    - Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a
      specific network interface.
    
    - Greg Hewgill found out that the variable holding 'contentlength' wasn't big
      enough to hold a large file!
    
    - Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp
      department, and there was another potential problem in the name resolve code
      too.
    
    Daniel (11 February 2004)
    - Removed a few variables that were only set but never used, as some compilers
      warn about that and we do not like compiler warnings!
    
    - Removed the need for symlinks in the tests/data directory if curl is built
      outside of the source directory and the 'make test' is used. This was done
      by providing a "source dir path" to the scripts/servers.
    
    - Now, if the configure script can't find an nroff tool or an option to nroff
      to use to convert man pages with, it will completely switch off the built-in
      manual.
    
    - 'configure --disable-manual' completely disables the built-in manual from
      the curl command tool.
    
    - Andrés García fixed the configure script and a minor source edit, and now
      he has managed to get msys/mingw to run configure and then build!
    
    
    Daniel (9 February 2004)
    - The default HTTP Accept: header was modified to the much simpler
      "Accept: */*".
    
    - P R Schaffner updated the curl-ssl spec file for RPMs.
    
    - Dominick Meglio brought lots of documentation for the share interface's man
      pages that were previously missing.
    
    - Tor Arntsen provided a patch that makes libcurl work-around a bug in the
      AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on
      ipv6-enabled AIX builds.
    
    - Ken Rastatter provided portability fixes for the curlgtk.c example, and now
      it runs on windows with GTK as well!
    
    
    Daniel (6 February 2004)
    - Andrés García made the configure script find gethostbyname() fine when run
      with mingw on windows.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Modified the ldap code to use proper function pointers all over (instead of
    
      mixed data and function pointers) to work-around the picky MIPSPro compiler
      warnings.
    
    - A custom Host: header is only considered if the request is not made by
      following a location. After discussions with Tim Baker.
    
    
    Daniel (5 February 2004)
    - The libz part of the configure script now only set the two libz-related
      define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found.
      If one is missing, none of the defines is set.
    
    - Andrés García fixed the Mingw makefiles.
    
    - Len Krause reported that curl 7.9.X could do uploading from stdin without
      doing chunked encoding, which current curl cannot do even if you disable
      the transfer-encoding chunked header. Now it can again, and test case 98
      verifies this functionality.
    
    - Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing
      the ipv6-code for PORT work on AIX 5.2. We now also provide (better) error
      messages when bailing out in the that function.
    
    - Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro
      compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed
      numerous minor quirks to make less warnings appear.
    
    Daniel (4 February 2004)
    - Based on a patch by Gilad, we now use the custom timeouts when waiting for a
      server to connect when using FTP PORT. Previously we always waited 10
      seconds, no more no less. We now also changed the default (if no timeout is
      set) to wait 60 seconds for the connect before we fail.
    
    Daniel (3 February 2004)
    - Modified to link with c-ares instead of ares.
    
    Daniel (2 February 2004)
    
    - Added a configure test to check for which option the (g)nroff tool wants
      to extract plain text from the man pages. Tor Arntsen told us the AIX
      version of GNU gnroff doesn't support -man!
    
    - Added an undef of accept in memdebug.h to make curl build with --enable-debug
      on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen.
    
    
    - curl_version() now includes c-ares version info, and curl_version_info() now
      returns a struct with version SECOND that also includes that info.
    
    - We are now officially using c-ares for asynch name resolves. c-ares is the
      new library, based on the existing ares but with an extended and slightly
      modified API.
    
    - Dirk improved the ares timeout code, and now we also include the ares error
      string when we fail to resolve a name.
    
    - Another tweak to make test case 91 run fine. Now we have another bit on a
      connection that is set true if the connection is marked for 'retry'. That
      makes the connection get closed and re-opened and the HTTP-done code must
      not complain on the fact that no data was received.
    
    
    - Based on Dirk Manske's patch, I modified the name resolving with ares to
      feature a timeout for really slow lookups. It now defaults to 300 seconds,
      but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them
      is set.
    
    - Fixed the inclusion of ca-bundle.h to really use the one in the build dir
      before the one in the source dir. Domenico Andreoli found out and reported.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Added test case 97, a simple POST with a custom Content-Type header
      replacing the original application/x-www-form-urlencoded one.
    
    
    Daniel (30 January 2004)
    
    - Added code that attempts to fix the test 91 failure. As has been figured out
      by Patrick Smith, the error happens because we re-use a connection that the
      server is just about to close and we even manage to send away the request
      without seeing an error. On the first read attempt we get a ECONNRESET.
      Starting now, we attempt to detect this and if so, we retry the request on a
      fresh connection.
    
    
    - I added test case 510 which is a custom program that does a POST using a
      read callback, with chunked transfer-encoding.
    
    - Adjusted one of the MPE/iX changes as it made test case 504 fail all over.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Added --socks as a recognized option. It works just like --proxy but sets a
      SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a
      while, just not provided by the curl tool. This does not currently work for
      IPv6-enabled libcurls.
    
    
    Daniel (29 January 2004)
    
    - Stadler Stephan pointed out that src/hugehelp.c included config.h without
      checking the define if its present...
    
    
    - Ken Hirsch provided patches to make curl build fine on the MPE/iX operating
      system.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Dan Fandrich compiled curl with lots of aggressively pedantic compiler
    
      options and thus found a few minor errors and did some general cleanups to
      avoid them.
    
    - Dirk Manske fixed a flaw in ares that prevented it to use non-blocking
      sockets properly.
    
    
    Daniel (28 January 2004)
    
    - Richard Bramante fixed chunked transfer-encoded "uploads" to send a final
      CRLF combo properly.
    
    
    Daniel (27 January 2004)
    
    - Made the response-headers during a CONNECT request to a proxy get passed on
      as regular headers, so they appear with -i/-I options and similar.
    
    - Based on a patch by Gisle Vanem, I've made the progress meter display
      properly switch to a GB-display when more than 9999MB have been transfered.
    
    
    Daniel (23 January 2004)
    
    - Gisle Vanem pointed out a curlrc parser problem/crash when an option with a
      required didn't have one and was on the last line of a file.
    
    
    - More Windows fixes for large files. We now build and link with
      ../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided
      libcurl function... Perhaps we should consider a 'common' dir or similar
      where we put source code used in both the lib and the client. Or perhaps
      we'll just make this function available in the library...
    
    - Vincent Bronner found out the socks5 code crashed when no username was
      set.
    
    - Vincent Bronner spotted a problem with proxy username/password when re-using
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      a persistent connection.
    
    
    - Fixed the progress meter display for files larger than 2^31 bytes. Gisle
      Vanem reported.
    
    
    Daniel (22 January 2004)
    
    - Gisle Vanem made strtoll() get used when curl is built with the mingw
      compiler.
    
    - Gisle Vanem fixed the compressed help text code to display properly.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    - Removed the '#define HttpPost' from the public header file, as curl_httppost
      is the proper name and it has been for quite some time now. Fixes another
      name space pollution.
    
    - Added 'curl_off_t' typedef in the public header file, to be used to provide
      large file sizes to the *_LARGE options. Adjusted the code all over to use
      this variable type instead of 'off_t'. This is an attempt to make the large
      file support work on more platforms. The configure script now checks the
      size of the curl_off_t instead of the plain off_t.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Version 7.11.0 (22 January 2004)
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    Daniel (21 January 2004)
    - Removed the defines in the public header file with TIMECOND_ prefixes. They
      have been obsolete since April 22nd 2002, and if this causes anyone any
      problems now it is very easy to just add CURL_ to the names. This corrects
      this name space pollution.
    
    
    Daniel (19 January 2004)
    - David Byron cleaned up how --trace with no option was treated, and also
      arguments in a config file without a required parameter!
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (16 January 2004)
    - Gisle Vanem fixed a few issues where compilers warned about variables
      possibly being used unassigned.
    
    - Minor Interix build problem fixed.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (15 January 2004)
    - Peter Sylvester pointed out some necessary escaping needed in the
      acinclude.m4 file when automake 1.8 or later is used.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (14 January 2004)
    
    - Vincent Bronner fixed the Curl_resolv() return code. This extends the fix
      Steve Green provided on december 3...
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    
    
    Daniel (13 January 2004)
    
    - Luke Call made the win32 version of the password prompting function support
      backspace.
    
    
    - Dan Fandrich fixed the hugehelp source file to contain both a compressed and
      an uncompressed version in the distribution, so that more people easier can
      build curl with the compressed version.
    
    - Diego Casorran brought another AmigaOS build patch for native Amiga builds.
    
    
    - Matt Veenstra updated the Mac OS X framework files.
    
    - Brian R Duffy brought a section to the INSTALL file on how to build a
      SSL-enabled curl using the free Borland C++ compiler. He also updated the
      Borland lib/Makefile.b32.
    
    - I fixed the test case 509 which I broke yesterday. Now the libtest are
      compiled with an include path that points to the library's source dir, so
      that the libtests can include files from the source tree. This was made to
      make it possible to use the USE_SSLEAY define in the library test files.
    
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    Daniel (12 January 2004)
    
    - Peter Sylvester brought code that now allows a callback to modified the URL