_ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | | (__| |_| | _ <| |___ \___|\___/|_| \_\_____| Changelog 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=2GB files. curl -V now outputs 'Largefile' in the Features: field if this is the case. Most systems are likely to support this. - 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. - 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 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 (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. Daniel (16 February 2004) - 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 (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. - 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. - 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. - 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. - 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 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. - 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. Version 7.11.0 (22 January 2004) 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 (16 January 2004) - Gisle Vanem fixed a few issues where compilers warned about variables possibly being used unassigned. - Minor Interix build problem fixed. 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 (14 January 2004) - Vincent Bronner fixed the Curl_resolv() return code. This extends the fix Steve Green provided on december 3... 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 (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. - 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.