CHANGES 68.3 KB
Newer Older
  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.