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

Daniel Stenberg's avatar
Daniel Stenberg committed
                                  Changelog

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.

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
  even when the multi interface is used, and then libcurl will simulate a
  "follow location" to that new URL. Test 509 was added to test this feature.

Daniel Stenberg's avatar
Daniel Stenberg committed
- Extended the time we retry servers in the test script, and I also made it
  retry the https and ftps servers before they are considered bad. I believe
  the previous approach could turn problematic on really slow hosts.

Version 7.11.0-pre1 (12 January 2004)
Daniel (11 January 2004)
- Dominick Meglio pointed out FTPS should use default port 990 according to
  IANA.

Daniel (8 January 2004)
- Fixed the SPNEGO configure check to not use -R or other non-portable options
  in the LDFLAGS. Reported by Pierre in bug report #872930.

Daniel (5 January 2004)
- Dan Fandrich provided a fix on our zlib usage.

- David J Meyer's patch that introduce large file support to libcurl was
  applied. New curl_easy_setopt options that accept 'off_t' arguments are:

  INFILESIZE_LARGE
  RESUME_FROM_LARGE
  MAXFILESIZE_LARGE

Daniel (4 January 2004)
- Based on Dominick Meglio's comments, I made our private version of
  gettimeofday() declared static. This would otherwise collide with the same
  function in other libs (like ares for example).

- Added Dominick Meglio's description on how to build libcurl with ares
  on win32.

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (19 December)
- CURLOPT_IPRESOLVE was not possible to set.

- Gisle Vanem updated the djgpp build files.

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (18 December)
- John McGowan reported a redirect-problem that happened if a site used a URL
  like "url.com?var=content" (without a proper slash) and from that address
  redirected the user-agent to an absolute directory.

- David Byron made libcurl build fine with both the .NET and VC6 versions of
  MSVC

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (16 December)
- Updated test 506 since it started to fail after the cache prune change
  yesterday. I also changed it slightly to feature a counter in each debug
  output for easier tracing.

Daniel (15 December)
- Old DNS cache entries are now only pruned after curl is done with a request,
  and not in the actual name resolve call.

- corrected the --enable-ares patch

- Giuseppe Attardi found and fixed a problem within libcurl that re-used
  already freed memory.

Daniel (10 December)
- Gisle Vanem reported that the dict support was broken. I broke it during my
  ftps-changes overhaul. I've now added a 'curlassert' function that can be
  used to verify expressions, to prevent future errors of the same
  kind. They're only present in debug-builds.

- Diego Casorran made curl and libcurl possible to build natively (no more
  need for the ixemul library) on AmigaOS.

- Dominick Meglio made configure --enable-ares support a given path to the
  installed ares lib, instead of always using it in the curl source tree.
  This also fixed the curl-config --libs output.

- Eric S. Raymond patched a very minor man page format error in
  libcurl-errors.3

Daniel Stenberg's avatar
Daniel Stenberg committed
- Fixed the flaw that made -lz appear twice on the link command line.

Daniel Stenberg's avatar
Daniel Stenberg committed
- After correspondence with Gisle Vanem, I changed the 'connection aborted'
Daniel Stenberg's avatar
Daniel Stenberg committed
  error text when the FTP response reader failed to more specificly identify
  what the problem is.

- Based on a patch from Dominick Meglio, curl-config --feature now outputs
  'AsynchDNS' as a feature if libcurl was built with ares. The feature name
  is the same that 'curl -V' outputs, for simplicity.

Daniel Stenberg's avatar
Daniel Stenberg committed
- Marty Kuhrt made the build up-to-date on VMS, and moved most of the VMS-
  specific stuff in the client code to a separate header file.

- Steve Green fixed a return code bug in Curl_resolv(), that made the socks5
  code fail.

- swalkaus at yahoo.com patched libcurl to ignore Content-Length: headers
Daniel Stenberg's avatar
Daniel Stenberg committed
  when Transfer-Encoding: chunked is used, as mandated by RFC2616.
Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (2 December)
Daniel Stenberg's avatar
Daniel Stenberg committed
- --ftp-pasv was added, which serves the only purpose of overriding a
  previously set --ftpport option. Starting now, --ftp-port is a recognized
  alias for --ftpport for consistency.

Daniel Stenberg's avatar
Daniel Stenberg committed
- Giuseppe Attardi pointed out that we should use MSG_NOSIGNAL when we use
  send() and recv(). I added checks for the define in the configure script and
  adjusted the code accordingly. If the symbol is present, we won't attempt
  to ignore the SIGPIPE signal.

Daniel (1 December)
- Mathias Axelsson set up a bsdftpd-ssl server for me and I could make curl
  run fine against its FTPS implementation. Now these FTPS-related things
  work:
   o explicit and implicit FTPS
   o active (PORT) and passive (PASV)
   o upload and download
   o verified against bsdftpd-ssl and RaidenFTPD

Daniel (27 November)
- James Clancy made the Borland Makefiles up to date.

- Markus Moeller improved the SPNEGO detection in the configure script.
Daniel (25 November)
- Dave May filed bug report #848371, identifying that if you'd do POST over a
  proxy to a https server, libcurl didn't POST at all, it just made a GET! It
  turned out to be because libcurl wrongly didn't consider the authentication
  "negotiation phase" to be complete yet.

  I added test case 95 to verify my fix for this.

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (24 November)
- Thanks to Mathias Axelsson, I've been able to work on FTPS for libcurl and it
  seems to work somewhat fine now.

  The FTPS stuff is based on RFC2228 and the murray-auth-ftp-ssl draft
  (version 12). There seems to exist quite a few servers that have implemented
  the server side of this.

  We can now use ftps:// URLs to explicitly switch on SSL/TSL for the control
  connection and the data connection (dealing with two SSL connections forced
  me to change a lot of stuff in libcurl).

  Alternatively, and what seems to be the recommended way, we can set the new
  option CURLOPT_FTP_SSL to one of these values:

     CURLFTPSSL_NOPE,   - do not attempt to use SSL
     CURLFTPSSL_TRY     - try using SSL, proceed anyway otherwise
     CURLFTPSSL_CONTROL - SSL for the control connection or fail
     CURLFTPSSL_ALL     - SSL for all communication or fail

  Any failure to set the desired level will make libcurl fail with the error
  code CURLE_FTP_SSL_FAILED. This new option makes a "normal" ftp:// transfer
  attempt to be made securely.

  I've been able to login and get files (passively) from Mathias' server using
  both ftps:// and CURLOPT_FTP_SSL. (I've made 'curl' understand the --ftp-ssl
  option that sets CURLFTPSSL_TRY.)

Daniel Stenberg's avatar
Daniel Stenberg committed
- Gaz Iqbal fixed a range string memory leak.

- Gisle Vanem fixed the Windows builds.

- Added the new FTPSSL defines in curl/curl.h

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (20 November)
- Josh Kapell filed bug report #845247 as he found an endless loop when
  getting a 407 back from a proxy when no user+password was given. Added test
  case 94 to verify the fix.
Daniel Stenberg's avatar
Daniel Stenberg committed

Daniel (19 November)
- Kevin Roth fixed a progress-bar problem on Windows.

- While working with Nicolas Croiset's bug report #843739, I noticed two minor
  problems related to ftp partial downloads: if a partial transfer is
  detected, we must close the connection as we cannot know in what state it is
  anymore. This looks like a ProFTPD bug:
  http://curl.haxx.se/mail/lib-2003-11/0079.html

Daniel (17 November)
- Maciej W. Rozycki made the configure script use a cache variable for the
  writable argv test. This way, the default can be overridden better (for
  cross-compiles etc)
Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (15 November)
- Mathias Axelsson found out libcurl sometimes freed the server certificate
  twice, leading to crashes!

Daniel (14 November)
- Siddhartha Prakash Jain found a case with a bad resolve that we didn't
  properly bail out from, when using ares.

Daniel (13 November)
- Default Content-Type for parts in multipart formposts has changed to
  "application/octet-stream".  This seems more appropriate, and I believe
  mozilla and the likes do this. In the same area: .html files now get
  text/html as Content-Type. (Pointed out in bug report #839806)

- Gisle Vanem corrected the --progress-bar output by doing a flush of the
  output, which apparently makes it look better on at least windows, but
  possibly other platforms too.

- Peter Sylvester identified a problem in the connect code, which made the
  multi interface on a ipv6-enabled solaris box do bad. Test case 504 to be
  specific. I've spent some time to clean-up the Curl_connecthost() function
  now to use less duplicated code for the two different sections: ipv6 and
  ipv4.

Daniel (11 November)
- Added CURLOPT_NETRC_FILE. Use this to tell libcurl which file to use instead
  of trying to find a .netrc in the current user's home directory. The
  existing .netrc file finder is somewhat naive and is far from perfect on
  several platforms that aren't unix-style. If this option isn't set when
  CURLOPT_NETRC is set, the previous approach will still be used.

  The current .netrc check code now also support longer than 256 bytes path
  names.

Daniel (10 November)
- Kang-Jin Lee pointed out that the generated ca-bundle.h file shouldn't be
  written in the source dir if a different build dir is used.

- After Sébastien Willemijns' bug report, we now check the separators properly
  in the 229-reply servers respond on a EPSV command and bail out better if
  the reply string is not RFC2428-compliant.

Daniel (7 November)
- Based on Gisle Vanem's patch, I made curl try harder to get the home
  directory of the current user, in order to find the default .curlrc file.
  We're also considering moving out the HOME-dir code from libcurl, and
  instead have the app pass in the path to the .netrc file (which is the only
  logic left in libcurl that uses the HOME dir). Then curl can use the home
  dir for that purpose too.

- Ralph Mitchell's updated testcurl.sh to the script to take an existing
  directory name and build/run/test curl in there instead of trying to update
  from CVS. Using this approach, the script can now be used to test daily
  tarballs etc.

- Gisle Vanem added a "resource file" to the Windows DLL builds, to contain
  information such as version number, library name, copyright info etc.

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (6 November)
- curl checks if the existing libcurl supports things like --ntlm, --negotiate
  and --krb4 and returns error if not.

- I added three new global defines in the curl/curl.h header:
  LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. They
  are the three numbers in the library's version number, separated for easier
  usage. 'maketgz' was updated accordingly to generate these numbers properly
  when building release-archives.

- Uninitialized variable fix, reported by both Marty Kuhrt and Benjamin
  Gerard.
Daniel Stenberg's avatar
Daniel Stenberg committed

- Matt Veenstra provided build files to build libcurl as a "framework" under
  Mac OS X. See the lib/libcurl.framework.make for details.

- Removed the defines of TRUE and FALSE from the curl/curl.h header file.
  They're not in our name space so we should not fiddle with them.

Daniel (5 November)
- Replaced the man page to HTML converter program with a new one: roffit.
  Makes nicer web pages.
Daniel Stenberg's avatar
Daniel Stenberg committed

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (4 November)
- Troels Walsted Hansen fixed the MSVC makefiles to let them build curl fine
  on Windows.

- Kevin Roth corrected the cygwin package generator and spell-fixed the